diff --git a/ELNGenerationCode/Makefile b/ELNGenerationCode/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..0ea5ee9598d3e507365578ad2d5a3943291cfd95
--- /dev/null
+++ b/ELNGenerationCode/Makefile
@@ -0,0 +1,19 @@
+# Compiler and linker flags
+CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS)
+LDFLAGS = $(SYSTEMC_LIBRARY_DIRS)
+
+# List of all ecutables to be compiled
+EXECUTABLES = cluster_tb
+
+# .PHONY targets don't generate files
+.PHONY:	all clean
+
+# Default targets
+all:	$(EXECUTABLES)
+
+cluster_tb: cluster_tb.cpp eln_in_tdf.h
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt
+
+# Clean rule to delete temporary and generated files
+clean:
+	rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES)
diff --git a/ELNGenerationCode/POTS_front_end/Makefile b/ELNGenerationCode/POTS_front_end/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..b8d72b6a6de9487067acf350fab500b716f7e7ab
--- /dev/null
+++ b/ELNGenerationCode/POTS_front_end/Makefile
@@ -0,0 +1,19 @@
+# Compiler and linker flags
+CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS)
+LDFLAGS = $(SYSTEMC_LIBRARY_DIRS)
+
+# List of all ecutables to be compiled
+EXECUTABLES = cluster_tb
+
+# .PHONY targets don't generate files
+.PHONY:	all clean
+
+# Default targets
+all:	$(EXECUTABLES)
+
+cluster_tb: cluster_tb.cpp phone.h transmission_line.h protection_circuit.h slic.h
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt
+
+# Clean rule to delete temporary and generated files
+clean:
+	rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES)
diff --git a/ELNGenerationCode/POTS_front_end/cluster_tb.cpp b/ELNGenerationCode/POTS_front_end/cluster_tb.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..de0c34dfefc8a2fb02253e706e85346a8148c64b
--- /dev/null
+++ b/ELNGenerationCode/POTS_front_end/cluster_tb.cpp
@@ -0,0 +1,62 @@
+#include <systemc-ams>
+#include "phone.h"
+#include "transmission_line.h"
+#include "protection_circuit.h"
+#include "slic.h"
+
+int sc_main(int argc, char *argv[])
+{
+	sc_core::sc_signal<bool> s_hook;
+	sca_tdf::sca_signal<double> s_voice;
+	sca_eln::sca_node n_ring_b1;
+	sca_eln::sca_node n_tip_a1;
+	sca_tdf::sca_signal<double> s_v2w;
+	sca_tdf::sca_signal<double> s_i_trans;
+	sca_eln::sca_node n_tip_slic_tip;
+	sca_eln::sca_node n_b2_ring;
+	sca_eln::sca_node n_a2_tip;
+	sca_eln::sca_node n_ring_slic_ring;
+
+	phone i_phone("i_phone");
+	i_phone.ring(n_ring_b1);
+	i_phone.tip(n_tip_a1);
+	i_phone.voice(s_voice);
+	i_phone.hook(s_hook);
+
+	transmission_line i_transmission_line("i_transmission_line");
+	i_transmission_line.a1(n_tip_a1);
+	i_transmission_line.b1(n_ring_b1);
+	i_transmission_line.a2(n_a2_tip);
+	i_transmission_line.b2(n_b2_ring);
+
+	protection_circuit i_protection_circuit("i_protection_circuit");
+	i_protection_circuit.tip(n_a2_tip);
+	i_protection_circuit.ring(n_b2_ring);
+	i_protection_circuit.tip_slic(n_tip_slic_tip);
+	i_protection_circuit.ring_slic(n_ring_slic_ring);
+
+	slic i_slic("i_slic");
+	i_slic.tip(n_tip_slic_tip);
+	i_slic.ring(n_ring_slic_ring);
+	i_slic.i_trans(s_i_trans);
+	i_slic.v2w(s_v2w);
+
+	sca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file("cluster_tb");
+	sca_util::sca_trace(tfp, s_hook, "s_hook");
+	sca_util::sca_trace(tfp, s_voice, "s_voice");
+	sca_util::sca_trace(tfp, n_ring_b1, "n_ring_b1");
+	sca_util::sca_trace(tfp, n_tip_a1, "n_tip_a1");
+	sca_util::sca_trace(tfp, s_v2w, "s_v2w");
+	sca_util::sca_trace(tfp, s_i_trans, "s_i_trans");
+	sca_util::sca_trace(tfp, n_tip_slic_tip, "n_tip_slic_tip");
+	sca_util::sca_trace(tfp, n_b2_ring, "n_b2_ring");
+	sca_util::sca_trace(tfp, n_a2_tip, "n_a2_tip");
+	sca_util::sca_trace(tfp, n_ring_slic_ring, "n_ring_slic_ring");
+
+	sc_start(100.0, sc_core::SC_MS);
+
+	sca_util::sca_close_tabular_trace_file(tfp);
+	sc_core::sc_stop();
+	return 0;
+}
+
diff --git a/ELNGenerationCode/POTS_front_end/phone.h b/ELNGenerationCode/POTS_front_end/phone.h
new file mode 100644
index 0000000000000000000000000000000000000000..e1392431b69b5282059c2ef84be7ca742a213389
--- /dev/null
+++ b/ELNGenerationCode/POTS_front_end/phone.h
@@ -0,0 +1,73 @@
+#ifndef PHONE_H
+#define PHONE_H
+
+#include <cmath>
+#include <iostream>
+#include <systemc-ams>
+
+SC_MODULE(phone)
+{
+	sca_eln::sca_terminal ring;
+	sca_eln::sca_terminal tip;
+
+	sc_core::sc_in<bool> hook;
+	sca_tdf::sca_in<double> voice;
+
+	sca_eln::sca_c cr;
+	sca_eln::sca_c cp;
+	sca_eln::sca_r rr;
+	sca_eln::sca_r rs;
+	sca_eln::sca_r rp;
+	sca_eln::sca_de_vsource sw1;
+	sca_eln::sca_de_vsource sw2;
+	sca_eln::sca_tdf_vsource mic;
+
+	SC_CTOR(phone)
+	: ring("ring")
+	, tip("tip")
+	, hook("hook")
+	, voice("voice")
+	, cr("cr", 1.0e-6, 0.0)
+	, cp("cp", 115.0e-9, 0.0)
+	, rr("rr", 1.0e3)
+	, rs("rs", 220.0)
+	, rp("rp", 820.0)
+	, sw1("sw1", 1.0)
+	, sw2("sw2", 1.0)
+	, mic("mic", 1.0)
+	, wring("wring")
+	, w1("w1")
+	, w_onhook("w_onhook")
+	, w2("w2")
+	, w_offhook("w_offhook")
+	{
+		cr.p(wring);
+		cr.n(w_onhook);
+		cp.p(w1);
+		cp.n(w_offhook);
+		rr.p(wring);
+		rr.n(ring);
+		rs.p(w1);
+		rs.n(w2);
+		rp.p(w_offhook);
+		rp.n(w1);
+		sw1.p(tip);
+		sw1.n(w_onhook);
+		sw1.inp(hook);
+		sw2.p(tip);
+		sw2.n(w_offhook);
+		sw2.inp(hook);
+		mic.p(w2);
+		mic.n(ring);
+		mic.inp(voice);
+	}
+
+private:
+	sca_eln::sca_node wring;
+	sca_eln::sca_node w1;
+	sca_eln::sca_node w_onhook;
+	sca_eln::sca_node w2;
+	sca_eln::sca_node w_offhook;
+};
+
+#endif // PHONE_H
\ No newline at end of file
diff --git a/ELNGenerationCode/POTS_front_end/protection_circuit.h b/ELNGenerationCode/POTS_front_end/protection_circuit.h
new file mode 100644
index 0000000000000000000000000000000000000000..5b8ecd19c3e9d6cedf20bb7de7b286c9b9589157
--- /dev/null
+++ b/ELNGenerationCode/POTS_front_end/protection_circuit.h
@@ -0,0 +1,57 @@
+#ifndef PROTECTION_CIRCUIT_H
+#define PROTECTION_CIRCUIT_H
+
+#include <cmath>
+#include <iostream>
+#include <systemc-ams>
+
+SC_MODULE(protection_circuit)
+{
+	sca_eln::sca_terminal tip;
+	sca_eln::sca_terminal ring;
+	sca_eln::sca_terminal tip_slic;
+	sca_eln::sca_terminal ring_slic;
+
+	sca_eln::sca_c cprot1;
+	sca_eln::sca_c cprot2;
+	sca_eln::sca_r rprot1;
+	sca_eln::sca_r rprot2;
+	sca_eln::sca_r rprot3;
+	sca_eln::sca_r rprot4;
+
+	SC_CTOR(protection_circuit)
+	: tip("tip")
+	, ring("ring")
+	, tip_slic("tip_slic")
+	, ring_slic("ring_slic")
+	, cprot1("cprot1", 18.0e-9, 0.0)
+	, cprot2("cprot2", 18.0e-9, 0.0)
+	, rprot1("rprot1", 20.0)
+	, rprot2("rprot2", 20.0)
+	, rprot3("rprot3", 20.0)
+	, rprot4("rprot4", 20.0)
+	, n_ring("n_ring")
+	, n_tip("n_tip")
+	, gnd("gnd")
+	{
+		cprot1.p(n_tip);
+		cprot1.n(gnd);
+		cprot2.p(n_ring);
+		cprot2.n(gnd);
+		rprot1.p(tip);
+		rprot1.n(n_tip);
+		rprot2.p(tip_slic);
+		rprot2.n(n_tip);
+		rprot3.p(ring);
+		rprot3.n(n_ring);
+		rprot4.p(ring_slic);
+		rprot4.n(n_ring);
+	}
+
+private:
+	sca_eln::sca_node n_ring;
+	sca_eln::sca_node n_tip;
+	sca_eln::sca_node_ref gnd;
+};
+
+#endif // PROTECTION_CIRCUIT_H
\ No newline at end of file
diff --git a/ELNGenerationCode/POTS_front_end/slic.h b/ELNGenerationCode/POTS_front_end/slic.h
new file mode 100644
index 0000000000000000000000000000000000000000..d105970dcf43fba7f14b02c3b989cd45816a20c1
--- /dev/null
+++ b/ELNGenerationCode/POTS_front_end/slic.h
@@ -0,0 +1,67 @@
+#ifndef SLIC_H
+#define SLIC_H
+
+#include <cmath>
+#include <iostream>
+#include <systemc-ams>
+
+SC_MODULE(slic)
+{
+	sca_eln::sca_terminal tip;
+	sca_eln::sca_terminal ring;
+
+	sca_tdf::sca_out<double> i_trans;
+	sca_tdf::sca_in<double> v2w;
+
+	sca_eln::sca_r rtr;
+	sca_eln::sca_vccs mirror2;
+	sca_eln::sca_vccs mirror1;
+	sca_eln::sca_tdf_vsink itr_meas;
+	sca_eln::sca_tdf_vsource driver1;
+	sca_eln::sca_tdf_vsource driver2;
+
+	SC_CTOR(slic)
+	: tip("tip")
+	, ring("ring")
+	, i_trans("i_trans")
+	, v2w("v2w")
+	, rtr("rtr", 1.0)
+	, mirror2("mirror2", -0.5)
+	, mirror1("mirror1", 0.5)
+	, itr_meas("itr_meas", 1.0)
+	, driver1("driver1", 0.5)
+	, driver2("driver2", 0.5)
+	, n_tri_i("n_tri_i")
+	, n_ring_gnd("n_ring_gnd")
+	, n_tip_gnd("n_tip_gnd")
+	, gnd("gnd")
+	{
+		rtr.p(n_tri_i);
+		rtr.n(gnd);
+		mirror2.ncp(n_ring_gnd);
+		mirror2.np(n_tri_i);
+		mirror2.ncn(gnd);
+		mirror2.nn(gnd);
+		mirror1.ncp(n_tip_gnd);
+		mirror1.np(n_tri_i);
+		mirror1.ncn(gnd);
+		mirror1.nn(gnd);
+		itr_meas.p(n_tri_i);
+		itr_meas.n(gnd);
+		itr_meas.outp(i_trans);
+		driver1.p(tip);
+		driver1.n(n_tip_gnd);
+		driver1.inp(v2w);
+		driver2.p(ring);
+		driver2.n(n_ring_gnd);
+		driver2.inp(v2w);
+	}
+
+private:
+	sca_eln::sca_node n_tri_i;
+	sca_eln::sca_node n_ring_gnd;
+	sca_eln::sca_node n_tip_gnd;
+	sca_eln::sca_node_ref gnd;
+};
+
+#endif // SLIC_H
\ No newline at end of file
diff --git a/ELNGenerationCode/POTS_front_end/transmission_line.h b/ELNGenerationCode/POTS_front_end/transmission_line.h
new file mode 100644
index 0000000000000000000000000000000000000000..0fdca0942dd32167691a0eed597ffbf5640451fd
--- /dev/null
+++ b/ELNGenerationCode/POTS_front_end/transmission_line.h
@@ -0,0 +1,33 @@
+#ifndef TRANSMISSION_LINE_H
+#define TRANSMISSION_LINE_H
+
+#include <cmath>
+#include <iostream>
+#include <systemc-ams>
+
+SC_MODULE(transmission_line)
+{
+	sca_eln::sca_terminal a1;
+	sca_eln::sca_terminal b1;
+	sca_eln::sca_terminal a2;
+	sca_eln::sca_terminal b2;
+
+	sca_eln::sca_transmission_line tl0;
+
+	SC_CTOR(transmission_line)
+	: a1("a1")
+	, b1("b1")
+	, a2("a2")
+	, b2("b2")
+	, tl0("tl0", 50.0, sc_core::SC_ZERO_TIME, 0.0)
+	{
+		tl0.a1(a1);
+		tl0.a2(a2);
+		tl0.b1(b1);
+		tl0.b2(b2);
+	}
+
+private:
+};
+
+#endif // TRANSMISSION_LINE_H
\ No newline at end of file
diff --git a/ELNGenerationCode/eln_in_tdf/Makefile b/ELNGenerationCode/eln_in_tdf/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..0ea5ee9598d3e507365578ad2d5a3943291cfd95
--- /dev/null
+++ b/ELNGenerationCode/eln_in_tdf/Makefile
@@ -0,0 +1,19 @@
+# Compiler and linker flags
+CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS)
+LDFLAGS = $(SYSTEMC_LIBRARY_DIRS)
+
+# List of all ecutables to be compiled
+EXECUTABLES = cluster_tb
+
+# .PHONY targets don't generate files
+.PHONY:	all clean
+
+# Default targets
+all:	$(EXECUTABLES)
+
+cluster_tb: cluster_tb.cpp eln_in_tdf.h
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt
+
+# Clean rule to delete temporary and generated files
+clean:
+	rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES)
diff --git a/ELNGenerationCode/eln_in_tdf/cluster_tb.cpp b/ELNGenerationCode/eln_in_tdf/cluster_tb.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..65cb4c670f52c49841aef9b860f7012479ecfd8b
--- /dev/null
+++ b/ELNGenerationCode/eln_in_tdf/cluster_tb.cpp
@@ -0,0 +1,23 @@
+#include <systemc-ams>
+#include "eln_in_tdf.h"
+
+int sc_main(int argc, char *argv[])
+{
+	sca_tdf::sca_signal<double> s_out;
+	sca_tdf::sca_signal<double> s_in;
+
+	eln_in_tdf i_eln_in_tdf("i_eln_in_tdf");
+	i_eln_in_tdf.in(s_in);
+	i_eln_in_tdf.out(s_out);
+
+	sca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file("cluster_tb");
+	sca_util::sca_trace(tfp, s_out, "s_out");
+	sca_util::sca_trace(tfp, s_in, "s_in");
+
+	sc_start(100.0, sc_core::SC_MS);
+
+	sca_util::sca_close_tabular_trace_file(tfp);
+	sc_core::sc_stop();
+	return 0;
+}
+
diff --git a/ELNGenerationCode/eln_in_tdf/eln_in_tdf.h b/ELNGenerationCode/eln_in_tdf/eln_in_tdf.h
new file mode 100644
index 0000000000000000000000000000000000000000..2f75f2a513704f2604a83439900e0e4f3420b873
--- /dev/null
+++ b/ELNGenerationCode/eln_in_tdf/eln_in_tdf.h
@@ -0,0 +1,47 @@
+#ifndef ELN_IN_TDF_H
+#define ELN_IN_TDF_H
+
+#include <cmath>
+#include <iostream>
+#include <systemc-ams>
+
+SC_MODULE(eln_in_tdf)
+{
+	sca_tdf::sca_out<double> out;
+	sca_tdf::sca_in<double> in;
+
+	sca_eln::sca_c c;
+	sca_eln::sca_r r;
+	sca_eln::sca_tdf_vsink vout;
+	sca_eln::sca_tdf_vsource vin;
+
+	SC_CTOR(eln_in_tdf)
+	: out("out")
+	, in("in")
+	, c("c", 1.0, 0.0)
+	, r("r", 1.0)
+	, vout("vout", 1.0)
+	, vin("vin", 1.0)
+	, n2("n2")
+	, n1("n1")
+	, gnd("gnd")
+	{
+		c.p(n2);
+		c.n(gnd);
+		r.p(n1);
+		r.n(n2);
+		vout.p(n2);
+		vout.n(gnd);
+		vout.outp(out);
+		vin.p(n1);
+		vin.n(gnd);
+		vin.inp(in);
+	}
+
+private:
+	sca_eln::sca_node n2;
+	sca_eln::sca_node n1;
+	sca_eln::sca_node_ref gnd;
+};
+
+#endif // ELN_IN_TDF_H
\ No newline at end of file
diff --git a/ELNGenerationCode/generated_CPP/cluster0_tb.cpp b/ELNGenerationCode/generated_CPP/cluster0_tb.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/ELNGenerationCode/generated_H/module0.h b/ELNGenerationCode/generated_H/module0.h
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/ELNGenerationCode/my_eln_filter/Makefile b/ELNGenerationCode/my_eln_filter/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..ec8363c9d73a6af749a3bc68ed22711dfe15ac00
--- /dev/null
+++ b/ELNGenerationCode/my_eln_filter/Makefile
@@ -0,0 +1,19 @@
+# Compiler and linker flags
+CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS)
+LDFLAGS = $(SYSTEMC_LIBRARY_DIRS)
+
+# List of all ecutables to be compiled
+EXECUTABLES = cluster_tb
+
+# .PHONY targets don't generate files
+.PHONY:	all clean
+
+# Default targets
+all:	$(EXECUTABLES)
+
+cluster_tb: cluster_tb.cpp my_eln_filter.h
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt
+
+# Clean rule to delete temporary and generated files
+clean:
+	rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES)
diff --git a/ELNGenerationCode/my_eln_filter/cluster_tb.cpp b/ELNGenerationCode/my_eln_filter/cluster_tb.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..3432a5a75a7436d899466b03430f630a4ae7430c
--- /dev/null
+++ b/ELNGenerationCode/my_eln_filter/cluster_tb.cpp
@@ -0,0 +1,23 @@
+#include <systemc-ams>
+#include "my_eln_filter.h"
+
+int sc_main(int argc, char *argv[])
+{
+	sca_eln::sca_node n_b_out;
+	sca_eln::sca_node n_in_a;
+
+	my_eln_filter i_my_eln_filter("i_my_eln_filter");
+	i_my_eln_filter.a(n_in_a);
+	i_my_eln_filter.b(n_b_out);
+
+	sca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file("cluster_tb");
+	sca_util::sca_trace(tfp, n_b_out, "n_b_out");
+	sca_util::sca_trace(tfp, n_in_a, "n_in_a");
+
+	sc_start(100.0, sc_core::SC_MS);
+
+	sca_util::sca_close_tabular_trace_file(tfp);
+	sc_core::sc_stop();
+	return 0;
+}
+
diff --git a/ELNGenerationCode/my_eln_filter/my_eln_filter.h b/ELNGenerationCode/my_eln_filter/my_eln_filter.h
new file mode 100644
index 0000000000000000000000000000000000000000..61e8e4840838bb61c7eacb809acee5446d49282e
--- /dev/null
+++ b/ELNGenerationCode/my_eln_filter/my_eln_filter.h
@@ -0,0 +1,34 @@
+#ifndef MY_ELN_FILTER_H
+#define MY_ELN_FILTER_H
+
+#include <cmath>
+#include <iostream>
+#include <systemc-ams>
+
+SC_MODULE(my_eln_filter)
+{
+	sca_eln::sca_terminal a;
+	sca_eln::sca_terminal b;
+
+	sca_eln::sca_c c1;
+
+	sca_eln::sca_r r1;
+
+	SC_CTOR(my_eln_filter)
+	: a("a")
+	, b("b")
+	, c1("c1", 1.0, 0.0)
+	, r1("r1", 1.0)
+	, gnd("gnd")
+	{
+		c1.p(gnd);
+		c1.n(b);
+		r1.p(b);
+		r1.n(a);
+	}
+
+private:
+	sca_eln::sca_node_ref gnd;
+};
+
+#endif // MY_ELN_FILTER_H
\ No newline at end of file
diff --git a/ELNGenerationCode/my_structural_eln_model/Cluster0_tb.cpp b/ELNGenerationCode/my_structural_eln_model/Cluster0_tb.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a995b981fb7e96a8e6f6aea9025242c617d1cac4
--- /dev/null
+++ b/ELNGenerationCode/my_structural_eln_model/Cluster0_tb.cpp
@@ -0,0 +1,23 @@
+#include <systemc-ams>
+#include "my_structural_eln_model.h"
+
+int sc_main(int argc, char *argv[])
+{
+	sca_eln::sca_node n_out_b;
+	sca_eln::sca_node n_in_a;
+
+	my_structural_eln_model i_my_structural_eln_model("i_my_structural_eln_model");
+	i_my_structural_eln_model.b(n_out_b);
+	i_my_structural_eln_model.a(n_in_a);
+
+	sca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file("Cluster0_tb");
+	sca_util::sca_trace(tfp, n_out_b, "n_out_b");
+	sca_util::sca_trace(tfp, n_in_a, "n_in_a");
+
+	sc_start(100.0, sc_core::SC_MS);
+
+	sca_util::sca_close_tabular_trace_file(tfp);
+	sc_core::sc_stop();
+	return 0;
+}
+
diff --git a/ELNGenerationCode/my_structural_eln_model/Makefile b/ELNGenerationCode/my_structural_eln_model/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..54b1ecfe025c0519c3eefdec902fd41f0b1500fb
--- /dev/null
+++ b/ELNGenerationCode/my_structural_eln_model/Makefile
@@ -0,0 +1,19 @@
+# Compiler and linker flags
+CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS)
+LDFLAGS = $(SYSTEMC_LIBRARY_DIRS)
+
+# List of all ecutables to be compiled
+EXECUTABLES = Cluster0_tb
+
+# .PHONY targets don't generate files
+.PHONY:	all clean
+
+# Default targets
+all:	$(EXECUTABLES)
+
+Cluster0_tb: Cluster0_tb.cpp my_structural_eln_model.h
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt
+
+# Clean rule to delete temporary and generated files
+clean:
+	rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES)
diff --git a/ELNGenerationCode/my_structural_eln_model/my_structural_eln_model.h b/ELNGenerationCode/my_structural_eln_model/my_structural_eln_model.h
new file mode 100644
index 0000000000000000000000000000000000000000..602bc1847f3bdd126c454e1d55d2635df205da4f
--- /dev/null
+++ b/ELNGenerationCode/my_structural_eln_model/my_structural_eln_model.h
@@ -0,0 +1,40 @@
+#ifndef MY_STRUCTURAL_ELN_MODEL_H
+#define MY_STRUCTURAL_ELN_MODEL_H
+
+#include <cmath>
+#include <iostream>
+#include <systemc-ams>
+
+SC_MODULE(my_structural_eln_model)
+{
+	sca_eln::sca_terminal b;
+	sca_eln::sca_terminal a;
+
+	sca_eln::sca_c c1;
+
+	sca_eln::sca_r r1;
+	sca_eln::sca_r r2;
+
+	SC_CTOR(my_structural_eln_model)
+	: b("b")
+	, a("a")
+	, c1("c1", 100.0e-6, 0.0)
+	, r1("r1", 10.0e3)
+	, r2("r2", 100.0)
+	, net1("net1")
+	, gnd("gnd")
+	{
+		c1.p(net1);
+		c1.n(gnd);
+		r1.p(a);
+		r1.n(b);
+		r2.p(a);
+		r2.n(net1);
+	}
+
+private:
+	sca_eln::sca_node net1;
+	sca_eln::sca_node_ref gnd;
+};
+
+#endif // MY_STRUCTURAL_ELN_MODEL_H
\ No newline at end of file
diff --git a/build.txt b/build.txt
index f6b4b4266db27d9f41a39754e8c428d2a5583d45..891a2c18d2e24e27fac683b5fcccd4bf06b2386a 100644
--- a/build.txt
+++ b/build.txt
@@ -1 +1 @@
-12708
\ No newline at end of file
+12735
\ No newline at end of file
diff --git a/modeling/AVATAR/testReq.xml b/modeling/AVATAR/testReq.xml
index e69993f1eae34c1082f8500a2d0cb5fc8adf5dc6..49c6e4cdc6c702829cdae07bfc08dbf2f7b23e96 100644
--- a/modeling/AVATAR/testReq.xml
+++ b/modeling/AVATAR/testReq.xml
@@ -139,7 +139,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="77" />
-<P1  x="559" y="330" id="139" />
+<P1  x="559" y="330" id="114" />
 <P2  x="560" y="377" id="172" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -169,7 +169,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="81" />
-<P1  x="789" y="326" id="114" />
+<P1  x="789" y="326" id="139" />
 <P2  x="790" y="377" id="173" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -270,11 +270,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="5000" id="132" >
 <father id="182" num="0" />
-<cdparam x="695" y="224" />
-<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="464" y="228" />
+<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
-<infoparam name="Block1" value="TeaButton" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" />
+<infoparam name="Block1" value="CoffeeButton" />
 <TGConnectingPoint num="0" id="108" />
 <TGConnectingPoint num="1" id="109" />
 <TGConnectingPoint num="2" id="110" />
@@ -308,11 +308,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="5000" id="157" >
 <father id="182" num="1" />
-<cdparam x="464" y="228" />
-<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="695" y="224" />
+<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" />
-<infoparam name="Block1" value="CoffeeButton" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
+<infoparam name="Block1" value="TeaButton" />
 <TGConnectingPoint num="0" id="133" />
 <TGConnectingPoint num="1" id="134" />
 <TGConnectingPoint num="2" id="135" />
@@ -740,7 +740,7 @@
 <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="378" />
-<P1  x="442" y="527" id="729" />
+<P1  x="442" y="527" id="794" />
 <P2  x="323" y="748" id="655" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="377" >
@@ -770,8 +770,8 @@
 <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="385" />
-<P1  x="326" y="457" id="756" />
-<P2  x="442" y="497" id="728" />
+<P1  x="326" y="457" id="743" />
+<P2  x="442" y="497" id="793" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="384" >
 <father id="386" num="0" />
@@ -799,7 +799,7 @@
 <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="392" />
-<P1  x="298" y="554" id="794" />
+<P1  x="298" y="554" id="729" />
 <P2  x="289" y="748" id="647" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="391" >
@@ -830,8 +830,8 @@
 <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="399" />
-<P1  x="293" y="477" id="767" />
-<P2  x="298" y="524" id="793" />
+<P1  x="293" y="477" id="754" />
+<P2  x="298" y="524" id="728" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="398" >
 <father id="400" num="0" />
@@ -859,7 +859,7 @@
 <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="406" />
-<P1  x="126" y="554" id="740" />
+<P1  x="126" y="554" id="783" />
 <P2  x="255" y="748" id="654" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="405" >
@@ -890,8 +890,8 @@
 <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="413" />
-<P1  x="227" y="477" id="766" />
-<P2  x="126" y="524" id="739" />
+<P1  x="227" y="477" id="753" />
+<P2  x="126" y="524" id="782" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="412" >
 <father id="414" num="0" />
@@ -919,8 +919,8 @@
 <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="420" />
-<P1  x="261" y="421" id="750" />
-<P2  x="260" y="437" id="753" />
+<P1  x="261" y="421" id="780" />
+<P2  x="260" y="437" id="740" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="419" >
 <father id="421" num="0" />
@@ -1540,13 +1540,13 @@
 <extraparam>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5103" id="738" >
+<SUBCOMPONENT type="5104" id="738" >
 <father id="844" num="0" />
-<cdparam x="377" y="502" />
-<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="242" y="529" />
+<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
-<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
+<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
+<infoparam name="Send signal" value="pushTeaButton()" />
 <TGConnectingPoint num="0" id="728" />
 <TGConnectingPoint num="1" id="729" />
 <TGConnectingPoint num="2" id="730" />
@@ -1559,13 +1559,13 @@
 <TGConnectingPoint num="9" id="737" />
 <accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5104" id="749" >
+<SUBCOMPONENT type="5106" id="779" >
 <father id="844" num="1" />
-<cdparam x="63" y="529" />
-<sizeparam width="127" height="20" minWidth="30" minHeight="0" 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" />
-<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" />
-<infoparam name="Send signal" value="pushCoffeeButton()" />
+<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
+<infoparam name="state0" value="WaitingForSelection" />
 <TGConnectingPoint num="0" id="739" />
 <TGConnectingPoint num="1" id="740" />
 <TGConnectingPoint num="2" id="741" />
@@ -1576,75 +1576,75 @@
 <TGConnectingPoint num="7" id="746" />
 <TGConnectingPoint num="8" id="747" />
 <TGConnectingPoint num="9" id="748" />
-<accessibility />
+<TGConnectingPoint num="10" id="749" />
+<TGConnectingPoint num="11" id="750" />
+<TGConnectingPoint num="12" id="751" />
+<TGConnectingPoint num="13" id="752" />
+<TGConnectingPoint num="14" id="753" />
+<TGConnectingPoint num="15" id="754" />
+<TGConnectingPoint num="16" id="755" />
+<TGConnectingPoint num="17" id="756" />
+<TGConnectingPoint num="18" id="757" />
+<TGConnectingPoint num="19" id="758" />
+<TGConnectingPoint num="20" id="759" />
+<TGConnectingPoint num="21" id="760" />
+<TGConnectingPoint num="22" id="761" />
+<TGConnectingPoint num="23" id="762" />
+<TGConnectingPoint num="24" id="763" />
+<TGConnectingPoint num="25" id="764" />
+<TGConnectingPoint num="26" id="765" />
+<TGConnectingPoint num="27" id="766" />
+<TGConnectingPoint num="28" id="767" />
+<TGConnectingPoint num="29" id="768" />
+<TGConnectingPoint num="30" id="769" />
+<TGConnectingPoint num="31" id="770" />
+<TGConnectingPoint num="32" id="771" />
+<TGConnectingPoint num="33" id="772" />
+<TGConnectingPoint num="34" id="773" />
+<TGConnectingPoint num="35" id="774" />
+<TGConnectingPoint num="36" id="775" />
+<TGConnectingPoint num="37" id="776" />
+<TGConnectingPoint num="38" id="777" />
+<TGConnectingPoint num="39" id="778" />
+<latencyCheck />
+<extraparam>
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5100" id="751" >
+<SUBCOMPONENT type="5100" id="781" >
 <father id="844" num="2" />
 <cdparam x="254" y="401" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
-<TGConnectingPoint num="0" id="750" />
+<TGConnectingPoint num="0" id="780" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5106" id="792" >
+<SUBCOMPONENT type="5104" id="792" >
 <father id="844" num="3" />
-<cdparam x="194" y="437" />
-<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="63" y="529" />
+<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
-<infoparam name="state0" value="WaitingForSelection" />
-<TGConnectingPoint num="0" id="752" />
-<TGConnectingPoint num="1" id="753" />
-<TGConnectingPoint num="2" id="754" />
-<TGConnectingPoint num="3" id="755" />
-<TGConnectingPoint num="4" id="756" />
-<TGConnectingPoint num="5" id="757" />
-<TGConnectingPoint num="6" id="758" />
-<TGConnectingPoint num="7" id="759" />
-<TGConnectingPoint num="8" id="760" />
-<TGConnectingPoint num="9" id="761" />
-<TGConnectingPoint num="10" id="762" />
-<TGConnectingPoint num="11" id="763" />
-<TGConnectingPoint num="12" id="764" />
-<TGConnectingPoint num="13" id="765" />
-<TGConnectingPoint num="14" id="766" />
-<TGConnectingPoint num="15" id="767" />
-<TGConnectingPoint num="16" id="768" />
-<TGConnectingPoint num="17" id="769" />
-<TGConnectingPoint num="18" id="770" />
-<TGConnectingPoint num="19" id="771" />
-<TGConnectingPoint num="20" id="772" />
-<TGConnectingPoint num="21" id="773" />
-<TGConnectingPoint num="22" id="774" />
-<TGConnectingPoint num="23" id="775" />
-<TGConnectingPoint num="24" id="776" />
-<TGConnectingPoint num="25" id="777" />
-<TGConnectingPoint num="26" id="778" />
-<TGConnectingPoint num="27" id="779" />
-<TGConnectingPoint num="28" id="780" />
-<TGConnectingPoint num="29" id="781" />
-<TGConnectingPoint num="30" id="782" />
-<TGConnectingPoint num="31" id="783" />
-<TGConnectingPoint num="32" id="784" />
-<TGConnectingPoint num="33" id="785" />
-<TGConnectingPoint num="34" id="786" />
-<TGConnectingPoint num="35" id="787" />
-<TGConnectingPoint num="36" id="788" />
-<TGConnectingPoint num="37" id="789" />
-<TGConnectingPoint num="38" id="790" />
-<TGConnectingPoint num="39" id="791" />
-<latencyCheck />
-<extraparam>
-</extraparam>
+<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" />
+<infoparam name="Send signal" value="pushCoffeeButton()" />
+<TGConnectingPoint num="0" id="782" />
+<TGConnectingPoint num="1" id="783" />
+<TGConnectingPoint num="2" id="784" />
+<TGConnectingPoint num="3" id="785" />
+<TGConnectingPoint num="4" id="786" />
+<TGConnectingPoint num="5" id="787" />
+<TGConnectingPoint num="6" id="788" />
+<TGConnectingPoint num="7" id="789" />
+<TGConnectingPoint num="8" id="790" />
+<TGConnectingPoint num="9" id="791" />
+<accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5104" id="803" >
+<SUBCOMPONENT type="5103" id="803" >
 <father id="844" num="4" />
-<cdparam x="242" y="529" />
-<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="377" y="502" />
+<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
-<infoparam name="Send signal" value="pushTeaButton()" />
+<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
+<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
 <TGConnectingPoint num="0" id="793" />
 <TGConnectingPoint num="1" id="794" />
 <TGConnectingPoint num="2" id="795" />
@@ -1661,19 +1661,19 @@
 
 </AVATARStateMachineDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" >
 <CONNECTOR type="5102" id="851" >
-<cdparam x="177" y="199" />
+<cdparam x="363" y="193" />
 <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" />
+<infoparam name="connector from Send signal to state0" value="null" />
 <TGConnectingPoint num="0" id="850" />
-<P1  x="340" y="233" id="957" />
-<P2  x="353" y="252" id="959" />
+<P1  x="363" y="204" id="867" />
+<P2  x="362" y="257" id="878" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="849" >
 <father id="851" num="0" />
-<cdparam x="177" y="239" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="380" y="228" />
+<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
@@ -1683,7 +1683,7 @@
 <TGConnectingPoint num="3" id="848" />
 <extraparam>
 <guard value="[ ]" />
-<afterMin value="" />
+<afterMin value="mechanicalDelay" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
@@ -1692,16 +1692,16 @@
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="858" >
-<cdparam x="322" y="69" />
+<cdparam x="363" y="150" />
 <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" />
+<infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="857" />
-<P1  x="322" y="69" id="955" />
-<P2  x="323" y="88" id="915" />
+<P1  x="363" y="150" id="924" />
+<P2  x="363" y="174" id="866" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="856" >
 <father id="858" num="0" />
-<cdparam x="322" y="109" />
+<cdparam x="363" y="190" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -1721,16 +1721,16 @@
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="865" >
-<cdparam x="377" y="144" />
+<cdparam x="362" y="101" />
 <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" />
+<infoparam name="connector from start state to state0" value="null" />
 <TGConnectingPoint num="0" id="864" />
-<P1  x="323" y="118" id="920" />
-<P2  x="356" y="174" id="971" />
+<P1  x="362" y="101" id="959" />
+<P2  x="363" y="120" id="919" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="863" >
 <father id="865" num="0" />
-<cdparam x="377" y="184" />
+<cdparam x="362" y="141" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -1749,247 +1749,159 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="872" >
-<cdparam x="377" y="187" />
-<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="871" />
-<P1  x="353" y="282" id="960" />
-<P2  x="399" y="352" id="874" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="870" >
-<father id="872" num="0" />
-<cdparam x="417" y="335" />
-<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5103" id="876" >
+<cdparam x="338" y="179" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<infoparam name="Send signal" value="push()" />
 <TGConnectingPoint num="0" id="866" />
 <TGConnectingPoint num="1" id="867" />
 <TGConnectingPoint num="2" id="868" />
 <TGConnectingPoint num="3" id="869" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="mechanicalDelay" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-</extraparam>
-</SUBCOMPONENT>
+<TGConnectingPoint num="4" id="870" />
+<TGConnectingPoint num="5" id="871" />
+<TGConnectingPoint num="6" id="872" />
+<TGConnectingPoint num="7" id="873" />
+<TGConnectingPoint num="8" id="874" />
+<TGConnectingPoint num="9" id="875" />
+</COMPONENT>
 
-<COMPONENT type="5106" id="913" >
-<cdparam x="374" y="352" />
+<COMPONENT type="5106" id="917" >
+<cdparam x="337" y="257" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="873" />
-<TGConnectingPoint num="1" id="874" />
-<TGConnectingPoint num="2" id="875" />
-<TGConnectingPoint num="3" id="876" />
-<TGConnectingPoint num="4" id="877" />
-<TGConnectingPoint num="5" id="878" />
-<TGConnectingPoint num="6" id="879" />
-<TGConnectingPoint num="7" id="880" />
-<TGConnectingPoint num="8" id="881" />
-<TGConnectingPoint num="9" id="882" />
-<TGConnectingPoint num="10" id="883" />
-<TGConnectingPoint num="11" id="884" />
-<TGConnectingPoint num="12" id="885" />
-<TGConnectingPoint num="13" id="886" />
-<TGConnectingPoint num="14" id="887" />
-<TGConnectingPoint num="15" id="888" />
-<TGConnectingPoint num="16" id="889" />
-<TGConnectingPoint num="17" id="890" />
-<TGConnectingPoint num="18" id="891" />
-<TGConnectingPoint num="19" id="892" />
-<TGConnectingPoint num="20" id="893" />
-<TGConnectingPoint num="21" id="894" />
-<TGConnectingPoint num="22" id="895" />
-<TGConnectingPoint num="23" id="896" />
-<TGConnectingPoint num="24" id="897" />
-<TGConnectingPoint num="25" id="898" />
-<TGConnectingPoint num="26" id="899" />
-<TGConnectingPoint num="27" id="900" />
-<TGConnectingPoint num="28" id="901" />
-<TGConnectingPoint num="29" id="902" />
-<TGConnectingPoint num="30" id="903" />
-<TGConnectingPoint num="31" id="904" />
-<TGConnectingPoint num="32" id="905" />
-<TGConnectingPoint num="33" id="906" />
-<TGConnectingPoint num="34" id="907" />
-<TGConnectingPoint num="35" id="908" />
-<TGConnectingPoint num="36" id="909" />
-<TGConnectingPoint num="37" id="910" />
-<TGConnectingPoint num="38" id="911" />
-<TGConnectingPoint num="39" id="912" />
+<TGConnectingPoint num="0" id="877" />
+<TGConnectingPoint num="1" id="878" />
+<TGConnectingPoint num="2" id="879" />
+<TGConnectingPoint num="3" id="880" />
+<TGConnectingPoint num="4" id="881" />
+<TGConnectingPoint num="5" id="882" />
+<TGConnectingPoint num="6" id="883" />
+<TGConnectingPoint num="7" id="884" />
+<TGConnectingPoint num="8" id="885" />
+<TGConnectingPoint num="9" id="886" />
+<TGConnectingPoint num="10" id="887" />
+<TGConnectingPoint num="11" id="888" />
+<TGConnectingPoint num="12" id="889" />
+<TGConnectingPoint num="13" id="890" />
+<TGConnectingPoint num="14" id="891" />
+<TGConnectingPoint num="15" id="892" />
+<TGConnectingPoint num="16" id="893" />
+<TGConnectingPoint num="17" id="894" />
+<TGConnectingPoint num="18" id="895" />
+<TGConnectingPoint num="19" id="896" />
+<TGConnectingPoint num="20" id="897" />
+<TGConnectingPoint num="21" id="898" />
+<TGConnectingPoint num="22" id="899" />
+<TGConnectingPoint num="23" id="900" />
+<TGConnectingPoint num="24" id="901" />
+<TGConnectingPoint num="25" id="902" />
+<TGConnectingPoint num="26" id="903" />
+<TGConnectingPoint num="27" id="904" />
+<TGConnectingPoint num="28" id="905" />
+<TGConnectingPoint num="29" id="906" />
+<TGConnectingPoint num="30" id="907" />
+<TGConnectingPoint num="31" id="908" />
+<TGConnectingPoint num="32" id="909" />
+<TGConnectingPoint num="33" id="910" />
+<TGConnectingPoint num="34" id="911" />
+<TGConnectingPoint num="35" id="912" />
+<TGConnectingPoint num="36" id="913" />
+<TGConnectingPoint num="37" id="914" />
+<TGConnectingPoint num="38" id="915" />
+<TGConnectingPoint num="39" id="916" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="954" >
-<cdparam x="298" y="88" />
+<COMPONENT type="5106" id="958" >
+<cdparam x="338" y="120" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="914" />
-<TGConnectingPoint num="1" id="915" />
-<TGConnectingPoint num="2" id="916" />
-<TGConnectingPoint num="3" id="917" />
-<TGConnectingPoint num="4" id="918" />
-<TGConnectingPoint num="5" id="919" />
-<TGConnectingPoint num="6" id="920" />
-<TGConnectingPoint num="7" id="921" />
-<TGConnectingPoint num="8" id="922" />
-<TGConnectingPoint num="9" id="923" />
-<TGConnectingPoint num="10" id="924" />
-<TGConnectingPoint num="11" id="925" />
-<TGConnectingPoint num="12" id="926" />
-<TGConnectingPoint num="13" id="927" />
-<TGConnectingPoint num="14" id="928" />
-<TGConnectingPoint num="15" id="929" />
-<TGConnectingPoint num="16" id="930" />
-<TGConnectingPoint num="17" id="931" />
-<TGConnectingPoint num="18" id="932" />
-<TGConnectingPoint num="19" id="933" />
-<TGConnectingPoint num="20" id="934" />
-<TGConnectingPoint num="21" id="935" />
-<TGConnectingPoint num="22" id="936" />
-<TGConnectingPoint num="23" id="937" />
-<TGConnectingPoint num="24" id="938" />
-<TGConnectingPoint num="25" id="939" />
-<TGConnectingPoint num="26" id="940" />
-<TGConnectingPoint num="27" id="941" />
-<TGConnectingPoint num="28" id="942" />
-<TGConnectingPoint num="29" id="943" />
-<TGConnectingPoint num="30" id="944" />
-<TGConnectingPoint num="31" id="945" />
-<TGConnectingPoint num="32" id="946" />
-<TGConnectingPoint num="33" id="947" />
-<TGConnectingPoint num="34" id="948" />
-<TGConnectingPoint num="35" id="949" />
-<TGConnectingPoint num="36" id="950" />
-<TGConnectingPoint num="37" id="951" />
-<TGConnectingPoint num="38" id="952" />
-<TGConnectingPoint num="39" id="953" />
+<TGConnectingPoint num="0" id="918" />
+<TGConnectingPoint num="1" id="919" />
+<TGConnectingPoint num="2" id="920" />
+<TGConnectingPoint num="3" id="921" />
+<TGConnectingPoint num="4" id="922" />
+<TGConnectingPoint num="5" id="923" />
+<TGConnectingPoint num="6" id="924" />
+<TGConnectingPoint num="7" id="925" />
+<TGConnectingPoint num="8" id="926" />
+<TGConnectingPoint num="9" id="927" />
+<TGConnectingPoint num="10" id="928" />
+<TGConnectingPoint num="11" id="929" />
+<TGConnectingPoint num="12" id="930" />
+<TGConnectingPoint num="13" id="931" />
+<TGConnectingPoint num="14" id="932" />
+<TGConnectingPoint num="15" id="933" />
+<TGConnectingPoint num="16" id="934" />
+<TGConnectingPoint num="17" id="935" />
+<TGConnectingPoint num="18" id="936" />
+<TGConnectingPoint num="19" id="937" />
+<TGConnectingPoint num="20" id="938" />
+<TGConnectingPoint num="21" id="939" />
+<TGConnectingPoint num="22" id="940" />
+<TGConnectingPoint num="23" id="941" />
+<TGConnectingPoint num="24" id="942" />
+<TGConnectingPoint num="25" id="943" />
+<TGConnectingPoint num="26" id="944" />
+<TGConnectingPoint num="27" id="945" />
+<TGConnectingPoint num="28" id="946" />
+<TGConnectingPoint num="29" id="947" />
+<TGConnectingPoint num="30" id="948" />
+<TGConnectingPoint num="31" id="949" />
+<TGConnectingPoint num="32" id="950" />
+<TGConnectingPoint num="33" id="951" />
+<TGConnectingPoint num="34" id="952" />
+<TGConnectingPoint num="35" id="953" />
+<TGConnectingPoint num="36" id="954" />
+<TGConnectingPoint num="37" id="955" />
+<TGConnectingPoint num="38" id="956" />
+<TGConnectingPoint num="39" id="957" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="956" >
-<cdparam x="315" y="49" />
+<COMPONENT type="5100" id="960" >
+<cdparam x="355" y="81" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
-<TGConnectingPoint num="0" id="955" />
-</COMPONENT>
-
-<COMPONENT type="5106" id="1010" >
-<cdparam x="264" y="174" />
-<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="state0" />
-<TGConnectingPoint num="0" id="970" />
-<TGConnectingPoint num="1" id="971" />
-<TGConnectingPoint num="2" id="972" />
-<TGConnectingPoint num="3" id="973" />
-<TGConnectingPoint num="4" id="974" />
-<TGConnectingPoint num="5" id="975" />
-<TGConnectingPoint num="6" id="976" />
-<TGConnectingPoint num="7" id="977" />
-<TGConnectingPoint num="8" id="978" />
-<TGConnectingPoint num="9" id="979" />
-<TGConnectingPoint num="10" id="980" />
-<TGConnectingPoint num="11" id="981" />
-<TGConnectingPoint num="12" id="982" />
-<TGConnectingPoint num="13" id="983" />
-<TGConnectingPoint num="14" id="984" />
-<TGConnectingPoint num="15" id="985" />
-<TGConnectingPoint num="16" id="986" />
-<TGConnectingPoint num="17" id="987" />
-<TGConnectingPoint num="18" id="988" />
-<TGConnectingPoint num="19" id="989" />
-<TGConnectingPoint num="20" id="990" />
-<TGConnectingPoint num="21" id="991" />
-<TGConnectingPoint num="22" id="992" />
-<TGConnectingPoint num="23" id="993" />
-<TGConnectingPoint num="24" id="994" />
-<TGConnectingPoint num="25" id="995" />
-<TGConnectingPoint num="26" id="996" />
-<TGConnectingPoint num="27" id="997" />
-<TGConnectingPoint num="28" id="998" />
-<TGConnectingPoint num="29" id="999" />
-<TGConnectingPoint num="30" id="1000" />
-<TGConnectingPoint num="31" id="1001" />
-<TGConnectingPoint num="32" id="1002" />
-<TGConnectingPoint num="33" id="1003" />
-<TGConnectingPoint num="34" id="1004" />
-<TGConnectingPoint num="35" id="1005" />
-<TGConnectingPoint num="36" id="1006" />
-<TGConnectingPoint num="37" id="1007" />
-<TGConnectingPoint num="38" id="1008" />
-<TGConnectingPoint num="39" id="1009" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="5100" id="958" >
-<father id="1010" num="0" />
-<cdparam x="333" y="213" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
-<TGConnectingPoint num="0" id="957" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5103" id="969" >
-<father id="1010" num="1" />
-<cdparam x="330" y="257" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
-<infoparam name="Send signal" value="push()" />
 <TGConnectingPoint num="0" id="959" />
-<TGConnectingPoint num="1" id="960" />
-<TGConnectingPoint num="2" id="961" />
-<TGConnectingPoint num="3" id="962" />
-<TGConnectingPoint num="4" id="963" />
-<TGConnectingPoint num="5" id="964" />
-<TGConnectingPoint num="6" id="965" />
-<TGConnectingPoint num="7" id="966" />
-<TGConnectingPoint num="8" id="967" />
-<TGConnectingPoint num="9" id="968" />
-</SUBCOMPONENT>
+</COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="1017" >
-<cdparam x="363" y="193" />
+<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="967" >
+<cdparam x="177" y="199" />
 <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="1016" />
-<P1  x="363" y="204" id="1033" />
-<P2  x="362" y="257" id="1044" />
+<infoparam name="connector from start state to Send signal" value="null" />
+<TGConnectingPoint num="0" id="966" />
+<P1  x="340" y="233" id="1084" />
+<P2  x="353" y="252" id="1073" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1015" >
-<father id="1017" num="0" />
-<cdparam x="380" y="228" />
-<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="965" >
+<father id="967" num="0" />
+<cdparam x="177" y="239" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1011" />
-<TGConnectingPoint num="1" id="1012" />
-<TGConnectingPoint num="2" id="1013" />
-<TGConnectingPoint num="3" id="1014" />
+<TGConnectingPoint num="0" id="961" />
+<TGConnectingPoint num="1" id="962" />
+<TGConnectingPoint num="2" id="963" />
+<TGConnectingPoint num="3" id="964" />
 <extraparam>
 <guard value="[ ]" />
-<afterMin value="mechanicalDelay" />
+<afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
@@ -1997,25 +1909,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1024" >
-<cdparam x="363" y="150" />
+<CONNECTOR type="5102" id="974" >
+<cdparam x="322" y="69" />
 <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="1023" />
-<P1  x="363" y="150" id="1090" />
-<P2  x="363" y="174" id="1032" />
+<infoparam name="connector from start state to state0" value="null" />
+<TGConnectingPoint num="0" id="973" />
+<P1  x="322" y="69" id="1071" />
+<P2  x="323" y="88" id="1031" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1022" >
-<father id="1024" num="0" />
-<cdparam x="363" y="190" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="972" >
+<father id="974" num="0" />
+<cdparam x="322" y="109" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1018" />
-<TGConnectingPoint num="1" id="1019" />
-<TGConnectingPoint num="2" id="1020" />
-<TGConnectingPoint num="3" id="1021" />
+<TGConnectingPoint num="0" id="968" />
+<TGConnectingPoint num="1" id="969" />
+<TGConnectingPoint num="2" id="970" />
+<TGConnectingPoint num="3" id="971" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2026,25 +1938,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1031" >
-<cdparam x="362" y="101" />
+<CONNECTOR type="5102" id="981" >
+<cdparam x="377" y="144" />
 <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="1030" />
-<P1  x="362" y="101" id="1125" />
-<P2  x="363" y="120" id="1085" />
+<infoparam name="connector from state0 to Send signal" value="null" />
+<TGConnectingPoint num="0" id="980" />
+<P1  x="323" y="118" id="1036" />
+<P2  x="356" y="174" id="1087" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1029" >
-<father id="1031" num="0" />
-<cdparam x="362" y="141" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="979" >
+<father id="981" num="0" />
+<cdparam x="377" y="184" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1025" />
-<TGConnectingPoint num="1" id="1026" />
-<TGConnectingPoint num="2" id="1027" />
-<TGConnectingPoint num="3" id="1028" />
+<TGConnectingPoint num="0" id="975" />
+<TGConnectingPoint num="1" id="976" />
+<TGConnectingPoint num="2" id="977" />
+<TGConnectingPoint num="3" id="978" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2055,133 +1967,221 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5103" id="1042" >
-<cdparam x="338" y="179" />
-<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="988" >
+<cdparam x="377" y="187" />
+<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="987" />
+<P1  x="353" y="282" id="1074" />
+<P2  x="399" y="352" id="990" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="986" >
+<father id="988" num="0" />
+<cdparam x="417" y="335" />
+<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Send signal" value="push()" />
-<TGConnectingPoint num="0" id="1032" />
-<TGConnectingPoint num="1" id="1033" />
-<TGConnectingPoint num="2" id="1034" />
-<TGConnectingPoint num="3" id="1035" />
-<TGConnectingPoint num="4" id="1036" />
-<TGConnectingPoint num="5" id="1037" />
-<TGConnectingPoint num="6" id="1038" />
-<TGConnectingPoint num="7" id="1039" />
-<TGConnectingPoint num="8" id="1040" />
-<TGConnectingPoint num="9" id="1041" />
-</COMPONENT>
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="982" />
+<TGConnectingPoint num="1" id="983" />
+<TGConnectingPoint num="2" id="984" />
+<TGConnectingPoint num="3" id="985" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="mechanicalDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+</extraparam>
+</SUBCOMPONENT>
 
-<COMPONENT type="5106" id="1083" >
-<cdparam x="337" y="257" />
+<COMPONENT type="5106" id="1029" >
+<cdparam x="374" y="352" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1043" />
-<TGConnectingPoint num="1" id="1044" />
-<TGConnectingPoint num="2" id="1045" />
-<TGConnectingPoint num="3" id="1046" />
-<TGConnectingPoint num="4" id="1047" />
-<TGConnectingPoint num="5" id="1048" />
-<TGConnectingPoint num="6" id="1049" />
-<TGConnectingPoint num="7" id="1050" />
-<TGConnectingPoint num="8" id="1051" />
-<TGConnectingPoint num="9" id="1052" />
-<TGConnectingPoint num="10" id="1053" />
-<TGConnectingPoint num="11" id="1054" />
-<TGConnectingPoint num="12" id="1055" />
-<TGConnectingPoint num="13" id="1056" />
-<TGConnectingPoint num="14" id="1057" />
-<TGConnectingPoint num="15" id="1058" />
-<TGConnectingPoint num="16" id="1059" />
-<TGConnectingPoint num="17" id="1060" />
-<TGConnectingPoint num="18" id="1061" />
-<TGConnectingPoint num="19" id="1062" />
-<TGConnectingPoint num="20" id="1063" />
-<TGConnectingPoint num="21" id="1064" />
-<TGConnectingPoint num="22" id="1065" />
-<TGConnectingPoint num="23" id="1066" />
-<TGConnectingPoint num="24" id="1067" />
-<TGConnectingPoint num="25" id="1068" />
-<TGConnectingPoint num="26" id="1069" />
-<TGConnectingPoint num="27" id="1070" />
-<TGConnectingPoint num="28" id="1071" />
-<TGConnectingPoint num="29" id="1072" />
-<TGConnectingPoint num="30" id="1073" />
-<TGConnectingPoint num="31" id="1074" />
-<TGConnectingPoint num="32" id="1075" />
-<TGConnectingPoint num="33" id="1076" />
-<TGConnectingPoint num="34" id="1077" />
-<TGConnectingPoint num="35" id="1078" />
-<TGConnectingPoint num="36" id="1079" />
-<TGConnectingPoint num="37" id="1080" />
-<TGConnectingPoint num="38" id="1081" />
-<TGConnectingPoint num="39" id="1082" />
+<TGConnectingPoint num="0" id="989" />
+<TGConnectingPoint num="1" id="990" />
+<TGConnectingPoint num="2" id="991" />
+<TGConnectingPoint num="3" id="992" />
+<TGConnectingPoint num="4" id="993" />
+<TGConnectingPoint num="5" id="994" />
+<TGConnectingPoint num="6" id="995" />
+<TGConnectingPoint num="7" id="996" />
+<TGConnectingPoint num="8" id="997" />
+<TGConnectingPoint num="9" id="998" />
+<TGConnectingPoint num="10" id="999" />
+<TGConnectingPoint num="11" id="1000" />
+<TGConnectingPoint num="12" id="1001" />
+<TGConnectingPoint num="13" id="1002" />
+<TGConnectingPoint num="14" id="1003" />
+<TGConnectingPoint num="15" id="1004" />
+<TGConnectingPoint num="16" id="1005" />
+<TGConnectingPoint num="17" id="1006" />
+<TGConnectingPoint num="18" id="1007" />
+<TGConnectingPoint num="19" id="1008" />
+<TGConnectingPoint num="20" id="1009" />
+<TGConnectingPoint num="21" id="1010" />
+<TGConnectingPoint num="22" id="1011" />
+<TGConnectingPoint num="23" id="1012" />
+<TGConnectingPoint num="24" id="1013" />
+<TGConnectingPoint num="25" id="1014" />
+<TGConnectingPoint num="26" id="1015" />
+<TGConnectingPoint num="27" id="1016" />
+<TGConnectingPoint num="28" id="1017" />
+<TGConnectingPoint num="29" id="1018" />
+<TGConnectingPoint num="30" id="1019" />
+<TGConnectingPoint num="31" id="1020" />
+<TGConnectingPoint num="32" id="1021" />
+<TGConnectingPoint num="33" id="1022" />
+<TGConnectingPoint num="34" id="1023" />
+<TGConnectingPoint num="35" id="1024" />
+<TGConnectingPoint num="36" id="1025" />
+<TGConnectingPoint num="37" id="1026" />
+<TGConnectingPoint num="38" id="1027" />
+<TGConnectingPoint num="39" id="1028" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1124" >
-<cdparam x="338" y="120" />
+<COMPONENT type="5106" id="1070" >
+<cdparam x="298" y="88" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1084" />
-<TGConnectingPoint num="1" id="1085" />
-<TGConnectingPoint num="2" id="1086" />
-<TGConnectingPoint num="3" id="1087" />
-<TGConnectingPoint num="4" id="1088" />
-<TGConnectingPoint num="5" id="1089" />
-<TGConnectingPoint num="6" id="1090" />
-<TGConnectingPoint num="7" id="1091" />
-<TGConnectingPoint num="8" id="1092" />
-<TGConnectingPoint num="9" id="1093" />
-<TGConnectingPoint num="10" id="1094" />
-<TGConnectingPoint num="11" id="1095" />
-<TGConnectingPoint num="12" id="1096" />
-<TGConnectingPoint num="13" id="1097" />
-<TGConnectingPoint num="14" id="1098" />
-<TGConnectingPoint num="15" id="1099" />
-<TGConnectingPoint num="16" id="1100" />
-<TGConnectingPoint num="17" id="1101" />
-<TGConnectingPoint num="18" id="1102" />
-<TGConnectingPoint num="19" id="1103" />
-<TGConnectingPoint num="20" id="1104" />
-<TGConnectingPoint num="21" id="1105" />
-<TGConnectingPoint num="22" id="1106" />
-<TGConnectingPoint num="23" id="1107" />
-<TGConnectingPoint num="24" id="1108" />
-<TGConnectingPoint num="25" id="1109" />
-<TGConnectingPoint num="26" id="1110" />
-<TGConnectingPoint num="27" id="1111" />
-<TGConnectingPoint num="28" id="1112" />
-<TGConnectingPoint num="29" id="1113" />
-<TGConnectingPoint num="30" id="1114" />
-<TGConnectingPoint num="31" id="1115" />
-<TGConnectingPoint num="32" id="1116" />
-<TGConnectingPoint num="33" id="1117" />
-<TGConnectingPoint num="34" id="1118" />
-<TGConnectingPoint num="35" id="1119" />
-<TGConnectingPoint num="36" id="1120" />
-<TGConnectingPoint num="37" id="1121" />
-<TGConnectingPoint num="38" id="1122" />
-<TGConnectingPoint num="39" id="1123" />
+<TGConnectingPoint num="0" id="1030" />
+<TGConnectingPoint num="1" id="1031" />
+<TGConnectingPoint num="2" id="1032" />
+<TGConnectingPoint num="3" id="1033" />
+<TGConnectingPoint num="4" id="1034" />
+<TGConnectingPoint num="5" id="1035" />
+<TGConnectingPoint num="6" id="1036" />
+<TGConnectingPoint num="7" id="1037" />
+<TGConnectingPoint num="8" id="1038" />
+<TGConnectingPoint num="9" id="1039" />
+<TGConnectingPoint num="10" id="1040" />
+<TGConnectingPoint num="11" id="1041" />
+<TGConnectingPoint num="12" id="1042" />
+<TGConnectingPoint num="13" id="1043" />
+<TGConnectingPoint num="14" id="1044" />
+<TGConnectingPoint num="15" id="1045" />
+<TGConnectingPoint num="16" id="1046" />
+<TGConnectingPoint num="17" id="1047" />
+<TGConnectingPoint num="18" id="1048" />
+<TGConnectingPoint num="19" id="1049" />
+<TGConnectingPoint num="20" id="1050" />
+<TGConnectingPoint num="21" id="1051" />
+<TGConnectingPoint num="22" id="1052" />
+<TGConnectingPoint num="23" id="1053" />
+<TGConnectingPoint num="24" id="1054" />
+<TGConnectingPoint num="25" id="1055" />
+<TGConnectingPoint num="26" id="1056" />
+<TGConnectingPoint num="27" id="1057" />
+<TGConnectingPoint num="28" id="1058" />
+<TGConnectingPoint num="29" id="1059" />
+<TGConnectingPoint num="30" id="1060" />
+<TGConnectingPoint num="31" id="1061" />
+<TGConnectingPoint num="32" id="1062" />
+<TGConnectingPoint num="33" id="1063" />
+<TGConnectingPoint num="34" id="1064" />
+<TGConnectingPoint num="35" id="1065" />
+<TGConnectingPoint num="36" id="1066" />
+<TGConnectingPoint num="37" id="1067" />
+<TGConnectingPoint num="38" id="1068" />
+<TGConnectingPoint num="39" id="1069" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="1126" >
-<cdparam x="355" y="81" />
+<COMPONENT type="5100" id="1072" >
+<cdparam x="315" y="49" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
-<TGConnectingPoint num="0" id="1125" />
+<TGConnectingPoint num="0" id="1071" />
 </COMPONENT>
 
+<COMPONENT type="5106" id="1126" >
+<cdparam x="264" y="174" />
+<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="state0" />
+<TGConnectingPoint num="0" id="1086" />
+<TGConnectingPoint num="1" id="1087" />
+<TGConnectingPoint num="2" id="1088" />
+<TGConnectingPoint num="3" id="1089" />
+<TGConnectingPoint num="4" id="1090" />
+<TGConnectingPoint num="5" id="1091" />
+<TGConnectingPoint num="6" id="1092" />
+<TGConnectingPoint num="7" id="1093" />
+<TGConnectingPoint num="8" id="1094" />
+<TGConnectingPoint num="9" id="1095" />
+<TGConnectingPoint num="10" id="1096" />
+<TGConnectingPoint num="11" id="1097" />
+<TGConnectingPoint num="12" id="1098" />
+<TGConnectingPoint num="13" id="1099" />
+<TGConnectingPoint num="14" id="1100" />
+<TGConnectingPoint num="15" id="1101" />
+<TGConnectingPoint num="16" id="1102" />
+<TGConnectingPoint num="17" id="1103" />
+<TGConnectingPoint num="18" id="1104" />
+<TGConnectingPoint num="19" id="1105" />
+<TGConnectingPoint num="20" id="1106" />
+<TGConnectingPoint num="21" id="1107" />
+<TGConnectingPoint num="22" id="1108" />
+<TGConnectingPoint num="23" id="1109" />
+<TGConnectingPoint num="24" id="1110" />
+<TGConnectingPoint num="25" id="1111" />
+<TGConnectingPoint num="26" id="1112" />
+<TGConnectingPoint num="27" id="1113" />
+<TGConnectingPoint num="28" id="1114" />
+<TGConnectingPoint num="29" id="1115" />
+<TGConnectingPoint num="30" id="1116" />
+<TGConnectingPoint num="31" id="1117" />
+<TGConnectingPoint num="32" id="1118" />
+<TGConnectingPoint num="33" id="1119" />
+<TGConnectingPoint num="34" id="1120" />
+<TGConnectingPoint num="35" id="1121" />
+<TGConnectingPoint num="36" id="1122" />
+<TGConnectingPoint num="37" id="1123" />
+<TGConnectingPoint num="38" id="1124" />
+<TGConnectingPoint num="39" id="1125" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="5103" id="1083" >
+<father id="1126" num="0" />
+<cdparam x="330" y="257" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
+<infoparam name="Send signal" value="push()" />
+<TGConnectingPoint num="0" id="1073" />
+<TGConnectingPoint num="1" id="1074" />
+<TGConnectingPoint num="2" id="1075" />
+<TGConnectingPoint num="3" id="1076" />
+<TGConnectingPoint num="4" id="1077" />
+<TGConnectingPoint num="5" id="1078" />
+<TGConnectingPoint num="6" id="1079" />
+<TGConnectingPoint num="7" id="1080" />
+<TGConnectingPoint num="8" id="1081" />
+<TGConnectingPoint num="9" id="1082" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5100" id="1085" >
+<father id="1126" num="1" />
+<cdparam x="333" y="213" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1084" />
+</SUBCOMPONENT>
+
 
 </AVATARStateMachineDiagramPanel>
 
@@ -2599,7 +2599,7 @@
 <textline data="must be ejected" />
 <kind data="Functional" />
 <criticality data="Low" />
-<reqType data="SafetyRequirement" color="-10040065" />
+<reqType data="SafetyRequirement" color="-1773070" />
 <id data="0.1.1" />
 <satisfied data="false" />
 <verified data="false" />
@@ -2836,7 +2836,7 @@
 <textline data="negative number of coins" />
 <kind data="Functional" />
 <criticality data="Low" />
-<reqType data="SafetyRequirement" color="-10040065" />
+<reqType data="SafetyRequirement" color="-1773070" />
 <id data="0.2" />
 <satisfied data="true" />
 <verified data="true" />
@@ -3284,7 +3284,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="1751" />
-<P1  x="318" y="261" id="1795" />
+<P1  x="318" y="261" id="1782" />
 <P2  x="361" y="261" id="1770" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -3302,7 +3302,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="1755" />
-<P1  x="318" y="211" id="1782" />
+<P1  x="318" y="211" id="1795" />
 <P2  x="361" y="211" id="1769" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -3391,11 +3391,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="5304" id="1792" >
 <father id="1830" num="0" />
-<cdparam x="166" y="191" />
-<sizeparam width="152" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="154" y="241" />
+<sizeparam width="164" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="16" minY="0" maxY="114" />
-<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" />
+<cdrectangleparam minX="0" maxX="4" minY="0" maxY="114" />
+<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" />
 <TGConnectingPoint num="0" id="1780" />
 <TGConnectingPoint num="1" id="1781" />
 <TGConnectingPoint num="2" id="1782" />
@@ -3411,11 +3411,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="5304" id="1805" >
 <father id="1830" num="1" />
-<cdparam x="154" y="241" />
-<sizeparam width="164" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="166" y="191" />
+<sizeparam width="152" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="4" minY="0" maxY="114" />
-<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" />
+<cdrectangleparam minX="0" maxX="16" minY="0" maxY="114" />
+<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" />
 <TGConnectingPoint num="0" id="1793" />
 <TGConnectingPoint num="1" id="1794" />
 <TGConnectingPoint num="2" id="1795" />
@@ -3545,7 +3545,7 @@
 <TGConnectingPoint num="0" id="1889" />
 <TGConnectingPoint num="1" id="1890" />
 <TGConnectingPoint num="2" id="1891" />
-<P1  x="581" y="154" id="1965" />
+<P1  x="581" y="154" id="1978" />
 <P2  x="546" y="305" id="2035" />
 <Point x="518" y="154" />
 <Point x="518" y="305" />
@@ -3573,7 +3573,7 @@
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="1894" />
 <TGConnectingPoint num="1" id="1895" />
-<P1  x="631" y="164" id="1960" />
+<P1  x="631" y="164" id="1973" />
 <P2  x="667" y="310" id="2022" />
 <Point x="631" y="310" />
 <AutomaticDrawing  data="true" />
@@ -3601,7 +3601,7 @@
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="1900" />
 <TGConnectingPoint num="1" id="1901" />
-<P1  x="721" y="158" id="1971" />
+<P1  x="721" y="158" id="1958" />
 <P2  x="700" y="204" id="2012" />
 <Point x="700" y="158" />
 <AutomaticDrawing  data="true" />
@@ -3756,13 +3756,13 @@
 <TGConnectingPoint num="22" id="2005" />
 <TGConnectingPoint num="23" id="2006" />
 </COMPONENT>
-<SUBCOMPONENT type="5304" id="1969" >
+<SUBCOMPONENT type="5303" id="1969" >
 <father id="2007" num="0" />
-<cdparam x="581" y="125" />
-<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="721" y="133" />
+<sizeparam width="100" height="50" minWidth="100" minHeight="0" 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" />
 <TGConnectingPoint num="0" id="1957" />
 <TGConnectingPoint num="1" id="1958" />
 <TGConnectingPoint num="2" id="1959" />
@@ -3775,14 +3775,17 @@
 <TGConnectingPoint num="9" id="1966" />
 <TGConnectingPoint num="10" id="1967" />
 <TGConnectingPoint num="11" id="1968" />
+<extraparam>
+<Toggle value="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5303" id="1982" >
+<SUBCOMPONENT type="5304" id="1982" >
 <father id="2007" num="1" />
-<cdparam x="721" y="133" />
-<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="581" y="125" />
+<sizeparam width="100" height="39" minWidth="100" minHeight="0" 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" />
 <TGConnectingPoint num="0" id="1970" />
 <TGConnectingPoint num="1" id="1971" />
 <TGConnectingPoint num="2" id="1972" />
@@ -3795,9 +3798,6 @@
 <TGConnectingPoint num="9" id="1979" />
 <TGConnectingPoint num="10" id="1980" />
 <TGConnectingPoint num="11" id="1981" />
-<extraparam>
-<Toggle value="" />
-</extraparam>
 </SUBCOMPONENT>
 
 <COMPONENT type="5306" id="2019" >
@@ -4085,7 +4085,7 @@
 <textline data="Double-click to edit" />
 <kind data="" />
 <criticality data="" />
-<reqType data="SafetyRequirement" color="-10040065" />
+<reqType data="SafetyRequirement" color="-1773070" />
 <id data="1" />
 <satisfied data="false" />
 <verified data="false" />
diff --git a/modeling/DIPLODOCUS/802.15.4.xml b/modeling/DIPLODOCUS/802.15.4.xml
index 0038bde72fedf2e7dbfd2b14e0cd380e6784c98b..226880781b10b43cdf3bd5c6120b186aca5bdf23 100644
--- a/modeling/DIPLODOCUS/802.15.4.xml
+++ b/modeling/DIPLODOCUS/802.15.4.xml
@@ -19573,7 +19573,7 @@ SRC to CWM1, CWS and SINK
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="6136" >
+<!-- COMPONENT type="1508" id="6136" >
 <cdparam x="668" y="275" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -19583,7 +19583,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="1" id="6133" />
 <TGConnectingPoint num="2" id="6134" />
 <TGConnectingPoint num="3" id="6135" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1507" id="6138" >
 <cdparam x="465" y="594" />
@@ -19616,7 +19616,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="13" id="6152" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="6158" >
+<!-- COMPONENT type="1508" id="6158" >
 <cdparam x="198" y="272" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -19626,7 +19626,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="1" id="6155" />
 <TGConnectingPoint num="2" id="6156" />
 <TGConnectingPoint num="3" id="6157" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1500" id="6174" >
 <cdparam x="198" y="362" />
@@ -19811,7 +19811,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="9" id="6256" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="6262" >
+<!-- CONNECTOR type="1501" id="6262" >
 <cdparam x="801" y="457" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -19853,7 +19853,7 @@ SRC to CWM1, CWS and SINK
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="6264" >
 <cdparam x="723" y="370" />
@@ -19913,7 +19913,7 @@ SRC to CWM1, CWS and SINK
 <P2  x="425" y="550" id="6139" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="6274" >
+<!-- CONNECTOR type="1501" id="6274" >
 <cdparam x="94" y="485" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -19964,7 +19964,7 @@ SRC to CWM1, CWS and SINK
 <P1  x="213" y="302" id="6157" />
 <P2  x="213" y="352" id="6162" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="6277" >
 <cdparam x="173" y="377" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -20023,7 +20023,7 @@ SRC to CWM1, CWS and SINK
 <P2  x="456" y="117" id="6180" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="6283" >
+<!-- CONNECTOR type="1501" id="6283" >
 <cdparam x="209" y="311" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -20038,7 +20038,7 @@ SRC to CWM1, CWS and SINK
 <P1  x="683" y="221" id="6237" />
 <P2  x="683" y="275" id="6132" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="6285" >
 <cdparam x="683" y="305" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
diff --git a/modeling/DIPLODOCUS/CPlibrary/DMAPollingCycleP_AD.lib b/modeling/DIPLODOCUS/CPlibrary/DMAPollingCycleP_AD.lib
index 6966203d75c84fe7618a16f74165d79d7fb9fe89..0fbe679974464fa81277e9a0a808d7cc492cd758 100644
--- a/modeling/DIPLODOCUS/CPlibrary/DMAPollingCycleP_AD.lib
+++ b/modeling/DIPLODOCUS/CPlibrary/DMAPollingCycleP_AD.lib
@@ -3,7 +3,7 @@
 <TURTLEGSELECTEDCOMPONENTS version="0.96-beta1" copyMaxId="141314" decX="14" decY="10" >
 
 <CommunicationPatternDiagramPanelCopy name="DMAPollingCycleP_AD" xSel="14" ySel="10" widthSel="638" heightSel="382" >
-<CONNECTOR type="1501" id="141311" >
+<!--CONNECTOR type="1501" id="141311" >
 <cdparam x="174" y="274" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -36,9 +36,9 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
-<CONNECTOR type="1501" id="141310" >
+<!--CONNECTOR type="1501" id="141310" >
 <cdparam x="418" y="121" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -56,7 +56,7 @@
 <TGConnectingPoint num="1" id="141307" />
 <TGConnectingPoint num="2" id="141308" />
 <TGConnectingPoint num="3" id="141309" />
-</COMPONENT>
+</COMPONENT-->
 
 <CONNECTOR type="1501" id="141303" >
 <cdparam x="271" y="184" />
@@ -163,14 +163,14 @@
 <TGConnectingPoint num="0" id="141271" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="141299" >
+<!--CONNECTOR type="1501" id="141299" >
 <cdparam x="316" y="90" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="311" y="40" id="141271" />
 <P2  x="311" y="84" id="141306" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanelCopy>
 
diff --git a/modeling/DIPLODOCUS/CPlibrary/DMATransferCycleP_AD.lib b/modeling/DIPLODOCUS/CPlibrary/DMATransferCycleP_AD.lib
index 4493a4bc5456913dbc9243fef03ef96c43d3e3d5..fbf568870a991552dc6abb09fa3170c9043345cb 100644
--- a/modeling/DIPLODOCUS/CPlibrary/DMATransferCycleP_AD.lib
+++ b/modeling/DIPLODOCUS/CPlibrary/DMATransferCycleP_AD.lib
@@ -29,7 +29,7 @@
 <TGConnectingPoint num="9" id="140366" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="140355" >
+<!-- CONNECTOR type="1501" id="140355" >
 <cdparam x="382" y="90" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -70,7 +70,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="77479" >
 <cdparam x="342" y="324" />
@@ -133,7 +133,7 @@
 <infoparam name="guard 3" value="[ else ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="77451" >
+<!-- COMPONENT type="1508" id="77451" >
 <cdparam x="367" y="229" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -143,7 +143,7 @@
 <TGConnectingPoint num="1" id="77448" />
 <TGConnectingPoint num="2" id="77449" />
 <TGConnectingPoint num="3" id="77450" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1507" id="77464" >
 <cdparam x="372" y="520" />
@@ -189,14 +189,14 @@
 <P2  x="382" y="432" id="140357" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="77487" >
+<!-- CONNECTOR type="1501" id="77487" >
 <cdparam x="382" y="259" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="382" y="259" id="77450" />
 <P2  x="382" y="299" id="77425" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanelCopy>
 
diff --git a/modeling/DIPLODOCUS/CPlibrary/DMATransfer_NoPolling_MainCP.lib b/modeling/DIPLODOCUS/CPlibrary/DMATransfer_NoPolling_MainCP.lib
index bf31ad61b6aaf64cdc050180c1af107ab89944b5..5cfcc71faafdd6410b9a9493f9bdcbc8df55fe6d 100644
--- a/modeling/DIPLODOCUS/CPlibrary/DMATransfer_NoPolling_MainCP.lib
+++ b/modeling/DIPLODOCUS/CPlibrary/DMATransfer_NoPolling_MainCP.lib
@@ -46,7 +46,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="7701" >
+<!-- CONNECTOR type="1501" id="7701" >
 <cdparam x="282" y="387" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -79,7 +79,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <COMPONENT type="1500" id="7650" >
 <cdparam x="374" y="286" />
@@ -152,7 +152,7 @@
 <TGConnectingPoint num="9" id="7617" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="7623" >
+<!--COMPONENT type="1508" id="7623" >
 <cdparam x="374" y="184" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -162,7 +162,7 @@
 <TGConnectingPoint num="1" id="7620" />
 <TGConnectingPoint num="2" id="7621" />
 <TGConnectingPoint num="3" id="7622" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="7634" >
 <cdparam x="461" y="341" />
@@ -208,7 +208,7 @@
 <P2  x="523" y="411" id="7606" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="7706" >
+<!-- CONNECTOR type="1501" id="7706" >
 <cdparam x="389" y="132" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -223,7 +223,7 @@
 <P1  x="389" y="214" id="7622" />
 <P2  x="389" y="276" id="7638" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="23058" >
 <cdparam x="398" y="55" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
diff --git a/modeling/DIPLODOCUS/CPlibrary/LoadCPU_mainCP.lib b/modeling/DIPLODOCUS/CPlibrary/LoadCPU_mainCP.lib
index 7c0f4dd45a7c58854df703587f7b18edc04889ab..bc850b1a6e0ea30fbf11ed64cba7ccb163e76d68 100644
--- a/modeling/DIPLODOCUS/CPlibrary/LoadCPU_mainCP.lib
+++ b/modeling/DIPLODOCUS/CPlibrary/LoadCPU_mainCP.lib
@@ -64,7 +64,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="9922" >
+<!-- CONNECTOR type="1501" id="9922" >
 <cdparam x="256" y="376" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -109,7 +109,7 @@
 <TGConnectingPoint num="1" id="9898" />
 <TGConnectingPoint num="2" id="9899" />
 <TGConnectingPoint num="3" id="9900" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="9885" >
 <cdparam x="299" y="102" />
@@ -181,7 +181,7 @@
 <P2  x="361" y="97" id="9886" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="9901" >
+<!-- CONNECTOR type="1501" id="9901" >
 <cdparam x="361" y="142" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -196,7 +196,7 @@
 <P1  x="361" y="220" id="9900" />
 <P2  x="361" y="260" id="9903" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanelCopy>
 
diff --git a/modeling/DIPLODOCUS/CPlibrary/StoreCPU_mainCP.lib b/modeling/DIPLODOCUS/CPlibrary/StoreCPU_mainCP.lib
index 740681d07b249f3f03a80504a902cdfc51a94daf..9bfde1ff13b73633a7d8cd83ae3e58173795f1a2 100644
--- a/modeling/DIPLODOCUS/CPlibrary/StoreCPU_mainCP.lib
+++ b/modeling/DIPLODOCUS/CPlibrary/StoreCPU_mainCP.lib
@@ -3,7 +3,7 @@
 <TURTLEGSELECTEDCOMPONENTS version="0.96-beta1" copyMaxId="5622" decX="91" decY="17" >
 
 <CommunicationPatternDiagramPanelCopy name="MainCP" xSel="91" ySel="17" widthSel="426" heightSel="465" >
-<CONNECTOR type="1501" id="5619" >
+<!-- CONNECTOR type="1501" id="5619" >
 <cdparam x="253" y="388" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -36,7 +36,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="5617" >
 <cdparam x="318" y="297" />
@@ -117,7 +117,7 @@
 <TGConnectingPoint num="9" id="1710" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="5593" >
+<!-- COMPONENT type="1508" id="5593" >
 <cdparam x="343" y="202" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -127,7 +127,7 @@
 <TGConnectingPoint num="1" id="5595" />
 <TGConnectingPoint num="2" id="5596" />
 <TGConnectingPoint num="3" id="5597" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="5582" >
 <cdparam x="296" y="114" />
@@ -181,7 +181,7 @@
 <P2  x="358" y="109" id="5583" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="5598" >
+<!-- CONNECTOR type="1501" id="5598" >
 <cdparam x="358" y="154" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -196,7 +196,7 @@
 <P1  x="358" y="232" id="5597" />
 <P2  x="358" y="272" id="5600" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanelCopy>
 
diff --git a/modeling/DIPLODOCUS/MODELS_2014demo.xml b/modeling/DIPLODOCUS/MODELS_2014demo.xml
index 4b23c4ce88af24e7219f74fa9a529ddcfdb89227..7df510c673072fb5e8ac71229d5f6bbc3343fb8c 100644
--- a/modeling/DIPLODOCUS/MODELS_2014demo.xml
+++ b/modeling/DIPLODOCUS/MODELS_2014demo.xml
@@ -20402,7 +20402,7 @@ SRC to CWM1, CWS and SINK
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="6200" >
+<!-- COMPONENT type="1508" id="6200" >
 <cdparam x="668" y="275" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -20412,7 +20412,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="1" id="6197" />
 <TGConnectingPoint num="2" id="6198" />
 <TGConnectingPoint num="3" id="6199" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1507" id="6202" >
 <cdparam x="465" y="594" />
@@ -20445,7 +20445,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="13" id="6216" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="6222" >
+<!-- COMPONENT type="1508" id="6222" >
 <cdparam x="198" y="272" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -20455,7 +20455,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="1" id="6219" />
 <TGConnectingPoint num="2" id="6220" />
 <TGConnectingPoint num="3" id="6221" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1500" id="6238" >
 <cdparam x="198" y="362" />
@@ -20640,7 +20640,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="9" id="6320" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="6326" >
+<!-- CONNECTOR type="1501" id="6326" >
 <cdparam x="801" y="457" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -20682,7 +20682,7 @@ SRC to CWM1, CWS and SINK
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="6328" >
 <cdparam x="723" y="370" />
@@ -20742,7 +20742,7 @@ SRC to CWM1, CWS and SINK
 <P2  x="425" y="550" id="6203" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="6338" >
+<!-- CONNECTOR type="1501" id="6338" >
 <cdparam x="94" y="485" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -20793,7 +20793,7 @@ SRC to CWM1, CWS and SINK
 <P1  x="213" y="302" id="6221" />
 <P2  x="213" y="352" id="6226" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="6341" >
 <cdparam x="173" y="377" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -20852,7 +20852,7 @@ SRC to CWM1, CWS and SINK
 <P2  x="456" y="117" id="6244" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="6347" >
+<!-- CONNECTOR type="1501" id="6347" >
 <cdparam x="209" y="311" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -20875,7 +20875,7 @@ SRC to CWM1, CWS and SINK
 <P1  x="683" y="305" id="6199" />
 <P2  x="683" y="345" id="6183" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
diff --git a/modeling/DIPLODOCUS/MODELS_2014demoFinal.xml b/modeling/DIPLODOCUS/MODELS_2014demoFinal.xml
index 795ad10afb6cb91e4d06062648b1bd9b9da83f81..4f846ab5e2b1601f41715ca41ab9f5cbd3aadf03 100644
--- a/modeling/DIPLODOCUS/MODELS_2014demoFinal.xml
+++ b/modeling/DIPLODOCUS/MODELS_2014demoFinal.xml
@@ -14163,7 +14163,7 @@ SRC to CWM1, CWS and SINK
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="10192" >
+<!-- COMPONENT type="1508" id="10192" >
 <cdparam x="668" y="275" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -14173,7 +14173,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="1" id="10189" />
 <TGConnectingPoint num="2" id="10190" />
 <TGConnectingPoint num="3" id="10191" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1507" id="10194" >
 <cdparam x="465" y="594" />
@@ -14206,7 +14206,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="13" id="10208" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="10214" >
+<!-- COMPONENT type="1508" id="10214" >
 <cdparam x="198" y="272" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -14216,7 +14216,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="1" id="10211" />
 <TGConnectingPoint num="2" id="10212" />
 <TGConnectingPoint num="3" id="10213" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1500" id="10230" >
 <cdparam x="198" y="362" />
@@ -14401,7 +14401,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="9" id="10312" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="10318" >
+<!-- CONNECTOR type="1501" id="10318" >
 <cdparam x="801" y="457" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -14443,7 +14443,7 @@ SRC to CWM1, CWS and SINK
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="10320" >
 <cdparam x="723" y="370" />
@@ -14503,7 +14503,7 @@ SRC to CWM1, CWS and SINK
 <P2  x="425" y="550" id="10195" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="10330" >
+<!-- CONNECTOR type="1501" id="10330" >
 <cdparam x="94" y="485" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -14554,7 +14554,7 @@ SRC to CWM1, CWS and SINK
 <P1  x="213" y="302" id="10213" />
 <P2  x="213" y="352" id="10218" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="10333" >
 <cdparam x="173" y="377" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -14613,7 +14613,7 @@ SRC to CWM1, CWS and SINK
 <P2  x="456" y="117" id="10236" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="10339" >
+<!-- CONNECTOR type="1501" id="10339" >
 <cdparam x="209" y="311" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -14636,7 +14636,7 @@ SRC to CWM1, CWS and SINK
 <P1  x="683" y="305" id="10191" />
 <P2  x="683" y="345" id="10175" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
diff --git a/modeling/DIPLODOCUS/MODELS_2014demoTurin.xml b/modeling/DIPLODOCUS/MODELS_2014demoTurin.xml
index 365870870d48d0496ae67dd4c9ec13b48586f8e3..ee1add4c3f7c6aafd962e9d2da26e869c814d6f3 100644
--- a/modeling/DIPLODOCUS/MODELS_2014demoTurin.xml
+++ b/modeling/DIPLODOCUS/MODELS_2014demoTurin.xml
@@ -4346,7 +4346,7 @@ SRC to CWM1, CWS and SINK
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="1266" >
+<!-- COMPONENT type="1508" id="1266" >
 <cdparam x="668" y="275" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -4356,7 +4356,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="1" id="1263" />
 <TGConnectingPoint num="2" id="1264" />
 <TGConnectingPoint num="3" id="1265" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1507" id="1268" >
 <cdparam x="465" y="594" />
@@ -4389,7 +4389,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="13" id="1282" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="1288" >
+<!-- COMPONENT type="1508" id="1288" >
 <cdparam x="198" y="272" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -4399,7 +4399,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="1" id="1285" />
 <TGConnectingPoint num="2" id="1286" />
 <TGConnectingPoint num="3" id="1287" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1500" id="1304" >
 <cdparam x="198" y="362" />
@@ -4584,7 +4584,7 @@ SRC to CWM1, CWS and SINK
 <TGConnectingPoint num="9" id="1386" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="1392" >
+<!-- CONNECTOR type="1501" id="1392" >
 <cdparam x="801" y="457" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -4626,7 +4626,7 @@ SRC to CWM1, CWS and SINK
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1394" >
 <cdparam x="723" y="370" />
@@ -4686,7 +4686,7 @@ SRC to CWM1, CWS and SINK
 <P2  x="425" y="550" id="1269" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1404" >
+<!-- CONNECTOR type="1501" id="1404" >
 <cdparam x="94" y="485" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -4737,7 +4737,7 @@ SRC to CWM1, CWS and SINK
 <P1  x="213" y="302" id="1287" />
 <P2  x="213" y="352" id="1292" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1407" >
 <cdparam x="173" y="377" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -4796,7 +4796,7 @@ SRC to CWM1, CWS and SINK
 <P2  x="456" y="117" id="1310" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1413" >
+<!-- CONNECTOR type="1501" id="1413" >
 <cdparam x="209" y="311" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -4819,7 +4819,7 @@ SRC to CWM1, CWS and SINK
 <P1  x="683" y="305" id="1265" />
 <P2  x="683" y="345" id="1249" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
diff --git a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml
index 238cd6094990c05ca6373c94c38a9215d2ab6242..7e4f3eb6399b3b43b1c8544e71f598371c710005 100644
--- a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml
+++ b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml
@@ -347,16 +347,16 @@
 <cdparam x="535" y="347" />
 <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="556" y="347" id="355" />
-<P2  x="547" y="382" id="402" />
+<P1  x="556" y="321" id="355" />
+<P2  x="534" y="395" id="402" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="189" >
 <cdparam x="820" y="398" />
 <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="1025" y="497" id="249" />
-<P2  x="761" y="574" id="370" />
+<P1  x="1025" y="471" id="249" />
+<P2  x="761" y="548" id="370" />
 <Point x="887" y="577" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="188" >
@@ -373,15 +373,15 @@
 <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="710" y="403" id="372" />
-<P2  x="693" y="347" id="333" />
+<P2  x="693" y="321" id="333" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="191" >
 <cdparam x="522" y="390" />
 <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="521" y="382" id="397" />
-<P2  x="466" y="335" id="236" />
+<P1  x="534" y="369" id="397" />
+<P2  x="453" y="322" id="236" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="192" >
@@ -396,16 +396,16 @@
 <cdparam x="656" y="426" />
 <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="816" y="552" id="376" />
-<P2  x="969" y="495" id="263" />
+<P1  x="805" y="542" id="376" />
+<P2  x="969" y="474" id="263" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="194" >
 <cdparam x="656" y="400" />
 <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="816" y="519" id="378" />
-<P2  x="921" y="476" id="261" />
+<P1  x="805" y="509" id="378" />
+<P2  x="931" y="466" id="261" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="195" >
@@ -413,126 +413,126 @@
 <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="750" y="406" id="386" />
-<P2  x="828" y="375" id="291" />
+<P2  x="841" y="362" id="291" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="196" >
 <cdparam x="689" y="292" />
 <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="854" y="375" id="295" />
-<P2  x="921" y="362" id="271" />
+<P1  x="841" y="388" id="295" />
+<P2  x="931" y="352" id="271" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="197" >
 <cdparam x="656" y="377" />
 <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="816" y="491" id="382" />
-<P2  x="921" y="453" id="269" />
+<P1  x="805" y="481" id="382" />
+<P2  x="931" y="443" id="269" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="198" >
 <cdparam x="656" y="351" />
 <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="816" y="458" id="380" />
-<P2  x="921" y="426" id="267" />
+<P1  x="805" y="448" id="380" />
+<P2  x="931" y="416" id="267" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="199" >
 <cdparam x="741" y="296" />
 <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="921" y="397" id="265" />
-<P2  x="816" y="429" id="384" />
+<P1  x="931" y="387" id="265" />
+<P2  x="805" y="419" id="384" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="200" >
 <cdparam x="735" y="260" />
 <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="918" y="330" id="273" />
-<P2  x="747" y="282" id="345" />
+<P1  x="931" y="317" id="273" />
+<P2  x="734" y="269" id="345" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="201" >
 <cdparam x="641" y="230" />
 <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="747" y="248" id="343" />
-<P2  x="918" y="291" id="275" />
+<P1  x="734" y="235" id="343" />
+<P2  x="931" y="278" id="275" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="202" >
 <cdparam x="641" y="195" />
 <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="747" y="203" id="341" />
-<P2  x="918" y="248" id="277" />
+<P1  x="734" y="190" id="341" />
+<P2  x="931" y="235" id="277" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="203" >
 <cdparam x="740" y="353" />
 <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="828" y="375" id="290" />
-<P2  x="747" y="314" id="339" />
+<P1  x="841" y="362" id="290" />
+<P2  x="734" y="301" id="339" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="204" >
 <cdparam x="460" y="270" />
 <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="521" y="303" id="349" />
-<P2  x="466" y="303" id="230" />
+<P1  x="534" y="290" id="349" />
+<P2  x="453" y="290" id="230" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="205" >
 <cdparam x="387" y="129" />
 <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="464" y="126" id="226" />
-<P2  x="524" y="126" id="337" />
+<P1  x="453" y="116" id="226" />
+<P2  x="534" y="116" id="337" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="206" >
 <cdparam x="389" y="200" />
 <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="466" y="215" id="232" />
-<P2  x="521" y="215" id="351" />
+<P1  x="453" y="202" id="232" />
+<P2  x="534" y="202" id="351" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="207" >
 <cdparam x="460" y="236" />
 <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="521" y="260" id="353" />
-<P2  x="466" y="260" id="234" />
+<P1  x="534" y="247" id="353" />
+<P2  x="453" y="247" id="234" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="208" >
 <cdparam x="389" y="163" />
 <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="466" y="169" id="228" />
-<P2  x="521" y="169" id="347" />
+<P1  x="453" y="156" id="228" />
+<P2  x="534" y="156" id="347" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="209" >
 <cdparam x="967" y="190" />
 <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="Connector between ports" />
-<P1  x="918" y="198" id="279" />
-<P2  x="747" y="124" id="359" />
+<P1  x="931" y="185" id="279" />
+<P2  x="734" y="111" id="359" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="210" >
 <cdparam x="1028" y="535" />
 <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="Connector between ports" />
-<P1  x="630" y="345" id="335" />
+<P1  x="630" y="324" id="335" />
 <P2  x="669" y="406" id="374" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -540,24 +540,24 @@
 <cdparam x="1308" y="303" />
 <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="Connector between ports" />
-<P1  x="1222" y="378" id="313" />
-<P2  x="1178" y="380" id="259" />
+<P1  x="1232" y="368" id="313" />
+<P2  x="1167" y="370" id="259" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="212" >
 <cdparam x="1172" y="437" />
 <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="Connector between ports" />
-<P1  x="1178" y="415" id="257" />
-<P2  x="1222" y="413" id="311" />
+<P1  x="1167" y="405" id="257" />
+<P2  x="1232" y="403" id="311" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="215" >
 <cdparam x="1041" y="162" />
 <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="Connector between ports" />
-<P1  x="1178" y="208" id="255" />
-<P2  x="1178" y="276" id="253" />
+<P1  x="1167" y="198" id="255" />
+<P2  x="1167" y="266" id="253" />
 <Point x="1227" y="207" />
 <Point x="1227" y="247" />
 <AutomaticDrawing  data="true" />
@@ -582,8 +582,8 @@
 <cdparam x="877" y="343" />
 <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="Connector between ports" />
-<P1  x="1178" y="454" id="251" />
-<P2  x="1222" y="441" id="309" />
+<P1  x="1167" y="444" id="251" />
+<P2  x="1232" y="431" id="309" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <COMPONENT type="1205" id="225" >
@@ -690,7 +690,7 @@
 <infoparam name="TGComponent" value="Channel fromDtoSC" />
 <TGConnectingPoint num="0" id="232" />
 <extraparam>
-<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="3" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1392,7 +1392,7 @@
 <infoparam name="TGComponent" value="Channel fromSCtoD" />
 <TGConnectingPoint num="0" id="353" />
 <extraparam>
-<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="3" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -8913,7 +8913,7 @@ On prend b=1 comme exemple
 
 <COMPONENT type="302" id="2711" >
 <cdparam x="517" y="154" />
-<sizeparam width="520" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="565" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Proverif Pragma" value="#PrivatePublicKeys InterfaceDevice privK pubK
diff --git a/modeling/DIPLODOCUS/ZigBeeTutorial.xml b/modeling/DIPLODOCUS/ZigBeeTutorial.xml
index ba2ca48c0ab2e0acce7213fb8039910f21830928..95a32d4a4902d8a4a6d0d4d3e2a76f9e463b7011 100644
--- a/modeling/DIPLODOCUS/ZigBeeTutorial.xml
+++ b/modeling/DIPLODOCUS/ZigBeeTutorial.xml
@@ -6235,7 +6235,7 @@ POLLING
 <TGConnectingPoint num="0" id="2490" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="2496" >
+<!-- COMPONENT type="1508" id="2496" >
 <cdparam x="360" y="163" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6245,7 +6245,7 @@ POLLING
 <TGConnectingPoint num="1" id="2493" />
 <TGConnectingPoint num="2" id="2494" />
 <TGConnectingPoint num="3" id="2495" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="2507" >
 <cdparam x="182" y="332" />
@@ -6299,7 +6299,7 @@ POLLING
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="2516" >
+<!-- CONNECTOR type="1501" id="2516" >
 <cdparam x="244" y="372" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -6309,7 +6309,8 @@ POLLING
 <Point x="136" y="425" />
 <Point x="136" y="178" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2513" >
+</CONNECTOR>
+<SUBCOMPONENT type="-1" id="2513" >
 <father id="2516" num="0" />
 <cdparam x="244" y="425" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -6332,7 +6333,7 @@ POLLING
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="2517" >
 <cdparam x="375" y="314" />
@@ -6342,22 +6343,22 @@ POLLING
 <P2  x="375" y="386" id="2463" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="2518" >
+<!-- CONNECTOR type="1501" id="2518" >
 <cdparam x="375" y="193" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="375" y="193" id="2495" />
 <P2  x="375" y="249" id="2477" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="1501" id="2519" >
+</CONNECTOR-->
+<!-- CONNECTOR type="1501" id="2519" >
 <cdparam x="375" y="115" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="375" y="115" id="2508" />
 <P2  x="375" y="163" id="2492" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -6911,7 +6912,7 @@ POLLING
 <infoparam name="guard 3" value="[ transferTerminated == true ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="2866" >
+<!-- COMPONENT type="1508" id="2866" >
 <cdparam x="279" y="127" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6921,7 +6922,7 @@ POLLING
 <TGConnectingPoint num="1" id="2863" />
 <TGConnectingPoint num="2" id="2864" />
 <TGConnectingPoint num="3" id="2865" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="2877" >
 <cdparam x="101" y="296" />
@@ -6958,7 +6959,7 @@ POLLING
 <P2  x="294" y="337" id="2844" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="2884" >
+<!-- CONNECTOR type="1501" id="2884" >
 <cdparam x="163" y="336" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -6968,7 +6969,8 @@ POLLING
 <Point x="55" y="389" />
 <Point x="55" y="142" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2881" >
+</CONNECTOR>
+<SUBCOMPONENT type="-1" id="2881" >
 <father id="2884" num="0" />
 <cdparam x="163" y="389" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -6991,7 +6993,7 @@ POLLING
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="2886" >
 <cdparam x="254" y="238" />
@@ -7010,22 +7012,22 @@ POLLING
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="2887" >
+<!-- CONNECTOR type="1501" id="2887" >
 <cdparam x="294" y="157" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="294" y="157" id="2865" />
 <P2  x="294" y="213" id="2849" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="1501" id="2888" >
+</CONNECTOR-->
+<!-- CONNECTOR type="1501" id="2888" >
 <cdparam x="294" y="79" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="294" y="79" id="2878" />
 <P2  x="294" y="127" id="2862" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
diff --git a/modeling/DIPLODOCUS/Zigbee.xml b/modeling/DIPLODOCUS/Zigbee.xml
index 88fe2e202264d020644a033ce4d2e3b5512677c0..3077fffb998d8ab9e61e7cac5d28035e5fb9062e 100644
--- a/modeling/DIPLODOCUS/Zigbee.xml
+++ b/modeling/DIPLODOCUS/Zigbee.xml
@@ -4229,7 +4229,7 @@
 <infoparam name="guard 3" value="[ else ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="1323" >
+<!-- COMPONENT type="1508" id="1323" >
 <cdparam x="346" y="190" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -4239,7 +4239,7 @@
 <TGConnectingPoint num="1" id="1320" />
 <TGConnectingPoint num="2" id="1321" />
 <TGConnectingPoint num="3" id="1322" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1334" >
 <cdparam x="305" y="102" />
@@ -4312,7 +4312,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1355" >
+<!-- CONNECTOR type="1501" id="1355" >
 <cdparam x="256" y="376" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -4345,7 +4345,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1356" >
 <cdparam x="361" y="325" />
@@ -4363,7 +4363,7 @@
 <P2  x="361" y="97" id="1324" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1358" >
+<!-- CONNECTOR type="1501" id="1358" >
 <cdparam x="361" y="142" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -4378,7 +4378,7 @@
 <P1  x="361" y="220" id="1322" />
 <P2  x="361" y="260" id="1306" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -4927,7 +4927,7 @@ CPU via interrupts (no polling messages)
 <TGConnectingPoint num="9" id="1718" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="1724" >
+<!-- COMPONENT type="1508" id="1724" >
 <cdparam x="278" y="185" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -4937,7 +4937,7 @@ CPU via interrupts (no polling messages)
 <TGConnectingPoint num="1" id="1721" />
 <TGConnectingPoint num="2" id="1722" />
 <TGConnectingPoint num="3" id="1723" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1735" >
 <cdparam x="371" y="342" />
@@ -5036,7 +5036,7 @@ CPU via interrupts (no polling messages)
 <P2  x="427" y="412" id="1707" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1769" >
+<!-- CONNECTOR type="1501" id="1769" >
 <cdparam x="186" y="388" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -5069,7 +5069,7 @@ CPU via interrupts (no polling messages)
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1771" >
 <cdparam x="253" y="302" />
@@ -5105,7 +5105,7 @@ CPU via interrupts (no polling messages)
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1774" >
+<!-- CONNECTOR type="1501" id="1774" >
 <cdparam x="293" y="133" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -5120,7 +5120,7 @@ CPU via interrupts (no polling messages)
 <P1  x="293" y="215" id="1723" />
 <P2  x="293" y="277" id="1739" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1776" >
 <cdparam x="291" y="25" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -6148,7 +6148,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="2409" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="2415" >
+<!-- COMPONENT type="1508" id="2415" >
 <cdparam x="250" y="191" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6158,7 +6158,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="2412" />
 <TGConnectingPoint num="2" id="2413" />
 <TGConnectingPoint num="3" id="2414" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="2426" >
 <cdparam x="337" y="348" />
@@ -6239,7 +6239,7 @@ INTERRUPTS
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="2447" >
+<!-- CONNECTOR type="1501" id="2447" >
 <cdparam x="158" y="394" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -6272,7 +6272,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="2448" >
 <cdparam x="399" y="388" />
@@ -6282,7 +6282,7 @@ INTERRUPTS
 <P2  x="399" y="418" id="2398" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="2449" >
+<!-- CONNECTOR type="1501" id="2449" >
 <cdparam x="265" y="139" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -6297,7 +6297,7 @@ INTERRUPTS
 <P1  x="265" y="221" id="2414" />
 <P2  x="265" y="283" id="2385" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="2451" >
 <cdparam x="263" y="31" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -6381,7 +6381,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="2479" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="2485" >
+<!-- COMPONENT type="1508" id="2485" >
 <cdparam x="225" y="195" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6391,7 +6391,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="2482" />
 <TGConnectingPoint num="2" id="2483" />
 <TGConnectingPoint num="3" id="2484" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="2496" >
 <cdparam x="312" y="352" />
@@ -6438,7 +6438,7 @@ INTERRUPTS
 <TGConnectingPoint num="0" id="2508" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="2513" >
+<!-- CONNECTOR type="1501" id="2513" >
 <cdparam x="133" y="398" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -6471,7 +6471,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="2515" >
 <cdparam x="200" y="312" />
@@ -6515,7 +6515,7 @@ INTERRUPTS
 <P2  x="374" y="422" id="2468" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="2519" >
+<!-- CONNECTOR type="1501" id="2519" >
 <cdparam x="240" y="143" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -6530,7 +6530,7 @@ INTERRUPTS
 <P1  x="240" y="225" id="2484" />
 <P2  x="240" y="287" id="2455" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="2521" >
 <cdparam x="238" y="35" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
diff --git a/modeling/DIPLODOCUS/ZigbeeCommunications.xml b/modeling/DIPLODOCUS/ZigbeeCommunications.xml
index 177315434b2dcc59794a67f95d577ffe3b9fab7d..3812a1b97161e1d86614067e1527b6cfe349d7d1 100644
--- a/modeling/DIPLODOCUS/ZigbeeCommunications.xml
+++ b/modeling/DIPLODOCUS/ZigbeeCommunications.xml
@@ -61,7 +61,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="21" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="27" >
+<!-- COMPONENT type="1508" id="27" >
 <cdparam x="237" y="197" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -71,7 +71,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="24" />
 <TGConnectingPoint num="2" id="25" />
 <TGConnectingPoint num="3" id="26" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="38" >
 <cdparam x="324" y="354" />
@@ -170,7 +170,7 @@ INTERRUPTS
 <P2  x="386" y="424" id="10" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="72" >
+<!-- CONNECTOR type="1501" id="72" >
 <cdparam x="145" y="400" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -203,7 +203,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="74" >
 <cdparam x="212" y="314" />
@@ -247,7 +247,7 @@ INTERRUPTS
 <P2  x="252" y="100" id="55" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="78" >
+<!-- CONNECTOR type="1501" id="78" >
 <cdparam x="252" y="145" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -262,7 +262,7 @@ INTERRUPTS
 <P1  x="252" y="227" id="26" />
 <P2  x="252" y="289" id="42" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -1672,7 +1672,7 @@ POLLING
 <TGConnectingPoint num="0" id="947" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="953" >
+<!-- COMPONENT type="1508" id="953" >
 <cdparam x="360" y="163" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -1682,7 +1682,7 @@ POLLING
 <TGConnectingPoint num="1" id="950" />
 <TGConnectingPoint num="2" id="951" />
 <TGConnectingPoint num="3" id="952" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="964" >
 <cdparam x="182" y="332" />
@@ -1736,7 +1736,7 @@ POLLING
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="973" >
+<!-- CONNECTOR type="1501" id="973" >
 <cdparam x="244" y="372" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -1769,7 +1769,7 @@ POLLING
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="974" >
 <cdparam x="375" y="314" />
@@ -1779,7 +1779,7 @@ POLLING
 <P2  x="375" y="386" id="920" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="975" >
+<!-- CONNECTOR type="1501" id="975" >
 <cdparam x="375" y="193" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -1794,7 +1794,7 @@ POLLING
 <P1  x="375" y="115" id="965" />
 <P2  x="375" y="163" id="949" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -2340,7 +2340,7 @@ POLLING
 <infoparam name="guard 3" value="[ transferTerminated == true ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="1323" >
+<!-- COMPONENT type="1508" id="1323" >
 <cdparam x="279" y="127" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2350,7 +2350,7 @@ POLLING
 <TGConnectingPoint num="1" id="1320" />
 <TGConnectingPoint num="2" id="1321" />
 <TGConnectingPoint num="3" id="1322" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1334" >
 <cdparam x="101" y="296" />
@@ -2387,7 +2387,7 @@ POLLING
 <P2  x="294" y="337" id="1301" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1341" >
+<!-- CONNECTOR type="1501" id="1341" >
 <cdparam x="163" y="336" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -2420,7 +2420,7 @@ POLLING
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1343" >
 <cdparam x="254" y="238" />
@@ -2439,7 +2439,7 @@ POLLING
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1344" >
+<!-- CONNECTOR type="1501" id="1344" >
 <cdparam x="294" y="157" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -2454,7 +2454,7 @@ POLLING
 <P1  x="294" y="79" id="1335" />
 <P2  x="294" y="127" id="1319" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -2734,7 +2734,7 @@ POLLING
 
 <Modeling type="TML CP" nameTab="Load_CPU" >
 <CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="1501" id="3903" >
+<!-- CONNECTOR type="1501" id="3903" >
 <cdparam x="212" y="387" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -2767,7 +2767,7 @@ POLLING
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="3901" >
 <cdparam x="277" y="296" />
@@ -2838,7 +2838,7 @@ POLLING
 <infoparam name="guard 3" value="[ else ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="3877" >
+<!-- COMPONENT type="1508" id="3877" >
 <cdparam x="302" y="201" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2848,7 +2848,7 @@ POLLING
 <TGConnectingPoint num="1" id="3879" />
 <TGConnectingPoint num="2" id="3880" />
 <TGConnectingPoint num="3" id="3881" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="3866" >
 <cdparam x="255" y="113" />
@@ -2936,7 +2936,7 @@ POLLING
 <P2  x="317" y="108" id="3867" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="3882" >
+<!-- CONNECTOR type="1501" id="3882" >
 <cdparam x="317" y="153" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -2951,7 +2951,7 @@ POLLING
 <P1  x="317" y="231" id="3881" />
 <P2  x="317" y="271" id="3884" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -3341,7 +3341,7 @@ POLLING
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="5618" >
+<!-- CONNECTOR type="1501" id="5618" >
 <cdparam x="275" y="449" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -3374,7 +3374,7 @@ POLLING
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <COMPONENT type="301" id="1697" >
 <cdparam x="536" y="48" />
@@ -3418,7 +3418,7 @@ POLLING
 <TGConnectingPoint num="9" id="1709" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="5592" >
+<!-- COMPONENT type="1508" id="5592" >
 <cdparam x="365" y="263" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -3428,7 +3428,7 @@ POLLING
 <TGConnectingPoint num="1" id="5594" />
 <TGConnectingPoint num="2" id="5595" />
 <TGConnectingPoint num="3" id="5596" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="5581" >
 <cdparam x="318" y="175" />
@@ -3482,7 +3482,7 @@ POLLING
 <P2  x="380" y="170" id="5582" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="5597" >
+<!-- CONNECTOR type="1501" id="5597" >
 <cdparam x="380" y="215" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -3497,7 +3497,7 @@ POLLING
 <P1  x="380" y="293" id="5596" />
 <P2  x="380" y="333" id="5599" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -3847,7 +3847,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="1887" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="1893" >
+<!-- COMPONENT type="1508" id="1893" >
 <cdparam x="237" y="197" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -3857,7 +3857,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="1890" />
 <TGConnectingPoint num="2" id="1891" />
 <TGConnectingPoint num="3" id="1892" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1904" >
 <cdparam x="324" y="354" />
@@ -3956,7 +3956,7 @@ INTERRUPTS
 <P2  x="386" y="424" id="1876" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1938" >
+<!-- CONNECTOR type="1501" id="1938" >
 <cdparam x="145" y="400" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -3989,7 +3989,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1940" >
 <cdparam x="212" y="314" />
@@ -4033,7 +4033,7 @@ INTERRUPTS
 <P2  x="252" y="100" id="1921" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1944" >
+<!-- CONNECTOR type="1501" id="1944" >
 <cdparam x="252" y="145" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -4048,7 +4048,7 @@ INTERRUPTS
 <P1  x="252" y="227" id="1892" />
 <P2  x="252" y="289" id="1908" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -4975,7 +4975,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="2553" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="2559" >
+<!-- COMPONENT type="1508" id="2559" >
 <cdparam x="237" y="197" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -4985,7 +4985,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="2556" />
 <TGConnectingPoint num="2" id="2557" />
 <TGConnectingPoint num="3" id="2558" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="2570" >
 <cdparam x="324" y="354" />
@@ -5084,7 +5084,7 @@ INTERRUPTS
 <P2  x="386" y="424" id="2542" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="2604" >
+<!-- CONNECTOR type="1501" id="2604" >
 <cdparam x="145" y="400" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -5117,7 +5117,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="2606" >
 <cdparam x="212" y="314" />
@@ -5161,7 +5161,7 @@ INTERRUPTS
 <P2  x="252" y="100" id="2587" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="2610" >
+<!-- CONNECTOR type="1501" id="2610" >
 <cdparam x="252" y="145" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -5176,7 +5176,7 @@ INTERRUPTS
 <P1  x="252" y="227" id="2558" />
 <P2  x="252" y="289" id="2574" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -6103,7 +6103,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="3219" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="3225" >
+<!-- COMPONENT type="1508" id="3225" >
 <cdparam x="237" y="197" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6113,7 +6113,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="3222" />
 <TGConnectingPoint num="2" id="3223" />
 <TGConnectingPoint num="3" id="3224" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="3236" >
 <cdparam x="324" y="354" />
@@ -6212,7 +6212,7 @@ INTERRUPTS
 <P2  x="386" y="424" id="3208" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="3270" >
+<!-- CONNECTOR type="1501" id="3270" >
 <cdparam x="145" y="400" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -6245,7 +6245,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="3272" >
 <cdparam x="212" y="314" />
@@ -6289,7 +6289,7 @@ INTERRUPTS
 <P2  x="252" y="100" id="3253" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="3276" >
+<!-- CONNECTOR type="1501" id="3276" >
 <cdparam x="252" y="145" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -6304,7 +6304,7 @@ INTERRUPTS
 <P1  x="252" y="227" id="3224" />
 <P2  x="252" y="289" id="3240" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
diff --git a/modeling/DIPLODOCUS/Zigbee_Andrea.xml b/modeling/DIPLODOCUS/Zigbee_Andrea.xml
index f7134753e75e2b83859356a80847590d66ce26db..e43a72c5a7d0bc2b15296aaea443cf12bafc5add 100644
--- a/modeling/DIPLODOCUS/Zigbee_Andrea.xml
+++ b/modeling/DIPLODOCUS/Zigbee_Andrea.xml
@@ -22104,7 +22104,7 @@ input components per cycle
 <TGConnectingPoint num="9" id="7576" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="7582" >
+<!-- COMPONENT type="1508" id="7582" >
 <cdparam x="343" y="202" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -22114,7 +22114,7 @@ input components per cycle
 <TGConnectingPoint num="1" id="7579" />
 <TGConnectingPoint num="2" id="7580" />
 <TGConnectingPoint num="3" id="7581" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="7593" >
 <cdparam x="296" y="114" />
@@ -22152,7 +22152,7 @@ input components per cycle
 <TGConnectingPoint num="0" id="7596" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="7601" >
+<!-- CONNECTOR type="1501" id="7601" >
 <cdparam x="253" y="388" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -22185,7 +22185,7 @@ input components per cycle
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="7603" >
 <cdparam x="318" y="297" />
@@ -22220,7 +22220,7 @@ input components per cycle
 <P2  x="358" y="109" id="7583" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="7606" >
+<!-- CONNECTOR type="1501" id="7606" >
 <cdparam x="358" y="154" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -22235,7 +22235,7 @@ input components per cycle
 <P1  x="358" y="232" id="7581" />
 <P2  x="358" y="272" id="7554" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -22622,7 +22622,7 @@ input components per cycle
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1508" id="7856" >
+<!-- COMPONENT type="1508" id="7856" >
 <cdparam x="346" y="190" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -22632,7 +22632,7 @@ input components per cycle
 <TGConnectingPoint num="1" id="7853" />
 <TGConnectingPoint num="2" id="7854" />
 <TGConnectingPoint num="3" id="7855" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="7867" >
 <cdparam x="299" y="102" />
@@ -22705,7 +22705,7 @@ input components per cycle
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="7888" >
+<!-- CONNECTOR type="1501" id="7888" >
 <cdparam x="256" y="376" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -22738,7 +22738,7 @@ input components per cycle
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="7889" >
 <cdparam x="361" y="325" />
@@ -22756,7 +22756,7 @@ input components per cycle
 <P2  x="361" y="97" id="7857" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="7891" >
+<!-- CONNECTOR type="1501" id="7891" >
 <cdparam x="361" y="142" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -22771,7 +22771,7 @@ input components per cycle
 <P1  x="361" y="220" id="7855" />
 <P2  x="361" y="260" id="7822" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -23247,7 +23247,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="8167" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="8173" >
+<!-- COMPONENT type="1508" id="8173" >
 <cdparam x="281" y="543" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -23257,7 +23257,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="8170" />
 <TGConnectingPoint num="2" id="8171" />
 <TGConnectingPoint num="3" id="8172" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="8184" >
 <cdparam x="368" y="700" />
@@ -23357,7 +23357,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="8221" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="8227" >
+<!-- COMPONENT type="1508" id="8227" >
 <cdparam x="281" y="183" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -23367,7 +23367,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="8224" />
 <TGConnectingPoint num="2" id="8225" />
 <TGConnectingPoint num="3" id="8226" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="8238" >
 <cdparam x="234" y="95" />
@@ -23413,7 +23413,7 @@ INTERRUPTS
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="8246" >
+<!-- CONNECTOR type="1501" id="8246" >
 <cdparam x="191" y="369" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -23446,7 +23446,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="8247" >
 <cdparam x="430" y="740" />
@@ -23456,7 +23456,7 @@ INTERRUPTS
 <P2  x="430" y="770" id="8156" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="8251" >
+<!-- CONNECTOR type="1501" id="8251" >
 <cdparam x="189" y="746" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -23489,7 +23489,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="8253" >
 <cdparam x="256" y="660" />
@@ -23525,7 +23525,7 @@ INTERRUPTS
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="8256" >
+<!-- CONNECTOR type="1501" id="8256" >
 <cdparam x="296" y="491" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -23540,7 +23540,7 @@ INTERRUPTS
 <P1  x="296" y="573" id="8172" />
 <P2  x="296" y="635" id="8188" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="8258" >
 <cdparam x="296" y="318" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -23557,7 +23557,7 @@ INTERRUPTS
 <P2  x="296" y="90" id="8228" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="8260" >
+<!-- CONNECTOR type="1501" id="8260" >
 <cdparam x="296" y="135" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -23572,7 +23572,7 @@ INTERRUPTS
 <P1  x="296" y="213" id="8226" />
 <P2  x="296" y="253" id="8109" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -24871,7 +24871,7 @@ sequence diagram.
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1508" id="9105" >
+<!-- COMPONENT type="1508" id="9105" >
 <cdparam x="340" y="217" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -24881,7 +24881,7 @@ sequence diagram.
 <TGConnectingPoint num="1" id="9102" />
 <TGConnectingPoint num="2" id="9103" />
 <TGConnectingPoint num="3" id="9104" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="9116" >
 <cdparam x="293" y="129" />
@@ -24937,7 +24937,7 @@ sequence diagram.
 <TGConnectingPoint num="0" id="9130" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="9135" >
+<!-- CONNECTOR type="1501" id="9135" >
 <cdparam x="250" y="403" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -24970,7 +24970,7 @@ sequence diagram.
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="9137" >
 <cdparam x="315" y="312" />
@@ -25005,7 +25005,7 @@ sequence diagram.
 <P2  x="355" y="124" id="9106" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="9140" >
+<!-- CONNECTOR type="1501" id="9140" >
 <cdparam x="355" y="169" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -25020,7 +25020,7 @@ sequence diagram.
 <P1  x="355" y="247" id="9104" />
 <P2  x="355" y="287" id="9071" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -25540,7 +25540,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="9432" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="9438" >
+<!-- COMPONENT type="1508" id="9438" >
 <cdparam x="329" y="553" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -25550,7 +25550,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="9435" />
 <TGConnectingPoint num="2" id="9436" />
 <TGConnectingPoint num="3" id="9437" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="9449" >
 <cdparam x="416" y="710" />
@@ -25606,7 +25606,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="9470" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="9476" >
+<!-- COMPONENT type="1508" id="9476" >
 <cdparam x="329" y="193" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -25616,7 +25616,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="9473" />
 <TGConnectingPoint num="2" id="9474" />
 <TGConnectingPoint num="3" id="9475" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="9487" >
 <cdparam x="282" y="105" />
@@ -25679,7 +25679,7 @@ INTERRUPTS
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="9497" >
+<!-- CONNECTOR type="1501" id="9497" >
 <cdparam x="237" y="756" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -25747,7 +25747,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="9503" >
 <cdparam x="304" y="288" />
@@ -25774,7 +25774,7 @@ INTERRUPTS
 <P2  x="478" y="780" id="9421" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="9505" >
+<!-- CONNECTOR type="1501" id="9505" >
 <cdparam x="344" y="501" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -25789,7 +25789,7 @@ INTERRUPTS
 <P1  x="344" y="583" id="9437" />
 <P2  x="344" y="645" id="9358" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="9507" >
 <cdparam x="344" y="328" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -25806,7 +25806,7 @@ INTERRUPTS
 <P2  x="344" y="100" id="9477" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="9509" >
+<!-- CONNECTOR type="1501" id="9509" >
 <cdparam x="344" y="145" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -25821,7 +25821,7 @@ INTERRUPTS
 <P1  x="344" y="223" id="9475" />
 <P2  x="344" y="263" id="9374" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -27120,7 +27120,7 @@ sequence diagram.
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1508" id="10354" >
+<!-- COMPONENT type="1508" id="10354" >
 <cdparam x="351" y="210" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -27130,7 +27130,7 @@ sequence diagram.
 <TGConnectingPoint num="1" id="10351" />
 <TGConnectingPoint num="2" id="10352" />
 <TGConnectingPoint num="3" id="10353" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="10365" >
 <cdparam x="304" y="122" />
@@ -27186,7 +27186,7 @@ sequence diagram.
 <TGConnectingPoint num="0" id="10379" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="10384" >
+<!-- CONNECTOR type="1501" id="10384" >
 <cdparam x="261" y="396" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -27219,7 +27219,7 @@ sequence diagram.
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="10386" >
 <cdparam x="326" y="305" />
@@ -27254,7 +27254,7 @@ sequence diagram.
 <P2  x="366" y="117" id="10355" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="10389" >
+<!-- CONNECTOR type="1501" id="10389" >
 <cdparam x="366" y="162" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -27269,7 +27269,7 @@ sequence diagram.
 <P1  x="366" y="240" id="10353" />
 <P2  x="366" y="280" id="10320" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -27696,7 +27696,7 @@ sequence diagram.
 <TGConnectingPoint num="9" id="10646" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="10652" >
+<!-- COMPONENT type="1508" id="10652" >
 <cdparam x="262" y="196" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -27706,7 +27706,7 @@ sequence diagram.
 <TGConnectingPoint num="1" id="10649" />
 <TGConnectingPoint num="2" id="10650" />
 <TGConnectingPoint num="3" id="10651" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="10663" >
 <cdparam x="215" y="108" />
@@ -27761,7 +27761,7 @@ sequence diagram.
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="10673" >
+<!-- CONNECTOR type="1501" id="10673" >
 <cdparam x="172" y="382" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -27794,7 +27794,7 @@ sequence diagram.
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="10674" >
 <cdparam x="277" y="331" />
@@ -27812,7 +27812,7 @@ sequence diagram.
 <P2  x="277" y="103" id="10653" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="10676" >
+<!--  CONNECTOR type="1501" id="10676" >
 <cdparam x="277" y="148" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -27827,7 +27827,7 @@ sequence diagram.
 <P1  x="277" y="226" id="10651" />
 <P2  x="277" y="266" id="10607" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -28214,7 +28214,7 @@ sequence diagram.
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1508" id="10926" >
+<!-- COMPONENT type="1508" id="10926" >
 <cdparam x="260" y="183" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -28224,7 +28224,7 @@ sequence diagram.
 <TGConnectingPoint num="1" id="10923" />
 <TGConnectingPoint num="2" id="10924" />
 <TGConnectingPoint num="3" id="10925" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="10937" >
 <cdparam x="213" y="95" />
@@ -28280,7 +28280,7 @@ sequence diagram.
 <TGConnectingPoint num="0" id="10951" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="10956" >
+<!-- CONNECTOR type="1501" id="10956" >
 <cdparam x="170" y="369" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -28313,7 +28313,7 @@ sequence diagram.
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="10958" >
 <cdparam x="235" y="278" />
@@ -28348,7 +28348,7 @@ sequence diagram.
 <P2  x="275" y="90" id="10927" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="10961" >
+<!-- CONNECTOR type="1501" id="10961" >
 <cdparam x="275" y="135" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -28363,7 +28363,7 @@ sequence diagram.
 <P1  x="275" y="213" id="10925" />
 <P2  x="275" y="253" id="10892" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -28772,7 +28772,7 @@ sequence diagram.
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1508" id="11213" >
+<!-- COMPONENT type="1508" id="11213" >
 <cdparam x="405" y="249" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -28782,7 +28782,7 @@ sequence diagram.
 <TGConnectingPoint num="1" id="11210" />
 <TGConnectingPoint num="2" id="11211" />
 <TGConnectingPoint num="3" id="11212" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="11224" >
 <cdparam x="358" y="161" />
@@ -28838,7 +28838,7 @@ sequence diagram.
 <TGConnectingPoint num="0" id="11238" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="11243" >
+<!-- CONNECTOR type="1501" id="11243" >
 <cdparam x="315" y="435" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -28871,7 +28871,7 @@ sequence diagram.
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="11245" >
 <cdparam x="380" y="344" />
@@ -28906,7 +28906,7 @@ sequence diagram.
 <P2  x="420" y="156" id="11214" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="11248" >
+<!-- CONNECTOR type="1501" id="11248" >
 <cdparam x="420" y="201" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -28921,7 +28921,7 @@ sequence diagram.
 <P1  x="420" y="279" id="11212" />
 <P2  x="420" y="319" id="11179" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -29348,7 +29348,7 @@ sequence diagram.
 <TGConnectingPoint num="9" id="11505" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="11511" >
+<!-- COMPONENT type="1508" id="11511" >
 <cdparam x="260" y="198" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -29358,7 +29358,7 @@ sequence diagram.
 <TGConnectingPoint num="1" id="11508" />
 <TGConnectingPoint num="2" id="11509" />
 <TGConnectingPoint num="3" id="11510" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="11522" >
 <cdparam x="213" y="110" />
@@ -29413,7 +29413,7 @@ sequence diagram.
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="11532" >
+<!-- CONNECTOR type="1501" id="11532" >
 <cdparam x="170" y="384" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -29446,7 +29446,7 @@ sequence diagram.
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="11533" >
 <cdparam x="275" y="333" />
@@ -29464,7 +29464,7 @@ sequence diagram.
 <P2  x="275" y="105" id="11512" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="11535" >
+<!-- CONNECTOR type="1501" id="11535" >
 <cdparam x="275" y="150" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -29479,7 +29479,7 @@ sequence diagram.
 <P1  x="275" y="228" id="11510" />
 <P2  x="275" y="268" id="11466" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -29884,7 +29884,7 @@ sequence diagram.
 <TGConnectingPoint num="9" id="11790" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="11796" >
+<!-- COMPONENT type="1508" id="11796" >
 <cdparam x="267" y="201" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -29894,7 +29894,7 @@ sequence diagram.
 <TGConnectingPoint num="1" id="11793" />
 <TGConnectingPoint num="2" id="11794" />
 <TGConnectingPoint num="3" id="11795" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="11807" >
 <cdparam x="220" y="113" />
@@ -29949,7 +29949,7 @@ sequence diagram.
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="11817" >
+<!-- CONNECTOR type="1501" id="11817" >
 <cdparam x="177" y="387" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -29982,7 +29982,7 @@ sequence diagram.
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="11818" >
 <cdparam x="282" y="336" />
@@ -30000,7 +30000,7 @@ sequence diagram.
 <P2  x="282" y="108" id="11797" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="11820" >
+<!-- CONNECTOR type="1501" id="11820" >
 <cdparam x="282" y="153" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -30015,7 +30015,7 @@ sequence diagram.
 <P1  x="282" y="231" id="11795" />
 <P2  x="282" y="271" id="11751" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -30515,7 +30515,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="12110" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="12116" >
+<!-- COMPONENT type="1508" id="12116" >
 <cdparam x="319" y="222" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -30525,7 +30525,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="12113" />
 <TGConnectingPoint num="2" id="12114" />
 <TGConnectingPoint num="3" id="12115" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="12127" >
 <cdparam x="406" y="379" />
@@ -30563,7 +30563,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="12137" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="12143" >
+<!-- COMPONENT type="1508" id="12143" >
 <cdparam x="453" y="543" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -30573,7 +30573,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="12140" />
 <TGConnectingPoint num="2" id="12141" />
 <TGConnectingPoint num="3" id="12142" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="12154" >
 <cdparam x="406" y="459" />
@@ -30620,7 +30620,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="12166" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="12171" >
+<!-- CONNECTOR type="1501" id="12171" >
 <cdparam x="363" y="729" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -30653,7 +30653,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="12173" >
 <cdparam x="428" y="638" />
@@ -30672,7 +30672,7 @@ INTERRUPTS
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="12177" >
+<!-- CONNECTOR type="1501" id="12177" >
 <cdparam x="227" y="425" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -30705,7 +30705,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="12179" >
 <cdparam x="294" y="339" />
@@ -30749,7 +30749,7 @@ INTERRUPTS
 <P2  x="468" y="454" id="12144" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="12183" >
+<!-- CONNECTOR type="1501" id="12183" >
 <cdparam x="334" y="170" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -30764,7 +30764,7 @@ INTERRUPTS
 <P1  x="334" y="252" id="12115" />
 <P2  x="334" y="314" id="12052" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="12185" >
 <cdparam x="343" y="93" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -30781,7 +30781,7 @@ INTERRUPTS
 <P2  x="468" y="771" id="12155" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="12187" >
+<!-- CONNECTOR type="1501" id="12187" >
 <cdparam x="552" y="464" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -30796,7 +30796,7 @@ INTERRUPTS
 <P1  x="468" y="573" id="12142" />
 <P2  x="468" y="613" id="12036" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -32277,7 +32277,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="13092" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="13098" >
+<!-- COMPONENT type="1508" id="13098" >
 <cdparam x="272" y="204" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -32287,7 +32287,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="13095" />
 <TGConnectingPoint num="2" id="13096" />
 <TGConnectingPoint num="3" id="13097" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="13109" >
 <cdparam x="225" y="116" />
@@ -32342,7 +32342,7 @@ INTERRUPTS
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="13119" >
+<!-- CONNECTOR type="1501" id="13119" >
 <cdparam x="182" y="390" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -32375,7 +32375,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="13120" >
 <cdparam x="287" y="339" />
@@ -32393,7 +32393,7 @@ INTERRUPTS
 <P2  x="287" y="111" id="13099" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="13122" >
+<!-- CONNECTOR type="1501" id="13122" >
 <cdparam x="287" y="156" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -32408,7 +32408,7 @@ INTERRUPTS
 <P1  x="287" y="234" id="13097" />
 <P2  x="287" y="274" id="13070" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -32779,7 +32779,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="13360" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="13366" >
+<!-- COMPONENT type="1508" id="13366" >
 <cdparam x="268" y="197" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -32789,7 +32789,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="13363" />
 <TGConnectingPoint num="2" id="13364" />
 <TGConnectingPoint num="3" id="13365" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="13377" >
 <cdparam x="221" y="109" />
@@ -32844,7 +32844,7 @@ INTERRUPTS
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="13387" >
+<!-- CONNECTOR type="1501" id="13387" >
 <cdparam x="178" y="383" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -32877,7 +32877,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="13388" >
 <cdparam x="283" y="332" />
@@ -32895,7 +32895,7 @@ INTERRUPTS
 <P2  x="283" y="104" id="13367" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="13390" >
+<!-- CONNECTOR type="1501" id="13390" >
 <cdparam x="283" y="149" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -32910,7 +32910,7 @@ INTERRUPTS
 <P1  x="283" y="227" id="13365" />
 <P2  x="283" y="267" id="13338" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -33263,7 +33263,7 @@ INTERRUPTS
 <infoparam name="guard 3" value="[ else ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="13623" >
+<!-- COMPONENT type="1508" id="13623" >
 <cdparam x="260" y="185" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -33273,7 +33273,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="13620" />
 <TGConnectingPoint num="2" id="13621" />
 <TGConnectingPoint num="3" id="13622" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="13634" >
 <cdparam x="213" y="97" />
@@ -33329,7 +33329,7 @@ INTERRUPTS
 <TGConnectingPoint num="0" id="13648" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="13653" >
+<!-- CONNECTOR type="1501" id="13653" >
 <cdparam x="170" y="371" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -33362,7 +33362,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="13655" >
 <cdparam x="235" y="280" />
@@ -33397,7 +33397,7 @@ INTERRUPTS
 <P2  x="275" y="92" id="13624" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="13658" >
+<!-- CONNECTOR type="1501" id="13658" >
 <cdparam x="275" y="137" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -33412,7 +33412,7 @@ INTERRUPTS
 <P1  x="275" y="215" id="13622" />
 <P2  x="275" y="255" id="13606" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
@@ -33823,7 +33823,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="13902" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="13908" >
+<!-- COMPONENT type="1508" id="13908" >
 <cdparam x="272" y="176" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -33833,7 +33833,7 @@ INTERRUPTS
 <TGConnectingPoint num="1" id="13905" />
 <TGConnectingPoint num="2" id="13906" />
 <TGConnectingPoint num="3" id="13907" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="13919" >
 <cdparam x="359" y="333" />
@@ -33871,7 +33871,7 @@ INTERRUPTS
 <TGConnectingPoint num="9" id="13929" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="13934" >
+<!-- CONNECTOR type="1501" id="13934" >
 <cdparam x="180" y="379" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -33904,7 +33904,7 @@ INTERRUPTS
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="13936" >
 <cdparam x="247" y="293" />
@@ -33948,7 +33948,7 @@ INTERRUPTS
 <P2  x="421" y="403" id="13891" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="13940" >
+<!-- CONNECTOR type="1501" id="13940" >
 <cdparam x="287" y="124" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -33963,7 +33963,7 @@ INTERRUPTS
 <P1  x="287" y="206" id="13907" />
 <P2  x="287" y="268" id="13876" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="13942" >
 <cdparam x="296" y="47" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
diff --git a/modeling/POTS_front_end.xml b/modeling/POTS_front_end.xml
new file mode 100644
index 0000000000000000000000000000000000000000..142dd719f8adeeca82453b74a4b27d5984b75286
--- /dev/null
+++ b/modeling/POTS_front_end.xml
@@ -0,0 +1,1726 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<TURTLEGMODELING version="1.0beta">
+
+<Modeling type="ELN" nameTab="ELN" >
+<ELNDiagramPanel name="ELN Diagram" minX="10" maxX="2000" minY="10" maxY="1200" attributes="0" zoom="0.8000000000000007" >
+<CONNECTOR type="1610" id="1" >
+<cdparam x="1017" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1017" y="290" id="352" />
+<P2  x="1035" y="290" id="449" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="2" >
+<cdparam x="1012" y="680" />
+<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="680" id="406" />
+<P2  x="1035" y="680" id="460" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="3" >
+<cdparam x="499" y="536" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="wring" />
+<P1  x="500" y="535" id="122" />
+<P2  x="500" y="505" id="133" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="4" >
+<cdparam x="350" y="430" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="w1" />
+<P1  x="437" y="537" id="167" />
+<P2  x="437" y="516" id="5" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="7" >
+<cdparam x="309" y="414" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="w1" />
+<P1  x="386" y="518" id="189" />
+<P2  x="450" y="519" id="179" />
+<Point x="439" y="518" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="6" >
+<father id="7" num="0" />
+<cdparam x="439" y="518" />
+<sizeparam width="6" height="6" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="6" maxX="1025" minY="6" maxY="615" />
+<infoparam name="point " value="null" />
+<TGConnectingPoint num="0" id="5" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="12" >
+<cdparam x="353" y="376" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="420" y="342" id="213" />
+<P2  x="327" y="337" id="14" />
+<Point x="420" y="388" type="-1" />
+<Point x="327" y="388" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="9" >
+<father id="12" num="0" />
+<cdparam x="420" y="388" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="8" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="11" >
+<father id="12" num="1" />
+<cdparam x="327" y="388" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="10" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="13" >
+<cdparam x="160" y="375" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="hook" />
+<P1  x="266" y="338" id="636" />
+<P2  x="307" y="338" id="236" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="16" >
+<cdparam x="231" y="374" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="323" y="338" id="235" />
+<P2  x="330" y="338" id="225" />
+<Point x="327" y="337" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="15" >
+<father id="16" num="0" />
+<cdparam x="327" y="337" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="14" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="17" >
+<cdparam x="160" y="797" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="voice" />
+<P1  x="266" y="680" id="101" />
+<P2  x="307" y="680" id="112" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="18" >
+<cdparam x="199" y="797" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="voice" />
+<P1  x="323" y="680" id="111" />
+<P2  x="357" y="680" id="157" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="19" >
+<cdparam x="484" y="797" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="523" y="677" id="144" />
+<P2  x="500" y="677" id="22" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="24" >
+<cdparam x="319" 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="437" y="716" id="156" />
+<P2  x="500" y="614" id="123" />
+<Point x="500" y="716" type="-1" />
+<Point x="500" y="677" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="21" >
+<father id="24" num="0" />
+<cdparam x="500" y="716" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="20" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="23" >
+<father id="24" num="1" />
+<cdparam x="500" y="677" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="22" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="25" >
+<cdparam x="453" y="420" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="w_onhook" />
+<P1  x="500" y="378" id="212" />
+<P2  x="500" y="427" id="134" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="26" >
+<cdparam x="494" y="793" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="531" y="677" id="145" />
+<P2  x="574" y="677" id="300" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="27" >
+<cdparam x="318" y="753" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="w2" />
+<P1  x="437" y="644" id="155" />
+<P2  x="437" y="616" id="168" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="28" >
+<cdparam x="319" y="416" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="w_offhook" />
+<P1  x="410" y="374" id="224" />
+<P2  x="410" y="440" id="29" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="31" >
+<cdparam x="278" y="498" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="w_offhook" />
+<P1  x="386" y="440" id="190" />
+<P2  x="450" y="440" id="178" />
+<Point x="410" y="440" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="30" >
+<father id="31" num="0" />
+<cdparam x="410" y="440" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="29" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="32" >
+<cdparam x="484" 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="523" y="287" id="200" />
+<P2  x="500" y="287" id="38" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="33" >
+<cdparam x="494" y="303" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="531" y="287" id="201" />
+<P2  x="574" y="287" id="289" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="40" >
+<cdparam x="314" y="350" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="410" y="302" id="223" />
+<P2  x="500" y="306" id="211" />
+<Point x="410" y="258" type="-1" />
+<Point x="500" y="258" type="-1" />
+<Point x="500" y="287" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="35" >
+<father id="40" num="0" />
+<cdparam x="410" y="258" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="34" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="37" >
+<father id="40" num="1" />
+<cdparam x="500" y="258" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="36" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="39" >
+<father id="40" num="2" />
+<cdparam x="500" y="287" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="38" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="43" >
+<cdparam x="1330" y="656" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="v2w" />
+<P1  x="1222" y="644" id="593" />
+<P2  x="1237" y="326" id="44" />
+<Point x="1237" y="644" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="42" >
+<father id="43" num="0" />
+<cdparam x="1237" y="644" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="41" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="46" >
+<cdparam x="1712" y="319" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="v2w" />
+<P1  x="1509" y="326" id="544" />
+<P2  x="1215" y="326" id="581" />
+<Point x="1237" y="326" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="45" >
+<father id="46" num="0" />
+<cdparam x="1237" y="326" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="44" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="47" >
+<cdparam x="1821" y="319" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="v2w" />
+<P1  x="1558" y="326" id="255" />
+<P2  x="1525" y="326" id="545" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="48" >
+<cdparam x="1732" y="678" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="i_trans" />
+<P1  x="1525" y="623" id="534" />
+<P2  x="1558" y="623" id="265" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="49" >
+<cdparam x="1524" y="551" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1312" y="463" id="480" />
+<P2  x="1346" y="463" id="67" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="50" >
+<cdparam x="1320" y="548" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1276" y="466" id="490" />
+<P2  x="1250" y="466" id="73" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="53" >
+<cdparam x="1492" y="425" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n_tri_i" />
+<P1  x="1346" y="382" id="615" />
+<P2  x="1361" y="587" id="61" />
+<Point x="1361" y="382" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="52" >
+<father id="53" num="0" />
+<cdparam x="1361" y="382" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="51" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="56" >
+<cdparam x="1582" y="723" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1421" y="659" id="511" />
+<P2  x="1397" y="692" id="57" />
+<Point x="1421" y="692" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="55" >
+<father id="56" num="0" />
+<cdparam x="1421" y="692" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="54" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="59" >
+<cdparam x="1538" y="802" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1397" y="706" id="500" />
+<P2  x="1397" y="682" id="523" />
+<Point x="1397" y="692" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="58" >
+<father id="59" num="0" />
+<cdparam x="1397" y="692" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="57" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="60" >
+<cdparam x="1532" y="644" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n_tri_i" />
+<P1  x="1397" y="603" id="522" />
+<P2  x="1397" y="587" id="63" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="65" >
+<cdparam x="1492" y="632" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n_tri_i" />
+<P1  x="1346" y="587" id="556" />
+<P2  x="1421" y="587" id="510" />
+<Point x="1361" y="587" type="-1" />
+<Point x="1397" y="587" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="62" >
+<father id="65" num="0" />
+<cdparam x="1361" y="587" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="61" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="64" >
+<father id="65" num="1" />
+<cdparam x="1397" y="587" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="63" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="66" >
+<cdparam x="1676" y="679" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="i_trans" />
+<P1  x="1501" y="623" id="512" />
+<P2  x="1509" y="623" id="533" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="69" >
+<cdparam x="1460" y="563" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1346" y="531" id="558" />
+<P2  x="1346" y="438" id="617" />
+<Point x="1346" y="463" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="68" >
+<father id="69" num="0" />
+<cdparam x="1346" y="463" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="67" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="72" >
+<cdparam x="1340" y="624" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n_ring_gnd" />
+<P1  x="1250" y="587" id="555" />
+<P2  x="1142" y="608" id="592" />
+<Point x="1142" y="587" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="71" >
+<father id="72" num="0" />
+<cdparam x="1142" y="587" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="70" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="75" >
+<cdparam x="1319" y="532" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1250" y="531" id="557" />
+<P2  x="1250" y="438" id="616" />
+<Point x="1250" y="466" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="74" >
+<father id="75" num="0" />
+<cdparam x="1250" y="466" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="73" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="76" >
+<cdparam x="1180" y="702" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1121" y="680" id="603" />
+<P2  x="1142" y="680" id="591" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="79" >
+<cdparam x="1198" y="400" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n_tip_gnd" />
+<P1  x="1135" y="362" id="580" />
+<P2  x="1250" y="382" id="614" />
+<Point x="1135" y="382" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="78" >
+<father id="79" num="0" />
+<cdparam x="1135" y="382" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="77" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="80" >
+<cdparam x="497" y="299" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="582" y="287" id="288" />
+<P2  x="607" y="410" id="275" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="81" >
+<cdparam x="531" y="534" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="607" y="466" id="277" />
+<P2  x="582" y="677" id="299" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="82" >
+<cdparam x="651" y="534" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="703" y="466" id="278" />
+<P2  x="727" y="680" id="321" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="83" >
+<cdparam x="651" y="464" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="703" y="410" id="276" />
+<P2  x="727" y="290" id="310" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="84" >
+<cdparam x="1228" y="314" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1135" y="290" id="579" />
+<P2  x="1121" y="290" id="568" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="85" >
+<cdparam x="1066" y="310" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1043" y="290" id="450" />
+<P2  x="1113" y="290" id="569" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="86" >
+<cdparam x="690" y="478" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="735" y="680" id="322" />
+<P2  x="777" y="680" id="439" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="87" >
+<cdparam x="690" y="329" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="735" y="290" id="311" />
+<P2  x="777" y="290" id="375" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="88" >
+<cdparam x="1066" y="702" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="1043" y="680" id="461" />
+<P2  x="1113" y="680" id="604" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="89" >
+<cdparam x="747" y="382" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="785" y="290" id="374" />
+<P2  x="808" y="290" id="341" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="90" >
+<cdparam x="747" y="773" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="785" y="680" id="438" />
+<P2  x="801" y="680" id="395" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="91" >
+<cdparam x="899" y="748" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n_ring" />
+<P1  x="907" y="652" id="417" />
+<P2  x="907" y="680" id="94" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="92" >
+<cdparam x="899" y="408" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n_tip" />
+<P1  x="906" y="310" id="363" />
+<P2  x="906" y="290" id="98" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="93" >
+<cdparam x="899" y="641" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="907" y="553" id="428" />
+<P2  x="907" y="574" id="418" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="96" >
+<cdparam x="890" y="780" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n_ring" />
+<P1  x="881" y="680" id="396" />
+<P2  x="932" y="680" id="407" />
+<Point x="907" y="680" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="95" >
+<father id="96" num="0" />
+<cdparam x="907" y="680" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="94" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="97" >
+<cdparam x="903" y="525" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="906" y="402" id="385" />
+<P2  x="906" y="388" id="364" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="100" >
+<cdparam x="871" y="380" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n_tip" />
+<P1  x="888" y="290" id="342" />
+<P2  x="937" y="290" id="353" />
+<Point x="906" y="290" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="99" >
+<father id="100" num="0" />
+<cdparam x="906" y="290" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="98" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1627" id="654" >
+<cdparam x="258" y="166" />
+<sizeparam width="1308" height="636" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="8" maxX="1601" minY="8" maxY="961" />
+<infoparam name="TGComponent" value="cluster" />
+<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" />
+</COMPONENT>
+<SUBCOMPONENT type="1632" id="110" >
+<father id="654" num="0" />
+<cdparam x="250" y="672" />
+<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-8" maxX="1300" minY="-8" maxY="628" />
+<infoparam name="TGComponent" value="voice" />
+<TGConnectingPoint num="0" id="101" />
+<TGConnectingPoint num="1" id="102" />
+<TGConnectingPoint num="2" id="103" />
+<TGConnectingPoint num="3" id="104" />
+<TGConnectingPoint num="4" id="105" />
+<TGConnectingPoint num="5" id="106" />
+<TGConnectingPoint num="6" id="107" />
+<TGConnectingPoint num="7" id="108" />
+<TGConnectingPoint num="8" id="109" />
+<extraparam>
+<attributes name="voice" type="double" origin="in"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1623" id="254" >
+<father id="654" num="1" />
+<cdparam x="315" y="210" />
+<sizeparam width="212" height="541" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1096" minY="0" maxY="95" />
+<infoparam name="TGComponent" value="phone" />
+<TGConnectingPoint num="0" id="246" />
+<TGConnectingPoint num="1" id="247" />
+<TGConnectingPoint num="2" id="248" />
+<TGConnectingPoint num="3" id="249" />
+<TGConnectingPoint num="4" id="250" />
+<TGConnectingPoint num="5" id="251" />
+<TGConnectingPoint num="6" id="252" />
+<TGConnectingPoint num="7" id="253" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1629" id="121" >
+<father id="254" num="0" />
+<cdparam x="307" y="672" />
+<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-8" maxX="204" minY="-8" maxY="533" />
+<infoparam name="TGComponent" value="voice" />
+<TGConnectingPoint num="0" id="111" />
+<TGConnectingPoint num="1" id="112" />
+<TGConnectingPoint num="2" id="113" />
+<TGConnectingPoint num="3" id="114" />
+<TGConnectingPoint num="4" id="115" />
+<TGConnectingPoint num="5" id="116" />
+<TGConnectingPoint num="6" id="117" />
+<TGConnectingPoint num="7" id="118" />
+<TGConnectingPoint num="8" id="119" />
+<TGConnectingPoint num="9" id="120" />
+<extraparam>
+<attributes name="voice" type="double" origin="in"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="132" >
+<father id="254" num="1" />
+<cdparam x="493" y="535" />
+<sizeparam width="15" height="79" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="197" minY="0" maxY="462" />
+<infoparam name="TGComponent" value="rr" />
+<TGConnectingPoint num="0" id="122" />
+<TGConnectingPoint num="1" id="123" />
+<TGConnectingPoint num="2" id="124" />
+<TGConnectingPoint num="3" id="125" />
+<TGConnectingPoint num="4" id="126" />
+<TGConnectingPoint num="5" id="127" />
+<TGConnectingPoint num="6" id="128" />
+<TGConnectingPoint num="7" id="129" />
+<TGConnectingPoint num="8" id="130" />
+<TGConnectingPoint num="9" id="131" />
+<extraparam>
+<attributes value="1.0" unit="k&#x3A9;" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1612" id="143" >
+<father id="254" num="2" />
+<cdparam x="484" y="427" />
+<sizeparam width="32" height="78" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="180" minY="0" maxY="463" />
+<infoparam name="TGComponent" value="cr" />
+<TGConnectingPoint num="0" id="133" />
+<TGConnectingPoint num="1" id="134" />
+<TGConnectingPoint num="2" id="135" />
+<TGConnectingPoint num="3" id="136" />
+<TGConnectingPoint num="4" id="137" />
+<TGConnectingPoint num="5" id="138" />
+<TGConnectingPoint num="6" id="139" />
+<TGConnectingPoint num="7" id="140" />
+<TGConnectingPoint num="8" id="141" />
+<TGConnectingPoint num="9" id="142" />
+<extraparam>
+<attributes value="1.0" unit0="&#x3BC;F" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="true" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="154" >
+<father id="254" num="3" />
+<cdparam x="523" y="673" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="208" minY="-4" maxY="537" />
+<infoparam name="TGComponent" value="ring" />
+<TGConnectingPoint num="0" id="144" />
+<TGConnectingPoint num="1" id="145" />
+<TGConnectingPoint num="2" id="146" />
+<TGConnectingPoint num="3" id="147" />
+<TGConnectingPoint num="4" id="148" />
+<TGConnectingPoint num="5" id="149" />
+<TGConnectingPoint num="6" id="150" />
+<TGConnectingPoint num="7" id="151" />
+<TGConnectingPoint num="8" id="152" />
+<TGConnectingPoint num="9" id="153" />
+<extraparam>
+<attributes name="ring"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1625" id="166" >
+<father id="254" num="4" />
+<cdparam x="357" y="640" />
+<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="132" minY="0" maxY="461" />
+<infoparam name="TGComponent" value="mic" />
+<TGConnectingPoint num="0" id="155" />
+<TGConnectingPoint num="1" id="156" />
+<TGConnectingPoint num="2" id="157" />
+<TGConnectingPoint num="3" id="158" />
+<TGConnectingPoint num="4" id="159" />
+<TGConnectingPoint num="5" id="160" />
+<TGConnectingPoint num="6" id="161" />
+<TGConnectingPoint num="7" id="162" />
+<TGConnectingPoint num="8" id="163" />
+<TGConnectingPoint num="9" id="164" />
+<TGConnectingPoint num="10" id="165" />
+<extraparam>
+<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="177" >
+<father id="254" num="5" />
+<cdparam x="430" y="537" />
+<sizeparam width="15" height="79" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="197" minY="0" maxY="462" />
+<infoparam name="TGComponent" value="rs" />
+<TGConnectingPoint num="0" id="167" />
+<TGConnectingPoint num="1" id="168" />
+<TGConnectingPoint num="2" id="169" />
+<TGConnectingPoint num="3" id="170" />
+<TGConnectingPoint num="4" id="171" />
+<TGConnectingPoint num="5" id="172" />
+<TGConnectingPoint num="6" id="173" />
+<TGConnectingPoint num="7" id="174" />
+<TGConnectingPoint num="8" id="175" />
+<TGConnectingPoint num="9" id="176" />
+<extraparam>
+<attributes value="220.0" unit="&#x3A9;" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="188" >
+<father id="254" num="6" />
+<cdparam x="443" y="440" />
+<sizeparam width="15" height="79" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="197" minY="0" maxY="462" />
+<infoparam name="TGComponent" value="rp" />
+<TGConnectingPoint num="0" id="178" />
+<TGConnectingPoint num="1" id="179" />
+<TGConnectingPoint num="2" id="180" />
+<TGConnectingPoint num="3" id="181" />
+<TGConnectingPoint num="4" id="182" />
+<TGConnectingPoint num="5" id="183" />
+<TGConnectingPoint num="6" id="184" />
+<TGConnectingPoint num="7" id="185" />
+<TGConnectingPoint num="8" id="186" />
+<TGConnectingPoint num="9" id="187" />
+<extraparam>
+<attributes value="820.0" unit="&#x3A9;" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1612" id="199" >
+<father id="254" num="7" />
+<cdparam x="370" y="440" />
+<sizeparam width="32" height="78" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="180" minY="0" maxY="463" />
+<infoparam name="TGComponent" value="cp" />
+<TGConnectingPoint num="0" id="189" />
+<TGConnectingPoint num="1" id="190" />
+<TGConnectingPoint num="2" id="191" />
+<TGConnectingPoint num="3" id="192" />
+<TGConnectingPoint num="4" id="193" />
+<TGConnectingPoint num="5" id="194" />
+<TGConnectingPoint num="6" id="195" />
+<TGConnectingPoint num="7" id="196" />
+<TGConnectingPoint num="8" id="197" />
+<TGConnectingPoint num="9" id="198" />
+<extraparam>
+<attributes value="115.0" unit0="nF" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="true" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="210" >
+<father id="254" num="8" />
+<cdparam x="523" y="283" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="208" minY="-4" maxY="537" />
+<infoparam name="TGComponent" value="tip" />
+<TGConnectingPoint num="0" id="200" />
+<TGConnectingPoint num="1" id="201" />
+<TGConnectingPoint num="2" id="202" />
+<TGConnectingPoint num="3" id="203" />
+<TGConnectingPoint num="4" id="204" />
+<TGConnectingPoint num="5" id="205" />
+<TGConnectingPoint num="6" id="206" />
+<TGConnectingPoint num="7" id="207" />
+<TGConnectingPoint num="8" id="208" />
+<TGConnectingPoint num="9" id="209" />
+<extraparam>
+<attributes name="tip"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1636" id="222" >
+<father id="254" num="9" />
+<cdparam x="420" y="302" />
+<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="132" minY="0" maxY="461" />
+<infoparam name="TGComponent" value="sw1" />
+<TGConnectingPoint num="0" id="211" />
+<TGConnectingPoint num="1" id="212" />
+<TGConnectingPoint num="2" id="213" />
+<TGConnectingPoint num="3" id="214" />
+<TGConnectingPoint num="4" id="215" />
+<TGConnectingPoint num="5" id="216" />
+<TGConnectingPoint num="6" id="217" />
+<TGConnectingPoint num="7" id="218" />
+<TGConnectingPoint num="8" id="219" />
+<TGConnectingPoint num="9" id="220" />
+<TGConnectingPoint num="10" id="221" />
+<extraparam>
+<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1636" id="234" >
+<father id="254" num="10" />
+<cdparam x="330" y="298" />
+<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="132" minY="0" maxY="461" />
+<infoparam name="TGComponent" value="sw2" />
+<TGConnectingPoint num="0" id="223" />
+<TGConnectingPoint num="1" id="224" />
+<TGConnectingPoint num="2" id="225" />
+<TGConnectingPoint num="3" id="226" />
+<TGConnectingPoint num="4" id="227" />
+<TGConnectingPoint num="5" id="228" />
+<TGConnectingPoint num="6" id="229" />
+<TGConnectingPoint num="7" id="230" />
+<TGConnectingPoint num="8" id="231" />
+<TGConnectingPoint num="9" id="232" />
+<TGConnectingPoint num="10" id="233" />
+<extraparam>
+<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1628" id="245" >
+<father id="254" num="11" />
+<cdparam x="307" y="330" />
+<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-8" maxX="204" minY="-8" maxY="533" />
+<infoparam name="TGComponent" value="hook" />
+<TGConnectingPoint num="0" id="235" />
+<TGConnectingPoint num="1" id="236" />
+<TGConnectingPoint num="2" id="237" />
+<TGConnectingPoint num="3" id="238" />
+<TGConnectingPoint num="4" id="239" />
+<TGConnectingPoint num="5" id="240" />
+<TGConnectingPoint num="6" id="241" />
+<TGConnectingPoint num="7" id="242" />
+<TGConnectingPoint num="8" id="243" />
+<TGConnectingPoint num="9" id="244" />
+<extraparam>
+<attributes name="hook" type="bool" origin="in"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1632" id="264" >
+<father id="654" num="2" />
+<cdparam x="1558" y="318" />
+<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-8" maxX="1300" minY="-8" maxY="628" />
+<infoparam name="TGComponent" value="v2w" />
+<TGConnectingPoint num="0" id="255" />
+<TGConnectingPoint num="1" id="256" />
+<TGConnectingPoint num="2" id="257" />
+<TGConnectingPoint num="3" id="258" />
+<TGConnectingPoint num="4" id="259" />
+<TGConnectingPoint num="5" id="260" />
+<TGConnectingPoint num="6" id="261" />
+<TGConnectingPoint num="7" id="262" />
+<TGConnectingPoint num="8" id="263" />
+<extraparam>
+<attributes name="v2w" type="double" origin="in"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1632" id="274" >
+<father id="654" num="3" />
+<cdparam x="1558" y="615" />
+<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-8" maxX="1300" minY="-8" maxY="628" />
+<infoparam name="TGComponent" value="i_trans" />
+<TGConnectingPoint num="0" id="265" />
+<TGConnectingPoint num="1" id="266" />
+<TGConnectingPoint num="2" id="267" />
+<TGConnectingPoint num="3" id="268" />
+<TGConnectingPoint num="4" id="269" />
+<TGConnectingPoint num="5" id="270" />
+<TGConnectingPoint num="6" id="271" />
+<TGConnectingPoint num="7" id="272" />
+<TGConnectingPoint num="8" id="273" />
+<extraparam>
+<attributes name="i_trans" type="double" origin="out"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1623" id="340" >
+<father id="654" num="4" />
+<cdparam x="578" y="212" />
+<sizeparam width="153" height="540" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1155" minY="0" maxY="96" />
+<infoparam name="TGComponent" value="transmission_line" />
+<TGConnectingPoint num="0" id="332" />
+<TGConnectingPoint num="1" id="333" />
+<TGConnectingPoint num="2" id="334" />
+<TGConnectingPoint num="3" id="335" />
+<TGConnectingPoint num="4" id="336" />
+<TGConnectingPoint num="5" id="337" />
+<TGConnectingPoint num="6" id="338" />
+<TGConnectingPoint num="7" id="339" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1617" id="287" >
+<father id="340" num="0" />
+<cdparam x="607" y="406" />
+<sizeparam width="96" height="64" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="57" minY="0" maxY="476" />
+<infoparam name="TGComponent" value="tl0" />
+<TGConnectingPoint num="0" id="275" />
+<TGConnectingPoint num="1" id="276" />
+<TGConnectingPoint num="2" id="277" />
+<TGConnectingPoint num="3" id="278" />
+<TGConnectingPoint num="4" id="279" />
+<TGConnectingPoint num="5" id="280" />
+<TGConnectingPoint num="6" id="281" />
+<TGConnectingPoint num="7" id="282" />
+<TGConnectingPoint num="8" id="283" />
+<TGConnectingPoint num="9" id="284" />
+<TGConnectingPoint num="10" id="285" />
+<TGConnectingPoint num="11" id="286" />
+<extraparam>
+<attributes z0="50.0" unit0="&#x3A9;" delay="sc_core::SC_ZERO_TIME" delta0="0.0" unit2="Hz" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="298" >
+<father id="340" num="1" />
+<cdparam x="574" y="283" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="149" minY="-4" maxY="536" />
+<infoparam name="TGComponent" value="a1" />
+<TGConnectingPoint num="0" id="288" />
+<TGConnectingPoint num="1" id="289" />
+<TGConnectingPoint num="2" id="290" />
+<TGConnectingPoint num="3" id="291" />
+<TGConnectingPoint num="4" id="292" />
+<TGConnectingPoint num="5" id="293" />
+<TGConnectingPoint num="6" id="294" />
+<TGConnectingPoint num="7" id="295" />
+<TGConnectingPoint num="8" id="296" />
+<TGConnectingPoint num="9" id="297" />
+<extraparam>
+<attributes name="a1"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="309" >
+<father id="340" num="2" />
+<cdparam x="574" y="673" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="149" minY="-4" maxY="536" />
+<infoparam name="TGComponent" value="b1" />
+<TGConnectingPoint num="0" id="299" />
+<TGConnectingPoint num="1" id="300" />
+<TGConnectingPoint num="2" id="301" />
+<TGConnectingPoint num="3" id="302" />
+<TGConnectingPoint num="4" id="303" />
+<TGConnectingPoint num="5" id="304" />
+<TGConnectingPoint num="6" id="305" />
+<TGConnectingPoint num="7" id="306" />
+<TGConnectingPoint num="8" id="307" />
+<TGConnectingPoint num="9" id="308" />
+<extraparam>
+<attributes name="b1"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="320" >
+<father id="340" num="3" />
+<cdparam x="727" y="286" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="149" minY="-4" maxY="536" />
+<infoparam name="TGComponent" value="a2" />
+<TGConnectingPoint num="0" id="310" />
+<TGConnectingPoint num="1" id="311" />
+<TGConnectingPoint num="2" id="312" />
+<TGConnectingPoint num="3" id="313" />
+<TGConnectingPoint num="4" id="314" />
+<TGConnectingPoint num="5" id="315" />
+<TGConnectingPoint num="6" id="316" />
+<TGConnectingPoint num="7" id="317" />
+<TGConnectingPoint num="8" id="318" />
+<TGConnectingPoint num="9" id="319" />
+<extraparam>
+<attributes name="a2"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="331" >
+<father id="340" num="4" />
+<cdparam x="727" y="676" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="149" minY="-4" maxY="536" />
+<infoparam name="TGComponent" value="b2" />
+<TGConnectingPoint num="0" id="321" />
+<TGConnectingPoint num="1" id="322" />
+<TGConnectingPoint num="2" id="323" />
+<TGConnectingPoint num="3" id="324" />
+<TGConnectingPoint num="4" id="325" />
+<TGConnectingPoint num="5" id="326" />
+<TGConnectingPoint num="6" id="327" />
+<TGConnectingPoint num="7" id="328" />
+<TGConnectingPoint num="8" id="329" />
+<TGConnectingPoint num="9" id="330" />
+<extraparam>
+<attributes name="b2"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1623" id="479" >
+<father id="654" num="5" />
+<cdparam x="781" y="212" />
+<sizeparam width="258" height="537" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1050" minY="0" maxY="99" />
+<infoparam name="TGComponent" value="protection_circuit" />
+<TGConnectingPoint num="0" id="471" />
+<TGConnectingPoint num="1" id="472" />
+<TGConnectingPoint num="2" id="473" />
+<TGConnectingPoint num="3" id="474" />
+<TGConnectingPoint num="4" id="475" />
+<TGConnectingPoint num="5" id="476" />
+<TGConnectingPoint num="6" id="477" />
+<TGConnectingPoint num="7" id="478" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="351" >
+<father id="479" num="0" />
+<cdparam x="808" y="282" />
+<sizeparam width="80" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="178" minY="0" maxY="521" />
+<infoparam name="TGComponent" value="rprot1" />
+<TGConnectingPoint num="0" id="341" />
+<TGConnectingPoint num="1" id="342" />
+<TGConnectingPoint num="2" id="343" />
+<TGConnectingPoint num="3" id="344" />
+<TGConnectingPoint num="4" id="345" />
+<TGConnectingPoint num="5" id="346" />
+<TGConnectingPoint num="6" id="347" />
+<TGConnectingPoint num="7" id="348" />
+<TGConnectingPoint num="8" id="349" />
+<TGConnectingPoint num="9" id="350" />
+<extraparam>
+<attributes value="20.0" unit="&#x3A9;" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="362" >
+<father id="479" num="1" />
+<cdparam x="937" y="282" />
+<sizeparam width="80" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="178" minY="0" maxY="521" />
+<infoparam name="TGComponent" value="rprot2" />
+<TGConnectingPoint num="0" id="352" />
+<TGConnectingPoint num="1" id="353" />
+<TGConnectingPoint num="2" id="354" />
+<TGConnectingPoint num="3" id="355" />
+<TGConnectingPoint num="4" id="356" />
+<TGConnectingPoint num="5" id="357" />
+<TGConnectingPoint num="6" id="358" />
+<TGConnectingPoint num="7" id="359" />
+<TGConnectingPoint num="8" id="360" />
+<TGConnectingPoint num="9" id="361" />
+<extraparam>
+<attributes value="20.0" unit="&#x3A9;" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="true" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1612" id="373" >
+<father id="479" num="2" />
+<cdparam x="890" y="310" />
+<sizeparam width="32" height="78" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="226" minY="0" maxY="459" />
+<infoparam name="TGComponent" value="cprot1" />
+<TGConnectingPoint num="0" id="363" />
+<TGConnectingPoint num="1" id="364" />
+<TGConnectingPoint num="2" id="365" />
+<TGConnectingPoint num="3" id="366" />
+<TGConnectingPoint num="4" id="367" />
+<TGConnectingPoint num="5" id="368" />
+<TGConnectingPoint num="6" id="369" />
+<TGConnectingPoint num="7" id="370" />
+<TGConnectingPoint num="8" id="371" />
+<TGConnectingPoint num="9" id="372" />
+<extraparam>
+<attributes value="18.0" unit0="nF" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="384" >
+<father id="479" num="3" />
+<cdparam x="777" y="286" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="254" minY="-4" maxY="533" />
+<infoparam name="TGComponent" value="tip" />
+<TGConnectingPoint num="0" id="374" />
+<TGConnectingPoint num="1" id="375" />
+<TGConnectingPoint num="2" id="376" />
+<TGConnectingPoint num="3" id="377" />
+<TGConnectingPoint num="4" id="378" />
+<TGConnectingPoint num="5" id="379" />
+<TGConnectingPoint num="6" id="380" />
+<TGConnectingPoint num="7" id="381" />
+<TGConnectingPoint num="8" id="382" />
+<TGConnectingPoint num="9" id="383" />
+<extraparam>
+<attributes name="tip"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="394" >
+<father id="479" num="4" />
+<cdparam x="890" y="402" />
+<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="226" minY="0" maxY="505" />
+<infoparam name="TGComponent" value="gnd" />
+<TGConnectingPoint num="0" id="385" />
+<TGConnectingPoint num="1" id="386" />
+<TGConnectingPoint num="2" id="387" />
+<TGConnectingPoint num="3" id="388" />
+<TGConnectingPoint num="4" id="389" />
+<TGConnectingPoint num="5" id="390" />
+<TGConnectingPoint num="6" id="391" />
+<TGConnectingPoint num="7" id="392" />
+<TGConnectingPoint num="8" id="393" />
+<extraparam>
+<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="405" >
+<father id="479" num="5" />
+<cdparam x="801" y="672" />
+<sizeparam width="80" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="178" minY="0" maxY="521" />
+<infoparam name="TGComponent" value="rprot3" />
+<TGConnectingPoint num="0" id="395" />
+<TGConnectingPoint num="1" id="396" />
+<TGConnectingPoint num="2" id="397" />
+<TGConnectingPoint num="3" id="398" />
+<TGConnectingPoint num="4" id="399" />
+<TGConnectingPoint num="5" id="400" />
+<TGConnectingPoint num="6" id="401" />
+<TGConnectingPoint num="7" id="402" />
+<TGConnectingPoint num="8" id="403" />
+<TGConnectingPoint num="9" id="404" />
+<extraparam>
+<attributes value="20.0" unit="&#x3A9;" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="416" >
+<father id="479" num="6" />
+<cdparam x="932" y="672" />
+<sizeparam width="80" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="178" minY="0" maxY="521" />
+<infoparam name="TGComponent" value="rprot4" />
+<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" />
+<extraparam>
+<attributes value="20.0" unit="&#x3A9;" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="true" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1612" id="427" >
+<father id="479" num="7" />
+<cdparam x="891" y="574" />
+<sizeparam width="32" height="78" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="226" minY="0" maxY="459" />
+<infoparam name="TGComponent" value="cprot2" />
+<TGConnectingPoint num="0" id="417" />
+<TGConnectingPoint num="1" id="418" />
+<TGConnectingPoint num="2" id="419" />
+<TGConnectingPoint num="3" id="420" />
+<TGConnectingPoint num="4" id="421" />
+<TGConnectingPoint num="5" id="422" />
+<TGConnectingPoint num="6" id="423" />
+<TGConnectingPoint num="7" id="424" />
+<TGConnectingPoint num="8" id="425" />
+<TGConnectingPoint num="9" id="426" />
+<extraparam>
+<attributes value="18.0" unit0="nF" q0="0.0" unit1="C" position="3" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="437" >
+<father id="479" num="8" />
+<cdparam x="891" y="521" />
+<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="226" minY="0" maxY="505" />
+<infoparam name="TGComponent" value="gnd" />
+<TGConnectingPoint num="0" id="428" />
+<TGConnectingPoint num="1" id="429" />
+<TGConnectingPoint num="2" id="430" />
+<TGConnectingPoint num="3" id="431" />
+<TGConnectingPoint num="4" id="432" />
+<TGConnectingPoint num="5" id="433" />
+<TGConnectingPoint num="6" id="434" />
+<TGConnectingPoint num="7" id="435" />
+<TGConnectingPoint num="8" id="436" />
+<extraparam>
+<attributes position="0" fv_0_2="true" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="448" >
+<father id="479" num="9" />
+<cdparam x="777" y="676" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="254" minY="-4" maxY="533" />
+<infoparam name="TGComponent" value="ring" />
+<TGConnectingPoint num="0" id="438" />
+<TGConnectingPoint num="1" id="439" />
+<TGConnectingPoint num="2" id="440" />
+<TGConnectingPoint num="3" id="441" />
+<TGConnectingPoint num="4" id="442" />
+<TGConnectingPoint num="5" id="443" />
+<TGConnectingPoint num="6" id="444" />
+<TGConnectingPoint num="7" id="445" />
+<TGConnectingPoint num="8" id="446" />
+<TGConnectingPoint num="9" id="447" />
+<extraparam>
+<attributes name="ring"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="459" >
+<father id="479" num="10" />
+<cdparam x="1035" y="286" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="254" minY="-4" maxY="533" />
+<infoparam name="TGComponent" value="tip_slic" />
+<TGConnectingPoint num="0" id="449" />
+<TGConnectingPoint num="1" id="450" />
+<TGConnectingPoint num="2" id="451" />
+<TGConnectingPoint num="3" id="452" />
+<TGConnectingPoint num="4" id="453" />
+<TGConnectingPoint num="5" id="454" />
+<TGConnectingPoint num="6" id="455" />
+<TGConnectingPoint num="7" id="456" />
+<TGConnectingPoint num="8" id="457" />
+<TGConnectingPoint num="9" id="458" />
+<extraparam>
+<attributes name="tip_slic"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="470" >
+<father id="479" num="11" />
+<cdparam x="1035" y="676" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="254" minY="-4" maxY="533" />
+<infoparam name="TGComponent" value="ring_slic" />
+<TGConnectingPoint num="0" id="460" />
+<TGConnectingPoint num="1" id="461" />
+<TGConnectingPoint num="2" id="462" />
+<TGConnectingPoint num="3" id="463" />
+<TGConnectingPoint num="4" id="464" />
+<TGConnectingPoint num="5" id="465" />
+<TGConnectingPoint num="6" id="466" />
+<TGConnectingPoint num="7" id="467" />
+<TGConnectingPoint num="8" id="468" />
+<TGConnectingPoint num="9" id="469" />
+<extraparam>
+<attributes name="ring_slic"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1623" id="635" >
+<father id="654" num="6" />
+<cdparam x="1117" y="212" />
+<sizeparam width="400" height="540" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="908" minY="0" maxY="96" />
+<infoparam name="TGComponent" value="slic" />
+<TGConnectingPoint num="0" id="627" />
+<TGConnectingPoint num="1" id="628" />
+<TGConnectingPoint num="2" id="629" />
+<TGConnectingPoint num="3" id="630" />
+<TGConnectingPoint num="4" id="631" />
+<TGConnectingPoint num="5" id="632" />
+<TGConnectingPoint num="6" id="633" />
+<TGConnectingPoint num="7" id="634" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="489" >
+<father id="635" num="0" />
+<cdparam x="1296" y="463" />
+<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="368" minY="0" maxY="508" />
+<infoparam name="TGComponent" value="gnd" />
+<TGConnectingPoint num="0" id="480" />
+<TGConnectingPoint num="1" id="481" />
+<TGConnectingPoint num="2" id="482" />
+<TGConnectingPoint num="3" id="483" />
+<TGConnectingPoint num="4" id="484" />
+<TGConnectingPoint num="5" id="485" />
+<TGConnectingPoint num="6" id="486" />
+<TGConnectingPoint num="7" id="487" />
+<TGConnectingPoint num="8" id="488" />
+<extraparam>
+<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="499" >
+<father id="635" num="1" />
+<cdparam x="1260" y="466" />
+<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="368" minY="0" maxY="508" />
+<infoparam name="TGComponent" value="gnd" />
+<TGConnectingPoint num="0" id="490" />
+<TGConnectingPoint num="1" id="491" />
+<TGConnectingPoint num="2" id="492" />
+<TGConnectingPoint num="3" id="493" />
+<TGConnectingPoint num="4" id="494" />
+<TGConnectingPoint num="5" id="495" />
+<TGConnectingPoint num="6" id="496" />
+<TGConnectingPoint num="7" id="497" />
+<TGConnectingPoint num="8" id="498" />
+<extraparam>
+<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="509" >
+<father id="635" num="2" />
+<cdparam x="1381" y="706" />
+<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="368" minY="0" maxY="508" />
+<infoparam name="TGComponent" value="gnd" />
+<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" />
+<extraparam>
+<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1621" id="521" >
+<father id="635" num="3" />
+<cdparam x="1421" y="583" />
+<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="320" minY="0" maxY="460" />
+<infoparam name="TGComponent" value="itr_meas" />
+<TGConnectingPoint num="0" id="510" />
+<TGConnectingPoint num="1" id="511" />
+<TGConnectingPoint num="2" id="512" />
+<TGConnectingPoint num="3" id="513" />
+<TGConnectingPoint num="4" id="514" />
+<TGConnectingPoint num="5" id="515" />
+<TGConnectingPoint num="6" id="516" />
+<TGConnectingPoint num="7" id="517" />
+<TGConnectingPoint num="8" id="518" />
+<TGConnectingPoint num="9" id="519" />
+<TGConnectingPoint num="10" id="520" />
+<extraparam>
+<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="532" >
+<father id="635" num="4" />
+<cdparam x="1390" y="603" />
+<sizeparam width="15" height="79" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="385" minY="0" maxY="461" />
+<infoparam name="TGComponent" value="rtr" />
+<TGConnectingPoint num="0" id="522" />
+<TGConnectingPoint num="1" id="523" />
+<TGConnectingPoint num="2" id="524" />
+<TGConnectingPoint num="3" id="525" />
+<TGConnectingPoint num="4" id="526" />
+<TGConnectingPoint num="5" id="527" />
+<TGConnectingPoint num="6" id="528" />
+<TGConnectingPoint num="7" id="529" />
+<TGConnectingPoint num="8" id="530" />
+<TGConnectingPoint num="9" id="531" />
+<extraparam>
+<attributes value="1.0" unit="&#x3A9;" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1629" id="543" >
+<father id="635" num="5" />
+<cdparam x="1509" y="615" />
+<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-8" maxX="392" minY="-8" maxY="532" />
+<infoparam name="TGComponent" value="i_trans" />
+<TGConnectingPoint num="0" id="533" />
+<TGConnectingPoint num="1" id="534" />
+<TGConnectingPoint num="2" id="535" />
+<TGConnectingPoint num="3" id="536" />
+<TGConnectingPoint num="4" id="537" />
+<TGConnectingPoint num="5" id="538" />
+<TGConnectingPoint num="6" id="539" />
+<TGConnectingPoint num="7" id="540" />
+<TGConnectingPoint num="8" id="541" />
+<TGConnectingPoint num="9" id="542" />
+<extraparam>
+<attributes name="i_trans" type="double" origin="out"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1629" id="554" >
+<father id="635" num="6" />
+<cdparam x="1509" y="318" />
+<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-8" maxX="392" minY="-8" maxY="532" />
+<infoparam name="TGComponent" value="v2w" />
+<TGConnectingPoint num="0" id="544" />
+<TGConnectingPoint num="1" id="545" />
+<TGConnectingPoint num="2" id="546" />
+<TGConnectingPoint num="3" id="547" />
+<TGConnectingPoint num="4" id="548" />
+<TGConnectingPoint num="5" id="549" />
+<TGConnectingPoint num="6" id="550" />
+<TGConnectingPoint num="7" id="551" />
+<TGConnectingPoint num="8" id="552" />
+<TGConnectingPoint num="9" id="553" />
+<extraparam>
+<attributes name="v2w" type="double" origin="in"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1615" id="567" >
+<father id="635" num="7" />
+<cdparam x="1250" y="527" />
+<sizeparam width="96" height="64" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="304" minY="0" maxY="476" />
+<infoparam name="TGComponent" value="mirror2" />
+<TGConnectingPoint num="0" id="555" />
+<TGConnectingPoint num="1" id="556" />
+<TGConnectingPoint num="2" id="557" />
+<TGConnectingPoint num="3" id="558" />
+<TGConnectingPoint num="4" id="559" />
+<TGConnectingPoint num="5" id="560" />
+<TGConnectingPoint num="6" id="561" />
+<TGConnectingPoint num="7" id="562" />
+<TGConnectingPoint num="8" id="563" />
+<TGConnectingPoint num="9" id="564" />
+<TGConnectingPoint num="10" id="565" />
+<TGConnectingPoint num="11" id="566" />
+<extraparam>
+<attributes value="-0.5" unit="S" position="0" fv_0_2="true" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="578" >
+<father id="635" num="8" />
+<cdparam x="1113" y="286" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="396" minY="-4" maxY="536" />
+<infoparam name="TGComponent" value="tip" />
+<TGConnectingPoint num="0" id="568" />
+<TGConnectingPoint num="1" id="569" />
+<TGConnectingPoint num="2" id="570" />
+<TGConnectingPoint num="3" id="571" />
+<TGConnectingPoint num="4" id="572" />
+<TGConnectingPoint num="5" id="573" />
+<TGConnectingPoint num="6" id="574" />
+<TGConnectingPoint num="7" id="575" />
+<TGConnectingPoint num="8" id="576" />
+<TGConnectingPoint num="9" id="577" />
+<extraparam>
+<attributes name="tip"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1625" id="590" >
+<father id="635" num="9" />
+<cdparam x="1135" y="286" />
+<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="320" minY="0" maxY="460" />
+<infoparam name="TGComponent" value="driver1" />
+<TGConnectingPoint num="0" id="579" />
+<TGConnectingPoint num="1" id="580" />
+<TGConnectingPoint num="2" id="581" />
+<TGConnectingPoint num="3" id="582" />
+<TGConnectingPoint num="4" id="583" />
+<TGConnectingPoint num="5" id="584" />
+<TGConnectingPoint num="6" id="585" />
+<TGConnectingPoint num="7" id="586" />
+<TGConnectingPoint num="8" id="587" />
+<TGConnectingPoint num="9" id="588" />
+<TGConnectingPoint num="10" id="589" />
+<extraparam>
+<attributes scale="0.5" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="true" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1625" id="602" >
+<father id="635" num="10" />
+<cdparam x="1142" y="604" />
+<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="320" minY="0" maxY="460" />
+<infoparam name="TGComponent" value="driver2" />
+<TGConnectingPoint num="0" id="591" />
+<TGConnectingPoint num="1" id="592" />
+<TGConnectingPoint num="2" id="593" />
+<TGConnectingPoint num="3" id="594" />
+<TGConnectingPoint num="4" id="595" />
+<TGConnectingPoint num="5" id="596" />
+<TGConnectingPoint num="6" id="597" />
+<TGConnectingPoint num="7" id="598" />
+<TGConnectingPoint num="8" id="599" />
+<TGConnectingPoint num="9" id="600" />
+<TGConnectingPoint num="10" id="601" />
+<extraparam>
+<attributes scale="0.5" position="0" fv_0_2="true" fv_1_3="false" fh_0_2="true" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="613" >
+<father id="635" num="11" />
+<cdparam x="1113" y="676" />
+<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-4" maxX="396" minY="-4" maxY="536" />
+<infoparam name="TGComponent" value="ring" />
+<TGConnectingPoint num="0" id="603" />
+<TGConnectingPoint num="1" id="604" />
+<TGConnectingPoint num="2" id="605" />
+<TGConnectingPoint num="3" id="606" />
+<TGConnectingPoint num="4" id="607" />
+<TGConnectingPoint num="5" id="608" />
+<TGConnectingPoint num="6" id="609" />
+<TGConnectingPoint num="7" id="610" />
+<TGConnectingPoint num="8" id="611" />
+<TGConnectingPoint num="9" id="612" />
+<extraparam>
+<attributes name="ring"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1615" id="626" >
+<father id="635" num="12" />
+<cdparam x="1250" y="378" />
+<sizeparam width="96" height="64" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="304" minY="0" maxY="476" />
+<infoparam name="TGComponent" value="mirror1" />
+<TGConnectingPoint num="0" id="614" />
+<TGConnectingPoint num="1" id="615" />
+<TGConnectingPoint num="2" id="616" />
+<TGConnectingPoint num="3" id="617" />
+<TGConnectingPoint num="4" id="618" />
+<TGConnectingPoint num="5" id="619" />
+<TGConnectingPoint num="6" id="620" />
+<TGConnectingPoint num="7" id="621" />
+<TGConnectingPoint num="8" id="622" />
+<TGConnectingPoint num="9" id="623" />
+<TGConnectingPoint num="10" id="624" />
+<TGConnectingPoint num="11" id="625" />
+<extraparam>
+<attributes value="0.5" unit="S" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1631" id="645" >
+<father id="654" num="7" />
+<cdparam x="250" y="330" />
+<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-8" maxX="1300" minY="-8" maxY="628" />
+<infoparam name="TGComponent" value="hook" />
+<TGConnectingPoint num="0" id="636" />
+<TGConnectingPoint num="1" id="637" />
+<TGConnectingPoint num="2" id="638" />
+<TGConnectingPoint num="3" id="639" />
+<TGConnectingPoint num="4" id="640" />
+<TGConnectingPoint num="5" id="641" />
+<TGConnectingPoint num="6" id="642" />
+<TGConnectingPoint num="7" id="643" />
+<TGConnectingPoint num="8" id="644" />
+<extraparam>
+<attributes name="hook" type="bool" origin="in"/>
+</extraparam>
+</SUBCOMPONENT>
+
+
+</ELNDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/modeling/eln_in_tdf.xml b/modeling/eln_in_tdf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..86bc9645d8c4c935698165cbe10e27e0909d8d5f
--- /dev/null
+++ b/modeling/eln_in_tdf.xml
@@ -0,0 +1,385 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<TURTLEGMODELING version="1.0beta">
+
+<Modeling type="ELN" nameTab="ELN" >
+<ELNDiagramPanel name="ELN Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" zoom="1.0" >
+<CONNECTOR type="1610" id="3" >
+<cdparam x="731" y="422" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="706" y="416" id="125" />
+<P2  x="738" y="351" id="82" />
+<Point x="706" y="351" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2" >
+<father id="3" num="0" />
+<cdparam x="706" y="351" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="6" >
+<cdparam x="365" y="401" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="386" y="398" id="105" />
+<P2  x="346" y="351" id="94" />
+<Point x="386" y="351" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="5" >
+<father id="6" num="0" />
+<cdparam x="386" y="351" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="4" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="7" >
+<cdparam x="603" y="427" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="568" y="429" id="115" />
+<P2  x="568" y="391" id="60" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="8" >
+<cdparam x="1050" y="298" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="out" />
+<P1  x="933" y="306" id="37" />
+<P2  x="838" y="306" id="83" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="9" >
+<cdparam x="1070" y="298" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="out" />
+<P1  x="953" y="306" id="38" />
+<P2  x="1018" y="306" id="17" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="10" >
+<cdparam x="174" y="306" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="in" />
+<P1  x="174" y="306" id="48" />
+<P2  x="246" y="306" id="95" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="11" >
+<cdparam x="100" y="307" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="in" />
+<P1  x="100" y="306" id="27" />
+<P2  x="154" y="306" id="49" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="12" >
+<cdparam x="554" y="276" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n2" />
+<P1  x="568" y="291" id="59" />
+<P2  x="568" y="261" id="13" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="15" >
+<cdparam x="828" y="260" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n2" />
+<P1  x="738" y="261" id="81" />
+<P2  x="496" y="261" id="71" />
+<Point x="568" y="261" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="14" >
+<father id="15" num="0" />
+<cdparam x="568" y="261" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="13" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="16" >
+<cdparam x="396" y="259" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="n1" />
+<P1  x="396" y="261" id="70" />
+<P2  x="346" y="261" id="93" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1627" id="152" >
+<cdparam x="90" y="72" />
+<sizeparam width="938" height="529" 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="TGComponent" value="cluster" />
+<TGConnectingPoint num="0" id="144" />
+<TGConnectingPoint num="1" id="145" />
+<TGConnectingPoint num="2" id="146" />
+<TGConnectingPoint num="3" id="147" />
+<TGConnectingPoint num="4" id="148" />
+<TGConnectingPoint num="5" id="149" />
+<TGConnectingPoint num="6" id="150" />
+<TGConnectingPoint num="7" id="151" />
+</COMPONENT>
+<SUBCOMPONENT type="1632" id="26" >
+<father id="152" num="0" />
+<cdparam x="1018" y="296" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="928" minY="-10" maxY="519" />
+<infoparam name="TGComponent" value="out" />
+<TGConnectingPoint num="0" id="17" />
+<TGConnectingPoint num="1" id="18" />
+<TGConnectingPoint num="2" id="19" />
+<TGConnectingPoint num="3" id="20" />
+<TGConnectingPoint num="4" id="21" />
+<TGConnectingPoint num="5" id="22" />
+<TGConnectingPoint num="6" id="23" />
+<TGConnectingPoint num="7" id="24" />
+<TGConnectingPoint num="8" id="25" />
+<extraparam>
+<attributes name="out" type="double" origin="out"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1632" id="36" >
+<father id="152" num="1" />
+<cdparam x="80" y="296" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="928" minY="-10" maxY="519" />
+<infoparam name="TGComponent" value="in" />
+<TGConnectingPoint num="0" id="27" />
+<TGConnectingPoint num="1" id="28" />
+<TGConnectingPoint num="2" id="29" />
+<TGConnectingPoint num="3" id="30" />
+<TGConnectingPoint num="4" id="31" />
+<TGConnectingPoint num="5" id="32" />
+<TGConnectingPoint num="6" id="33" />
+<TGConnectingPoint num="7" id="34" />
+<TGConnectingPoint num="8" id="35" />
+<extraparam>
+<attributes name="in" type="double" origin="in"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1623" id="143" >
+<father id="152" num="2" />
+<cdparam x="164" y="136" />
+<sizeparam width="779" height="419" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="159" minY="0" maxY="110" />
+<infoparam name="TGComponent" value="eln_in_tdf" />
+<TGConnectingPoint num="0" id="135" />
+<TGConnectingPoint num="1" id="136" />
+<TGConnectingPoint num="2" id="137" />
+<TGConnectingPoint num="3" id="138" />
+<TGConnectingPoint num="4" id="139" />
+<TGConnectingPoint num="5" id="140" />
+<TGConnectingPoint num="6" id="141" />
+<TGConnectingPoint num="7" id="142" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1629" id="47" >
+<father id="143" num="0" />
+<cdparam x="933" y="296" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="769" minY="-10" maxY="409" />
+<infoparam name="TGComponent" value="out" />
+<TGConnectingPoint num="0" id="37" />
+<TGConnectingPoint num="1" id="38" />
+<TGConnectingPoint num="2" id="39" />
+<TGConnectingPoint num="3" id="40" />
+<TGConnectingPoint num="4" id="41" />
+<TGConnectingPoint num="5" id="42" />
+<TGConnectingPoint num="6" id="43" />
+<TGConnectingPoint num="7" id="44" />
+<TGConnectingPoint num="8" id="45" />
+<TGConnectingPoint num="9" id="46" />
+<extraparam>
+<attributes name="out" type="double" origin="out"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1629" id="58" >
+<father id="143" num="1" />
+<cdparam x="154" y="296" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="769" minY="-10" maxY="409" />
+<infoparam name="TGComponent" value="in" />
+<TGConnectingPoint num="0" id="48" />
+<TGConnectingPoint num="1" id="49" />
+<TGConnectingPoint num="2" id="50" />
+<TGConnectingPoint num="3" id="51" />
+<TGConnectingPoint num="4" id="52" />
+<TGConnectingPoint num="5" id="53" />
+<TGConnectingPoint num="6" id="54" />
+<TGConnectingPoint num="7" id="55" />
+<TGConnectingPoint num="8" id="56" />
+<TGConnectingPoint num="9" id="57" />
+<extraparam>
+<attributes name="in" type="double" origin="in"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1612" id="69" >
+<father id="143" num="2" />
+<cdparam x="548" y="291" />
+<sizeparam width="40" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="739" minY="0" maxY="319" />
+<infoparam name="TGComponent" value="c" />
+<TGConnectingPoint num="0" id="59" />
+<TGConnectingPoint num="1" id="60" />
+<TGConnectingPoint num="2" id="61" />
+<TGConnectingPoint num="3" id="62" />
+<TGConnectingPoint num="4" id="63" />
+<TGConnectingPoint num="5" id="64" />
+<TGConnectingPoint num="6" id="65" />
+<TGConnectingPoint num="7" id="66" />
+<TGConnectingPoint num="8" id="67" />
+<TGConnectingPoint num="9" id="68" />
+<extraparam>
+<attributes value="1.0" unit0="F" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="80" >
+<father id="143" num="3" />
+<cdparam x="396" y="251" />
+<sizeparam width="100" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="679" minY="0" maxY="399" />
+<infoparam name="TGComponent" value="r" />
+<TGConnectingPoint num="0" id="70" />
+<TGConnectingPoint num="1" id="71" />
+<TGConnectingPoint num="2" id="72" />
+<TGConnectingPoint num="3" id="73" />
+<TGConnectingPoint num="4" id="74" />
+<TGConnectingPoint num="5" id="75" />
+<TGConnectingPoint num="6" id="76" />
+<TGConnectingPoint num="7" id="77" />
+<TGConnectingPoint num="8" id="78" />
+<TGConnectingPoint num="9" id="79" />
+<extraparam>
+<attributes value="1.0" unit="&#x3A9;" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1621" id="92" >
+<father id="143" num="4" />
+<cdparam x="738" y="256" />
+<sizeparam width="100" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="679" minY="0" maxY="319" />
+<infoparam name="TGComponent" value="vout" />
+<TGConnectingPoint num="0" id="81" />
+<TGConnectingPoint num="1" id="82" />
+<TGConnectingPoint num="2" id="83" />
+<TGConnectingPoint num="3" id="84" />
+<TGConnectingPoint num="4" id="85" />
+<TGConnectingPoint num="5" id="86" />
+<TGConnectingPoint num="6" id="87" />
+<TGConnectingPoint num="7" id="88" />
+<TGConnectingPoint num="8" id="89" />
+<TGConnectingPoint num="9" id="90" />
+<TGConnectingPoint num="10" id="91" />
+<extraparam>
+<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1625" id="104" >
+<father id="143" num="5" />
+<cdparam x="246" y="256" />
+<sizeparam width="100" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="679" minY="0" maxY="319" />
+<infoparam name="TGComponent" value="vin" />
+<TGConnectingPoint num="0" id="93" />
+<TGConnectingPoint num="1" id="94" />
+<TGConnectingPoint num="2" id="95" />
+<TGConnectingPoint num="3" id="96" />
+<TGConnectingPoint num="4" id="97" />
+<TGConnectingPoint num="5" id="98" />
+<TGConnectingPoint num="6" id="99" />
+<TGConnectingPoint num="7" id="100" />
+<TGConnectingPoint num="8" id="101" />
+<TGConnectingPoint num="9" id="102" />
+<TGConnectingPoint num="10" id="103" />
+<extraparam>
+<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="114" >
+<father id="143" num="6" />
+<cdparam x="366" y="398" />
+<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="739" minY="0" maxY="379" />
+<infoparam name="TGComponent" value="gnd" />
+<TGConnectingPoint num="0" id="105" />
+<TGConnectingPoint num="1" id="106" />
+<TGConnectingPoint num="2" id="107" />
+<TGConnectingPoint num="3" id="108" />
+<TGConnectingPoint num="4" id="109" />
+<TGConnectingPoint num="5" id="110" />
+<TGConnectingPoint num="6" id="111" />
+<TGConnectingPoint num="7" id="112" />
+<TGConnectingPoint num="8" id="113" />
+<extraparam>
+<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="124" >
+<father id="143" num="7" />
+<cdparam x="548" y="429" />
+<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="739" minY="0" maxY="379" />
+<infoparam name="TGComponent" value="gnd" />
+<TGConnectingPoint num="0" id="115" />
+<TGConnectingPoint num="1" id="116" />
+<TGConnectingPoint num="2" id="117" />
+<TGConnectingPoint num="3" id="118" />
+<TGConnectingPoint num="4" id="119" />
+<TGConnectingPoint num="5" id="120" />
+<TGConnectingPoint num="6" id="121" />
+<TGConnectingPoint num="7" id="122" />
+<TGConnectingPoint num="8" id="123" />
+<extraparam>
+<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="134" >
+<father id="143" num="8" />
+<cdparam x="686" y="416" />
+<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="739" minY="0" maxY="379" />
+<infoparam name="TGComponent" value="gnd" />
+<TGConnectingPoint num="0" id="125" />
+<TGConnectingPoint num="1" id="126" />
+<TGConnectingPoint num="2" id="127" />
+<TGConnectingPoint num="3" id="128" />
+<TGConnectingPoint num="4" id="129" />
+<TGConnectingPoint num="5" id="130" />
+<TGConnectingPoint num="6" id="131" />
+<TGConnectingPoint num="7" id="132" />
+<TGConnectingPoint num="8" id="133" />
+<extraparam>
+<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+
+</ELNDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/modeling/modelsForTestingTTool/testCP.xml b/modeling/modelsForTestingTTool/testCP.xml
index 6708dbc59e11af7fc5362d1436b3a2838e676520..0a7b71ff2f5e7a746f91a01f7d3b457bfe55f60e 100644
--- a/modeling/modelsForTestingTTool/testCP.xml
+++ b/modeling/modelsForTestingTTool/testCP.xml
@@ -1955,7 +1955,7 @@
 <TGConnectingPoint num="9" id="1158" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="1164" >
+<!-- COMPONENT type="1508" id="1164" >
 <cdparam x="304" y="202" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -1965,7 +1965,7 @@
 <TGConnectingPoint num="1" id="1161" />
 <TGConnectingPoint num="2" id="1162" />
 <TGConnectingPoint num="3" id="1163" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1175" >
 <cdparam x="122" y="359" />
@@ -2092,7 +2092,7 @@
 <TGConnectingPoint num="9" id="1225" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="1230" >
+<!-- CONNECTOR type="1501" id="1230" >
 <cdparam x="466" y="506" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Zama to junction1" value="null" />
@@ -2125,7 +2125,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1231" >
 <cdparam x="178" y="475" />
@@ -2193,7 +2193,7 @@
 <P2  x="319" y="91" id="1203" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1239" >
+<!-- CONNECTOR type="1501" id="1239" >
 <cdparam x="319" y="136" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from lala to junction1" value="null" />
@@ -2208,7 +2208,7 @@
 <P1  x="319" y="232" id="1163" />
 <P2  x="319" y="288" id="1190" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1241" >
 <cdparam x="319" y="488" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -2290,7 +2290,7 @@
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="1266" >
+<!-- COMPONENT type="1508" id="1266" >
 <cdparam x="755" y="345" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2300,7 +2300,7 @@
 <TGConnectingPoint num="1" id="1263" />
 <TGConnectingPoint num="2" id="1264" />
 <TGConnectingPoint num="3" id="1265" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1277" >
 <cdparam x="884" y="503" />
@@ -2378,7 +2378,7 @@
 <TGConnectingPoint num="13" id="1313" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="1319" >
+<!-- COMPONENT type="1508" id="1319" >
 <cdparam x="298" y="342" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2388,7 +2388,7 @@
 <TGConnectingPoint num="1" id="1316" />
 <TGConnectingPoint num="2" id="1317" />
 <TGConnectingPoint num="3" id="1318" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1500" id="1335" >
 <cdparam x="298" y="429" />
@@ -2569,7 +2569,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1395" >
+<!-- CONNECTOR type="1501" id="1395" >
 <cdparam x="946" y="543" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ExecuteTransfer2 to junction5" value="null" />
@@ -2602,7 +2602,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1397" >
 <cdparam x="810" y="452" />
@@ -2621,7 +2621,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1398" >
+<!-- CONNECTOR type="1501" id="1398" >
 <cdparam x="770" y="375" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from junction5 to choice5" value="null" />
@@ -2670,7 +2670,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1405" >
 <cdparam x="273" y="444" />
@@ -2689,7 +2689,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1406" >
+<!-- CONNECTOR type="1501" id="1406" >
 <cdparam x="313" y="372" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from junction2 to choice2" value="null" />
@@ -2704,7 +2704,7 @@
 <P1  x="313" y="294" id="1376" />
 <P2  x="313" y="342" id="1315" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1408" >
 <cdparam x="556" y="182" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -2830,7 +2830,7 @@
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="1456" >
+<!-- COMPONENT type="1508" id="1456" >
 <cdparam x="797" y="201" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2840,7 +2840,7 @@
 <TGConnectingPoint num="1" id="1453" />
 <TGConnectingPoint num="2" id="1454" />
 <TGConnectingPoint num="3" id="1455" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1467" >
 <cdparam x="756" y="89" />
@@ -2940,7 +2940,7 @@
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="1510" >
+<!-- COMPONENT type="1508" id="1510" >
 <cdparam x="315" y="188" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2950,7 +2950,7 @@
 <TGConnectingPoint num="1" id="1507" />
 <TGConnectingPoint num="2" id="1508" />
 <TGConnectingPoint num="3" id="1509" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1521" >
 <cdparam x="274" y="91" />
@@ -2979,7 +2979,7 @@
 <TGConnectingPoint num="0" id="1522" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="1527" >
+<!-- CONNECTOR type="1501" id="1527" >
 <cdparam x="205" y="382" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ExecuteTransfer3 to junction6" value="null" />
@@ -3012,7 +3012,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1529" >
 <cdparam x="290" y="291" />
@@ -3092,14 +3092,14 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1537" >
+<!-- CONNECTOR type="1501" id="1537" >
 <cdparam x="330" y="131" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ProgramTransfer3 to junction6" value="null" />
 <P1  x="330" y="131" id="1512" />
 <P2  x="330" y="188" id="1506" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1538" >
 <cdparam x="330" y="45" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -3108,7 +3108,7 @@
 <P2  x="330" y="86" id="1511" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1542" >
+<!-- CONNECTOR type="1501" id="1542" >
 <cdparam x="979" y="404" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ExecuteTransfer4 to junction7" value="null" />
@@ -3141,7 +3141,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1544" >
 <cdparam x="852" y="300" />
@@ -3177,7 +3177,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1547" >
+<!-- CONNECTOR type="1501" id="1547" >
 <cdparam x="812" y="231" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from junction7 to choice7" value="null" />
@@ -3192,7 +3192,7 @@
 <P1  x="812" y="129" id="1458" />
 <P2  x="812" y="201" id="1452" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1549" >
 <cdparam x="702" y="402" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -3201,14 +3201,14 @@
 <P2  x="702" y="444" id="1412" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1550" >
+<!-- CONNECTOR type="1501" id="1550" >
 <cdparam x="330" y="218" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from junction6 to choice6" value="null" />
 <P1  x="330" y="218" id="1509" />
 <P2  x="330" y="266" id="1493" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
diff --git a/modeling/modelsForTestingTTool/testCP2.xml b/modeling/modelsForTestingTTool/testCP2.xml
index 6bda7a93bfdb78ed625cb2ee83577f6ce1bf2bd1..6dac72745dfdbfa089ef9cc0fa322b2f8ae843ed 100644
--- a/modeling/modelsForTestingTTool/testCP2.xml
+++ b/modeling/modelsForTestingTTool/testCP2.xml
@@ -1953,7 +1953,7 @@
 <TGConnectingPoint num="9" id="1135" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="1141" >
+<!-- COMPONENT type="1508" id="1141" >
 <cdparam x="304" y="202" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -1963,7 +1963,7 @@
 <TGConnectingPoint num="1" id="1138" />
 <TGConnectingPoint num="2" id="1139" />
 <TGConnectingPoint num="3" id="1140" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1152" >
 <cdparam x="122" y="359" />
@@ -2090,7 +2090,7 @@
 <TGConnectingPoint num="9" id="1202" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="1207" >
+<!-- CONNECTOR type="1501" id="1207" >
 <cdparam x="466" y="506" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Zama to junction1" value="null" />
@@ -2123,7 +2123,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1208" >
 <cdparam x="178" y="475" />
@@ -2191,7 +2191,7 @@
 <P2  x="319" y="91" id="1180" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1216" >
+<!-- CONNECTOR type="1501" id="1216" >
 <cdparam x="319" y="136" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from lala to junction1" value="null" />
@@ -2206,7 +2206,7 @@
 <P1  x="319" y="232" id="1140" />
 <P2  x="319" y="288" id="1167" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1218" >
 <cdparam x="319" y="488" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -2288,7 +2288,7 @@
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="1243" >
+<!-- COMPONENT type="1508" id="1243" >
 <cdparam x="755" y="345" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2298,7 +2298,7 @@
 <TGConnectingPoint num="1" id="1240" />
 <TGConnectingPoint num="2" id="1241" />
 <TGConnectingPoint num="3" id="1242" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1254" >
 <cdparam x="890" y="503" />
@@ -2376,7 +2376,7 @@
 <TGConnectingPoint num="13" id="1290" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="1296" >
+<!-- COMPONENT type="1508" id="1296" >
 <cdparam x="298" y="342" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2386,7 +2386,7 @@
 <TGConnectingPoint num="1" id="1293" />
 <TGConnectingPoint num="2" id="1294" />
 <TGConnectingPoint num="3" id="1295" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1500" id="1312" >
 <cdparam x="298" y="429" />
@@ -2567,7 +2567,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1372" >
+<!-- CONNECTOR type="1501" id="1372" >
 <cdparam x="946" y="543" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ExecuteTransfer2 to junction5" value="null" />
@@ -2600,7 +2600,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1374" >
 <cdparam x="810" y="452" />
@@ -2619,7 +2619,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1375" >
+<!-- CONNECTOR type="1501" id="1375" >
 <cdparam x="770" y="375" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from junction5 to choice5" value="null" />
@@ -2668,7 +2668,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1382" >
 <cdparam x="273" y="444" />
@@ -2687,7 +2687,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1383" >
+<!-- CONNECTOR type="1501" id="1383" >
 <cdparam x="313" y="372" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from junction2 to choice2" value="null" />
@@ -2702,7 +2702,7 @@
 <P1  x="313" y="294" id="1353" />
 <P2  x="313" y="342" id="1292" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1385" >
 <cdparam x="556" y="182" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -2828,7 +2828,7 @@
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="1433" >
+<!-- COMPONENT type="1508" id="1433" >
 <cdparam x="797" y="201" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2838,7 +2838,7 @@
 <TGConnectingPoint num="1" id="1430" />
 <TGConnectingPoint num="2" id="1431" />
 <TGConnectingPoint num="3" id="1432" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1444" >
 <cdparam x="756" y="89" />
@@ -2938,7 +2938,7 @@
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="1487" >
+<!-- COMPONENT type="1508" id="1487" >
 <cdparam x="315" y="188" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2948,7 +2948,7 @@
 <TGConnectingPoint num="1" id="1484" />
 <TGConnectingPoint num="2" id="1485" />
 <TGConnectingPoint num="3" id="1486" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="1498" >
 <cdparam x="274" y="91" />
@@ -2977,7 +2977,7 @@
 <TGConnectingPoint num="0" id="1499" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="1504" >
+<!-- CONNECTOR type="1501" id="1504" >
 <cdparam x="205" y="382" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ExecuteTransfer3 to junction6" value="null" />
@@ -3010,7 +3010,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1506" >
 <cdparam x="290" y="291" />
@@ -3090,14 +3090,14 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1514" >
+<!-- CONNECTOR type="1501" id="1514" >
 <cdparam x="330" y="131" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ProgramTransfer3 to junction6" value="null" />
 <P1  x="330" y="131" id="1489" />
 <P2  x="330" y="188" id="1483" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1515" >
 <cdparam x="330" y="45" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -3106,7 +3106,7 @@
 <P2  x="330" y="86" id="1488" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1519" >
+<!-- CONNECTOR type="1501" id="1519" >
 <cdparam x="979" y="404" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ExecuteTransfer4 to junction7" value="null" />
@@ -3139,7 +3139,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="1521" >
 <cdparam x="852" y="300" />
@@ -3175,7 +3175,7 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="1524" >
+<!-- CONNECTOR type="1501" id="1524" >
 <cdparam x="812" y="231" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from junction7 to choice7" value="null" />
@@ -3190,7 +3190,7 @@
 <P1  x="812" y="129" id="1435" />
 <P2  x="812" y="201" id="1429" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="1526" >
 <cdparam x="702" y="402" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -3199,14 +3199,14 @@
 <P2  x="702" y="444" id="1389" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="1527" >
+<!-- CONNECTOR type="1501" id="1527" >
 <cdparam x="330" y="218" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from junction6 to choice6" value="null" />
 <P1  x="330" y="218" id="1486" />
 <P2  x="330" y="266" id="1470" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
diff --git a/modeling/modelsForTestingTTool/testCP3.xml b/modeling/modelsForTestingTTool/testCP3.xml
index 457d7b6261bc484a5f5a86184074ce766e4351e6..d37993f618e37bf518de55a88b1f2535f6b1068c 100644
--- a/modeling/modelsForTestingTTool/testCP3.xml
+++ b/modeling/modelsForTestingTTool/testCP3.xml
@@ -928,7 +928,7 @@
 <TGConnectingPoint num="9" id="386" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="392" >
+<!-- COMPONENT type="1508" id="392" >
 <cdparam x="302" y="198" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -938,7 +938,7 @@
 <TGConnectingPoint num="1" id="389" />
 <TGConnectingPoint num="2" id="390" />
 <TGConnectingPoint num="3" id="391" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="403" >
 <cdparam x="114" y="497" />
@@ -1065,14 +1065,14 @@
 <TGConnectingPoint num="9" id="453" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="455" >
+<!-- CONNECTOR type="1501" id="455" >
 <cdparam x="319" y="232" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="317" y="228" id="391" />
 <P2  x="317" y="252" id="340" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="456" >
 <cdparam x="160" y="280" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -1081,7 +1081,7 @@
 <P2  x="317" y="426" id="418" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="460" >
+<!-- CONNECTOR type="1501" id="460" >
 <cdparam x="466" y="506" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Zama to junction1" value="null" />
@@ -1114,7 +1114,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="461" >
 <cdparam x="176" y="613" />
@@ -1182,14 +1182,14 @@
 <P2  x="317" y="87" id="431" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="469" >
+<!-- CONNECTOR type="1501" id="469" >
 <cdparam x="317" y="132" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from lala to junction1" value="null" />
 <P1  x="317" y="132" id="432" />
 <P2  x="317" y="198" id="388" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="470" >
 <cdparam x="317" y="626" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -1323,7 +1323,7 @@
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="518" >
+<!-- COMPONENT type="1508" id="518" >
 <cdparam x="797" y="201" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -1333,7 +1333,7 @@
 <TGConnectingPoint num="1" id="515" />
 <TGConnectingPoint num="2" id="516" />
 <TGConnectingPoint num="3" id="517" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="529" >
 <cdparam x="750" y="89" />
@@ -1433,7 +1433,7 @@
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="572" >
+<!-- COMPONENT type="1508" id="572" >
 <cdparam x="315" y="188" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -1443,7 +1443,7 @@
 <TGConnectingPoint num="1" id="569" />
 <TGConnectingPoint num="2" id="570" />
 <TGConnectingPoint num="3" id="571" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="583" >
 <cdparam x="268" y="91" />
@@ -1472,7 +1472,7 @@
 <TGConnectingPoint num="0" id="584" />
 </COMPONENT>
 
-<CONNECTOR type="1501" id="589" >
+<!-- CONNECTOR type="1501" id="589" >
 <cdparam x="979" y="404" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -1505,9 +1505,9 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
-<CONNECTOR type="1501" id="593" >
+<!-- CONNECTOR type="1501" id="593" >
 <cdparam x="205" y="382" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ExecuteTransfer3 to junction6" value="null" />
@@ -1540,7 +1540,7 @@
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
-</SUBCOMPONENT>
+</SUBCOMPONENT-->
 
 <CONNECTOR type="1501" id="595" >
 <cdparam x="290" y="291" />
@@ -1620,14 +1620,14 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="1501" id="603" >
+<!-- CONNECTOR type="1501" id="603" >
 <cdparam x="330" y="131" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ProgramTransfer3 to junction6" value="null" />
 <P1  x="330" y="131" id="574" />
 <P2  x="330" y="188" id="568" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="604" >
 <cdparam x="330" y="45" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -1678,14 +1678,14 @@
 <P2  x="812" y="275" id="501" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="610" >
+<!-- CONNECTOR type="1501" id="610" >
 <cdparam x="812" y="129" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from ProgramTransfer4 to junction7" value="null" />
 <P1  x="812" y="129" id="520" />
 <P2  x="812" y="201" id="514" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 <CONNECTOR type="1501" id="611" >
 <cdparam x="702" y="402" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
@@ -1694,14 +1694,14 @@
 <P2  x="702" y="444" id="474" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="1501" id="612" >
+<!-- CONNECTOR type="1501" id="612" >
 <cdparam x="330" y="218" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from junction6 to choice6" value="null" />
 <P1  x="330" y="218" id="571" />
 <P2  x="330" y="266" id="555" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
+</CONNECTOR-->
 
 </CommunicationPatternDiagramPanel>
 
diff --git a/modeling/monoprocessor.xml b/modeling/monoprocessor.xml
deleted file mode 100644
index 47361466534e6031df4ea0b2ec9bf84a3e3ac13a..0000000000000000000000000000000000000000
--- a/modeling/monoprocessor.xml
+++ /dev/null
@@ -1,742 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<TURTLEGMODELING version="1.0beta">
-
-<Modeling type="AVATAR Design" nameTab="AVATAR Design" >
-<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
-<MainCode value="void __user_init() {"/>
-<MainCode value="}"/>
-<Optimized value="true" />
-<Validated value="" />
-<Ignored value="" />
-
-<COMPONENT type="5000" id="25" >
-<cdparam x="117" y="236" />
-<sizeparam width="250" height="200" 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="Block0" />
-<TGConnectingPoint num="0" id="1" />
-<TGConnectingPoint num="1" id="2" />
-<TGConnectingPoint num="2" id="3" />
-<TGConnectingPoint num="3" id="4" />
-<TGConnectingPoint num="4" id="5" />
-<TGConnectingPoint num="5" id="6" />
-<TGConnectingPoint num="6" id="7" />
-<TGConnectingPoint num="7" id="8" />
-<TGConnectingPoint num="8" id="9" />
-<TGConnectingPoint num="9" id="10" />
-<TGConnectingPoint num="10" id="11" />
-<TGConnectingPoint num="11" id="12" />
-<TGConnectingPoint num="12" id="13" />
-<TGConnectingPoint num="13" id="14" />
-<TGConnectingPoint num="14" id="15" />
-<TGConnectingPoint num="15" id="16" />
-<TGConnectingPoint num="16" id="17" />
-<TGConnectingPoint num="17" id="18" />
-<TGConnectingPoint num="18" id="19" />
-<TGConnectingPoint num="19" id="20" />
-<TGConnectingPoint num="20" id="21" />
-<TGConnectingPoint num="21" id="22" />
-<TGConnectingPoint num="22" id="23" />
-<TGConnectingPoint num="23" id="24" />
-<extraparam>
-<blockType data="block" color="-4072719" />
-<CryptoBlock value="false" />
-</extraparam>
-</COMPONENT>
-
-
-</AVATARBlockDiagramPanel>
-
-<AVATARStateMachineDiagramPanel name="Block0" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="32" >
-<cdparam x="460" y="115" />
-<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="31" />
-<P1  x="460" y="115" id="48" />
-<P2  x="456" y="164" id="40" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="30" >
-<father id="32" num="0" />
-<cdparam x="458" y="139" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="26" />
-<TGConnectingPoint num="1" id="27" />
-<TGConnectingPoint num="2" id="28" />
-<TGConnectingPoint num="3" id="29" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-</extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="39" >
-<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="38" />
-<P1  x="407" y="70" id="83" />
-<P2  x="410" y="71" id="62" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="37" >
-<father id="39" num="0" />
-<cdparam x="407" y="110" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="33" />
-<TGConnectingPoint num="1" id="34" />
-<TGConnectingPoint num="2" id="35" />
-<TGConnectingPoint num="3" id="36" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-</extraparam>
-</SUBCOMPONENT>
-
-<COMPONENT type="5101" id="41" >
-<cdparam x="446" y="169" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
-<TGConnectingPoint num="0" id="40" />
-</COMPONENT>
-
-<COMPONENT type="5106" id="82" >
-<cdparam x="410" y="65" />
-<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="state0" />
-<TGConnectingPoint num="0" id="42" />
-<TGConnectingPoint num="1" id="43" />
-<TGConnectingPoint num="2" id="44" />
-<TGConnectingPoint num="3" id="45" />
-<TGConnectingPoint num="4" id="46" />
-<TGConnectingPoint num="5" id="47" />
-<TGConnectingPoint num="6" id="48" />
-<TGConnectingPoint num="7" id="49" />
-<TGConnectingPoint num="8" id="50" />
-<TGConnectingPoint num="9" id="51" />
-<TGConnectingPoint num="10" id="52" />
-<TGConnectingPoint num="11" id="53" />
-<TGConnectingPoint num="12" id="54" />
-<TGConnectingPoint num="13" id="55" />
-<TGConnectingPoint num="14" id="56" />
-<TGConnectingPoint num="15" id="57" />
-<TGConnectingPoint num="16" id="58" />
-<TGConnectingPoint num="17" id="59" />
-<TGConnectingPoint num="18" id="60" />
-<TGConnectingPoint num="19" id="61" />
-<TGConnectingPoint num="20" id="62" />
-<TGConnectingPoint num="21" id="63" />
-<TGConnectingPoint num="22" id="64" />
-<TGConnectingPoint num="23" id="65" />
-<TGConnectingPoint num="24" id="66" />
-<TGConnectingPoint num="25" id="67" />
-<TGConnectingPoint num="26" id="68" />
-<TGConnectingPoint num="27" id="69" />
-<TGConnectingPoint num="28" id="70" />
-<TGConnectingPoint num="29" id="71" />
-<TGConnectingPoint num="30" id="72" />
-<TGConnectingPoint num="31" id="73" />
-<TGConnectingPoint num="32" id="74" />
-<TGConnectingPoint num="33" id="75" />
-<TGConnectingPoint num="34" id="76" />
-<TGConnectingPoint num="35" id="77" />
-<TGConnectingPoint num="36" id="78" />
-<TGConnectingPoint num="37" id="79" />
-<TGConnectingPoint num="38" id="80" />
-<TGConnectingPoint num="39" id="81" />
-<extraparam>
-<entryCode value="printf(&quot;Hello World! \n&quot;);" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5100" id="84" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
-<TGConnectingPoint num="0" id="83" />
-</COMPONENT>
-
-
-</AVATARStateMachineDiagramPanel>
-
-</Modeling>
-
-
-
-
-<Modeling type="ADD" nameTab="Avatar Deployment" >
-<ADDDiagramPanel name="Deployment Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
-<COMPONENT type="5365" id="109" >
-<cdparam x="1177" y="513" />
-<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="cluster1" value="cluster1" />
-<TGConnectingPoint num="0" id="85" />
-<TGConnectingPoint num="1" id="86" />
-<TGConnectingPoint num="2" id="87" />
-<TGConnectingPoint num="3" id="88" />
-<TGConnectingPoint num="4" id="89" />
-<TGConnectingPoint num="5" id="90" />
-<TGConnectingPoint num="6" id="91" />
-<TGConnectingPoint num="7" id="92" />
-<TGConnectingPoint num="8" id="93" />
-<TGConnectingPoint num="9" id="94" />
-<TGConnectingPoint num="10" id="95" />
-<TGConnectingPoint num="11" id="96" />
-<TGConnectingPoint num="12" id="97" />
-<TGConnectingPoint num="13" id="98" />
-<TGConnectingPoint num="14" id="99" />
-<TGConnectingPoint num="15" id="100" />
-<TGConnectingPoint num="16" id="101" />
-<TGConnectingPoint num="17" id="102" />
-<TGConnectingPoint num="18" id="103" />
-<TGConnectingPoint num="19" id="104" />
-<TGConnectingPoint num="20" id="105" />
-<TGConnectingPoint num="21" id="106" />
-<TGConnectingPoint num="22" id="107" />
-<TGConnectingPoint num="23" id="108" />
-<extraparam>
-<info stereotype="SystemC-AMS Cluster" nodeName="cluster1" />
-<attributes index="0" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5365" id="134" >
-<cdparam x="995" y="128" />
-<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="cluster" value="cluster" />
-<TGConnectingPoint num="0" id="110" />
-<TGConnectingPoint num="1" id="111" />
-<TGConnectingPoint num="2" id="112" />
-<TGConnectingPoint num="3" id="113" />
-<TGConnectingPoint num="4" id="114" />
-<TGConnectingPoint num="5" id="115" />
-<TGConnectingPoint num="6" id="116" />
-<TGConnectingPoint num="7" id="117" />
-<TGConnectingPoint num="8" id="118" />
-<TGConnectingPoint num="9" id="119" />
-<TGConnectingPoint num="10" id="120" />
-<TGConnectingPoint num="11" id="121" />
-<TGConnectingPoint num="12" id="122" />
-<TGConnectingPoint num="13" id="123" />
-<TGConnectingPoint num="14" id="124" />
-<TGConnectingPoint num="15" id="125" />
-<TGConnectingPoint num="16" id="126" />
-<TGConnectingPoint num="17" id="127" />
-<TGConnectingPoint num="18" id="128" />
-<TGConnectingPoint num="19" id="129" />
-<TGConnectingPoint num="20" id="130" />
-<TGConnectingPoint num="21" id="131" />
-<TGConnectingPoint num="22" id="132" />
-<TGConnectingPoint num="23" id="133" />
-<extraparam>
-<info stereotype="SystemC-AMS Cluster" nodeName="cluster" />
-<attributes index="0" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5363" id="159" >
-<cdparam x="523" y="309" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Bus0" value="name" />
-<TGConnectingPoint num="0" id="135" />
-<TGConnectingPoint num="1" id="136" />
-<TGConnectingPoint num="2" id="137" />
-<TGConnectingPoint num="3" id="138" />
-<TGConnectingPoint num="4" id="139" />
-<TGConnectingPoint num="5" id="140" />
-<TGConnectingPoint num="6" id="141" />
-<TGConnectingPoint num="7" id="142" />
-<TGConnectingPoint num="8" id="143" />
-<TGConnectingPoint num="9" id="144" />
-<TGConnectingPoint num="10" id="145" />
-<TGConnectingPoint num="11" id="146" />
-<TGConnectingPoint num="12" id="147" />
-<TGConnectingPoint num="13" id="148" />
-<TGConnectingPoint num="14" id="149" />
-<TGConnectingPoint num="15" id="150" />
-<TGConnectingPoint num="16" id="151" />
-<TGConnectingPoint num="17" id="152" />
-<TGConnectingPoint num="18" id="153" />
-<TGConnectingPoint num="19" id="154" />
-<TGConnectingPoint num="20" id="155" />
-<TGConnectingPoint num="21" id="156" />
-<TGConnectingPoint num="22" id="157" />
-<TGConnectingPoint num="23" id="158" />
-<extraparam>
-<info stereotype="VGSB" nodeName="Bus0" />
-<attributes index="0"  nbOfAttachedInitiators="0"  nbOfAttachedTargets="0"  minLatency="10"  fifoDepth="10" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5355" id="184" >
-<cdparam x="218" y="386" />
-<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Memory0" value="name" />
-<TGConnectingPoint num="0" id="160" />
-<TGConnectingPoint num="1" id="161" />
-<TGConnectingPoint num="2" id="162" />
-<TGConnectingPoint num="3" id="163" />
-<TGConnectingPoint num="4" id="164" />
-<TGConnectingPoint num="5" id="165" />
-<TGConnectingPoint num="6" id="166" />
-<TGConnectingPoint num="7" id="167" />
-<TGConnectingPoint num="8" id="168" />
-<TGConnectingPoint num="9" id="169" />
-<TGConnectingPoint num="10" id="170" />
-<TGConnectingPoint num="11" id="171" />
-<TGConnectingPoint num="12" id="172" />
-<TGConnectingPoint num="13" id="173" />
-<TGConnectingPoint num="14" id="174" />
-<TGConnectingPoint num="15" id="175" />
-<TGConnectingPoint num="16" id="176" />
-<TGConnectingPoint num="17" id="177" />
-<TGConnectingPoint num="18" id="178" />
-<TGConnectingPoint num="19" id="179" />
-<TGConnectingPoint num="20" id="180" />
-<TGConnectingPoint num="21" id="181" />
-<TGConnectingPoint num="22" id="182" />
-<TGConnectingPoint num="23" id="183" />
-<extraparam>
-<info stereotype="RAM" nodeName="Memory0" />
-<attributes byteDataSize="1048576"  index="0"  processCode="" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5354" id="209" >
-<cdparam x="639" y="474" />
-<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="TTY0" value="name" />
-<TGConnectingPoint num="0" id="185" />
-<TGConnectingPoint num="1" id="186" />
-<TGConnectingPoint num="2" id="187" />
-<TGConnectingPoint num="3" id="188" />
-<TGConnectingPoint num="4" id="189" />
-<TGConnectingPoint num="5" id="190" />
-<TGConnectingPoint num="6" id="191" />
-<TGConnectingPoint num="7" id="192" />
-<TGConnectingPoint num="8" id="193" />
-<TGConnectingPoint num="9" id="194" />
-<TGConnectingPoint num="10" id="195" />
-<TGConnectingPoint num="11" id="196" />
-<TGConnectingPoint num="12" id="197" />
-<TGConnectingPoint num="13" id="198" />
-<TGConnectingPoint num="14" id="199" />
-<TGConnectingPoint num="15" id="200" />
-<TGConnectingPoint num="16" id="201" />
-<TGConnectingPoint num="17" id="202" />
-<TGConnectingPoint num="18" id="203" />
-<TGConnectingPoint num="19" id="204" />
-<TGConnectingPoint num="20" id="205" />
-<TGConnectingPoint num="21" id="206" />
-<TGConnectingPoint num="22" id="207" />
-<TGConnectingPoint num="23" id="208" />
-<extraparam>
-<info stereotype="TTY" nodeName="TTY0" />
-<attributes index="0" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5351" id="243" >
-<cdparam x="113" y="44" />
-<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU0" value="name" />
-<TGConnectingPoint num="0" id="219" />
-<TGConnectingPoint num="1" id="220" />
-<TGConnectingPoint num="2" id="221" />
-<TGConnectingPoint num="3" id="222" />
-<TGConnectingPoint num="4" id="223" />
-<TGConnectingPoint num="5" id="224" />
-<TGConnectingPoint num="6" id="225" />
-<TGConnectingPoint num="7" id="226" />
-<TGConnectingPoint num="8" id="227" />
-<TGConnectingPoint num="9" id="228" />
-<TGConnectingPoint num="10" id="229" />
-<TGConnectingPoint num="11" id="230" />
-<TGConnectingPoint num="12" id="231" />
-<TGConnectingPoint num="13" id="232" />
-<TGConnectingPoint num="14" id="233" />
-<TGConnectingPoint num="15" id="234" />
-<TGConnectingPoint num="16" id="235" />
-<TGConnectingPoint num="17" id="236" />
-<TGConnectingPoint num="18" id="237" />
-<TGConnectingPoint num="19" id="238" />
-<TGConnectingPoint num="20" id="239" />
-<TGConnectingPoint num="21" id="240" />
-<TGConnectingPoint num="22" id="241" />
-<TGConnectingPoint num="23" id="242" />
-<extraparam>
-<info stereotype="CPU" nodeName="CPU0" />
-<attributes nbOfIrq="6"  iCacheWays="1"  iCacheSets="8"  iCacheWords="4"  dCacheWays="1"  dCacheSets="8"  dCacheWords="4" />
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="5352" id="218" >
-<father id="243" num="0" />
-<cdparam x="172" y="134" />
-<sizeparam width="176" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="74" minY="0" maxY="160" />
-<infoparam name="TGComponent" value="AVATAR Design::Block0" />
-<TGConnectingPoint num="0" id="210" />
-<TGConnectingPoint num="1" id="211" />
-<TGConnectingPoint num="2" id="212" />
-<TGConnectingPoint num="3" id="213" />
-<TGConnectingPoint num="4" id="214" />
-<TGConnectingPoint num="5" id="215" />
-<TGConnectingPoint num="6" id="216" />
-<TGConnectingPoint num="7" id="217" />
-<extraparam>
-<info value="AVATAR Design::Block0" taskName="Block0" referenceTaskName="AVATAR Design" />
-</extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5350" id="244" >
-<cdparam x="1177" y="563" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="1177" y="563" id="95" />
-<P2  x="773" y="346" id="148" />
-<AutomaticDrawing  data="true" />
-<extraparam>
-<spy value="false" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5350" id="245" >
-<cdparam x="1006" y="263" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="995" y="178" id="120" />
-<P2  x="773" y="309" id="137" />
-<AutomaticDrawing  data="true" />
-<extraparam>
-<spy value="false" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5350" id="246" >
-<cdparam x="701" y="474" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="701" y="474" id="193" />
-<P2  x="648" y="359" id="141" />
-<AutomaticDrawing  data="true" />
-<extraparam>
-<spy value="false" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5350" id="247" >
-<cdparam x="418" y="436" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="418" y="436" id="171" />
-<P2  x="523" y="359" id="140" />
-<AutomaticDrawing  data="true" />
-<extraparam>
-<spy value="false" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5350" id="248" >
-<cdparam x="300" y="244" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="300" y="244" id="234" />
-<P2  x="523" y="309" id="135" />
-<AutomaticDrawing  data="true" />
-<extraparam>
-<spy value="false" />
-</extraparam>
-</CONNECTOR>
-
-</ADDDiagramPanel>
-
-</Modeling>
-
-
-
-
-<Modeling type="SystemC-AMS" nameTab="SystemC_AMS" >
-<SysCAMSComponentTaskDiagramPanel name="SystemC-AMS Component Diagram" minX="10" maxX="2500" minY="10" maxY="1500" TDF="true" DE="true" zoom="1.0" >
-<CONNECTOR type="1601" id="386" >
-<cdparam x="681" y="329" />
-<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="681" y="329" id="291" />
-<P2  x="572" y="324" id="377" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="1601" id="250" >
-<cdparam x="733" y="410" />
-<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="811" y="410" id="281" />
-<P2  x="816" y="455" id="310" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="1601" id="251" >
-<cdparam x="860" y="449" />
-<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="907" y="333" id="271" />
-<P2  x="1232" y="447" id="252" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<COMPONENT type="1608" id="270" >
-<cdparam x="1245" y="364" />
-<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 - Block GPIO2VCI" value="Block_GPIO2VCI" />
-<TGConnectingPoint num="0" id="262" />
-<TGConnectingPoint num="1" id="263" />
-<TGConnectingPoint num="2" id="264" />
-<TGConnectingPoint num="3" id="265" />
-<TGConnectingPoint num="4" id="266" />
-<TGConnectingPoint num="5" id="267" />
-<TGConnectingPoint num="6" id="268" />
-<TGConnectingPoint num="7" id="269" />
-</COMPONENT>
-<SUBCOMPONENT type="1605" id="261" >
-<father id="270" num="0" />
-<cdparam x="1232" y="434" />
-<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 - Port DE" value="in" />
-<TGConnectingPoint num="0" id="252" />
-<TGConnectingPoint num="1" id="253" />
-<TGConnectingPoint num="2" id="254" />
-<TGConnectingPoint num="3" id="255" />
-<TGConnectingPoint num="4" id="256" />
-<TGConnectingPoint num="5" id="257" />
-<TGConnectingPoint num="6" id="258" />
-<TGConnectingPoint num="7" id="259" />
-<TGConnectingPoint num="8" id="260" />
-<extraparam>
-<Prop commName="in" commType="0" origin="0" type="int" sensitive="false" sensitive_method="positive" />
-</extraparam>
-</SUBCOMPONENT>
-
-<COMPONENT type="1607" id="356" >
-<cdparam x="303" y="181" />
-<sizeparam width="808" height="458" 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 - Cluster" value="cluster" />
-<TGConnectingPoint num="0" id="348" />
-<TGConnectingPoint num="1" id="349" />
-<TGConnectingPoint num="2" id="350" />
-<TGConnectingPoint num="3" id="351" />
-<TGConnectingPoint num="4" id="352" />
-<TGConnectingPoint num="5" id="353" />
-<TGConnectingPoint num="6" id="354" />
-<TGConnectingPoint num="7" id="355" />
-</COMPONENT>
-<SUBCOMPONENT type="1603" id="358" >
-<father id="356" num="0" />
-<cdparam x="359" y="277" />
-<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="608" minY="0" maxY="308" />
-<infoparam name="Primitive component - Block DE" value="Block_DE_0" />
-<TGConnectingPoint num="0" id="359" />
-<TGConnectingPoint num="1" id="360" />
-<TGConnectingPoint num="2" id="361" />
-<TGConnectingPoint num="3" id="362" />
-<TGConnectingPoint num="4" id="363" />
-<TGConnectingPoint num="5" id="364" />
-<TGConnectingPoint num="6" id="365" />
-<TGConnectingPoint num="7" id="366" />
-<extraparam>
-<Attribute name_function="test" code="void test() {
-	test_code;
-}" listStruct="" nameTemplate="" typeTemplate="int" listTypedef="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1605" id="376" >
-<father id="358" num="0" />
-<cdparam x="546" y="311" />
-<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 - Port DE" value="port" />
-<TGConnectingPoint num="0" id="377" />
-<TGConnectingPoint num="1" id="378" />
-<TGConnectingPoint num="2" id="379" />
-<TGConnectingPoint num="3" id="380" />
-<TGConnectingPoint num="4" id="381" />
-<TGConnectingPoint num="5" id="382" />
-<TGConnectingPoint num="6" id="383" />
-<TGConnectingPoint num="7" id="384" />
-<TGConnectingPoint num="8" id="385" />
-<extraparam>
-<Prop commName="in_de" commType="0" origin="0" type="int" sensitive="false" sensitive_method="positive" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1602" id="309" >
-<father id="356" num="1" />
-<cdparam x="694" y="247" />
-<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="608" minY="0" maxY="308" />
-<infoparam name="Primitive component - Block TDF" value="Sine" />
-<TGConnectingPoint num="0" id="301" />
-<TGConnectingPoint num="1" id="302" />
-<TGConnectingPoint num="2" id="303" />
-<TGConnectingPoint num="3" id="304" />
-<TGConnectingPoint num="4" id="305" />
-<TGConnectingPoint num="5" id="306" />
-<TGConnectingPoint num="6" id="307" />
-<TGConnectingPoint num="7" id="308" />
-<extraparam>
-<Attribute period="6" time="us" processCode="void processing() {
-	double t = out_de.get_time().to_seconds();
-	double x = sin(2.0 * M_PI * 5000000.0 * t);
-	out_de.write( (int) x);
-	tdf_out.write(x);
-}
-    " listStruct="" nameTemplate="" typeTemplate="int" listTypedef="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1606" id="280" >
-<father id="309" num="0" />
-<cdparam x="881" y="320" />
-<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 - Port Converter" value="out_de" />
-<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" />
-<TGConnectingPoint num="8" id="279" />
-<extraparam>
-<Prop commName="out_de" commType="0" origin="1" period="6" time="us" rate="1" delay="0" type="int" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1604" id="290" >
-<father id="309" num="1" />
-<cdparam x="798" y="384" />
-<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 - Port TDF" value="tdf_out" />
-<TGConnectingPoint num="0" id="281" />
-<TGConnectingPoint num="1" id="282" />
-<TGConnectingPoint num="2" id="283" />
-<TGConnectingPoint num="3" id="284" />
-<TGConnectingPoint num="4" id="285" />
-<TGConnectingPoint num="5" id="286" />
-<TGConnectingPoint num="6" id="287" />
-<TGConnectingPoint num="7" id="288" />
-<TGConnectingPoint num="8" id="289" />
-<extraparam>
-<Prop commName="tdf_out" commType="0" origin="1" period="6" time="us" rate="1" delay="-1" type="double" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1606" id="300" >
-<father id="309" num="2" />
-<cdparam x="681" y="316" />
-<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 - Port Converter" value="out2_de" />
-<TGConnectingPoint num="0" id="291" />
-<TGConnectingPoint num="1" id="292" />
-<TGConnectingPoint num="2" id="293" />
-<TGConnectingPoint num="3" id="294" />
-<TGConnectingPoint num="4" id="295" />
-<TGConnectingPoint num="5" id="296" />
-<TGConnectingPoint num="6" id="297" />
-<TGConnectingPoint num="7" id="298" />
-<TGConnectingPoint num="8" id="299" />
-<extraparam>
-<Prop commName="out2_de" commType="0" origin="1" period="-1" time="us" rate="-1" delay="-1" type="int" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1602" id="328" >
-<father id="356" num="2" />
-<cdparam x="705" y="468" />
-<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="608" minY="0" maxY="308" />
-<infoparam name="Primitive component - Block TDF" value="Sink" />
-<TGConnectingPoint num="0" id="320" />
-<TGConnectingPoint num="1" id="321" />
-<TGConnectingPoint num="2" id="322" />
-<TGConnectingPoint num="3" id="323" />
-<TGConnectingPoint num="4" id="324" />
-<TGConnectingPoint num="5" id="325" />
-<TGConnectingPoint num="6" id="326" />
-<TGConnectingPoint num="7" id="327" />
-<extraparam>
-<Attribute period="-1" time="" processCode="void processing() {
-	in.read();
-}
- " listStruct="" nameTemplate="" typeTemplate="int" listTypedef="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1604" id="319" >
-<father id="328" num="0" />
-<cdparam x="803" y="455" />
-<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 - Port TDF" value="in" />
-<TGConnectingPoint num="0" id="310" />
-<TGConnectingPoint num="1" id="311" />
-<TGConnectingPoint num="2" id="312" />
-<TGConnectingPoint num="3" id="313" />
-<TGConnectingPoint num="4" id="314" />
-<TGConnectingPoint num="5" id="315" />
-<TGConnectingPoint num="6" id="316" />
-<TGConnectingPoint num="7" id="317" />
-<TGConnectingPoint num="8" id="318" />
-<extraparam>
-<Prop commName="in" commType="0" origin="0" period="-1" time="us" rate="1" delay="-1" type="double" />
-</extraparam>
-</SUBCOMPONENT>
-
-
-</SysCAMSComponentTaskDiagramPanel>
-
-</Modeling>
-
-
-
-
-</TURTLEGMODELING>
\ No newline at end of file
diff --git a/modeling/my_eln_filter.xml b/modeling/my_eln_filter.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8ada6fa11bb1ecb8444e0a34153ebe5da5c18b8b
--- /dev/null
+++ b/modeling/my_eln_filter.xml
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<TURTLEGMODELING version="1.0beta">
+
+<Modeling type="ELN" nameTab="ELN" >
+<ELNDiagramPanel name="ELN Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" zoom="1.0" >
+<CONNECTOR type="1610" id="1" >
+<cdparam x="388" y="231" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="388" y="231" id="62" />
+<P2  x="388" y="209" id="3" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="2" >
+<cdparam x="176" y="206" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="174" y="209" id="39" />
+<P2  x="234" y="209" id="73" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="5" >
+<cdparam x="336" y="206" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="334" y="209" id="72" />
+<P2  x="464" y="209" id="50" />
+<Point x="388" y="209" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4" >
+<father id="5" num="0" />
+<cdparam x="388" y="209" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="6" >
+<cdparam x="390" y="328" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="388" y="331" id="61" />
+<P2  x="388" y="358" id="29" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="7" >
+<cdparam x="476" y="206" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="474" y="209" id="51" />
+<P2  x="514" y="209" id="9" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="8" >
+<cdparam x="124" y="203" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="124" y="209" id="19" />
+<P2  x="164" y="209" id="40" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1627" id="100" >
+<cdparam x="119" y="79" />
+<sizeparam width="400" height="400" 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="TGComponent" value="cluster" />
+<TGConnectingPoint num="0" id="92" />
+<TGConnectingPoint num="1" id="93" />
+<TGConnectingPoint num="2" id="94" />
+<TGConnectingPoint num="3" id="95" />
+<TGConnectingPoint num="4" id="96" />
+<TGConnectingPoint num="5" id="97" />
+<TGConnectingPoint num="6" id="98" />
+<TGConnectingPoint num="7" id="99" />
+</COMPONENT>
+<SUBCOMPONENT type="1630" id="18" >
+<father id="100" num="0" />
+<cdparam x="514" y="204" />
+<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-5" maxX="395" minY="-5" maxY="395" />
+<infoparam name="TGComponent" value="out" />
+<TGConnectingPoint num="0" id="9" />
+<TGConnectingPoint num="1" id="10" />
+<TGConnectingPoint num="2" id="11" />
+<TGConnectingPoint num="3" id="12" />
+<TGConnectingPoint num="4" id="13" />
+<TGConnectingPoint num="5" id="14" />
+<TGConnectingPoint num="6" id="15" />
+<TGConnectingPoint num="7" id="16" />
+<TGConnectingPoint num="8" id="17" />
+<extraparam>
+<attributes name="out"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1630" id="28" >
+<father id="100" num="1" />
+<cdparam x="114" y="204" />
+<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-5" maxX="395" minY="-5" maxY="395" />
+<infoparam name="TGComponent" value="in" />
+<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" />
+<TGConnectingPoint num="8" id="27" />
+<extraparam>
+<attributes name="in"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1623" id="91" >
+<father id="100" num="2" />
+<cdparam x="169" y="126" />
+<sizeparam width="300" height="300" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="100" minY="0" maxY="100" />
+<infoparam name="TGComponent" value="my_eln_filter" />
+<TGConnectingPoint num="0" id="83" />
+<TGConnectingPoint num="1" id="84" />
+<TGConnectingPoint num="2" id="85" />
+<TGConnectingPoint num="3" id="86" />
+<TGConnectingPoint num="4" id="87" />
+<TGConnectingPoint num="5" id="88" />
+<TGConnectingPoint num="6" id="89" />
+<TGConnectingPoint num="7" id="90" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="38" >
+<father id="91" num="0" />
+<cdparam x="368" y="358" />
+<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="260" minY="0" maxY="260" />
+<infoparam name="TGComponent" value="gnd" />
+<TGConnectingPoint num="0" id="29" />
+<TGConnectingPoint num="1" id="30" />
+<TGConnectingPoint num="2" id="31" />
+<TGConnectingPoint num="3" id="32" />
+<TGConnectingPoint num="4" id="33" />
+<TGConnectingPoint num="5" id="34" />
+<TGConnectingPoint num="6" id="35" />
+<TGConnectingPoint num="7" id="36" />
+<TGConnectingPoint num="8" id="37" />
+<extraparam>
+<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="49" >
+<father id="91" num="1" />
+<cdparam x="164" y="204" />
+<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-5" maxX="295" minY="-5" maxY="295" />
+<infoparam name="TGComponent" value="a" />
+<TGConnectingPoint num="0" id="39" />
+<TGConnectingPoint num="1" id="40" />
+<TGConnectingPoint num="2" id="41" />
+<TGConnectingPoint num="3" id="42" />
+<TGConnectingPoint num="4" id="43" />
+<TGConnectingPoint num="5" id="44" />
+<TGConnectingPoint num="6" id="45" />
+<TGConnectingPoint num="7" id="46" />
+<TGConnectingPoint num="8" id="47" />
+<TGConnectingPoint num="9" id="48" />
+<extraparam>
+<attributes name="a"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="60" >
+<father id="91" num="2" />
+<cdparam x="464" y="204" />
+<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-5" maxX="295" minY="-5" maxY="295" />
+<infoparam name="TGComponent" value="b" />
+<TGConnectingPoint num="0" id="50" />
+<TGConnectingPoint num="1" id="51" />
+<TGConnectingPoint num="2" id="52" />
+<TGConnectingPoint num="3" id="53" />
+<TGConnectingPoint num="4" id="54" />
+<TGConnectingPoint num="5" id="55" />
+<TGConnectingPoint num="6" id="56" />
+<TGConnectingPoint num="7" id="57" />
+<TGConnectingPoint num="8" id="58" />
+<TGConnectingPoint num="9" id="59" />
+<extraparam>
+<attributes name="b"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1612" id="71" >
+<father id="91" num="3" />
+<cdparam x="368" y="231" />
+<sizeparam width="40" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="260" minY="0" maxY="200" />
+<infoparam name="TGComponent" value="c1" />
+<TGConnectingPoint num="0" id="61" />
+<TGConnectingPoint num="1" id="62" />
+<TGConnectingPoint num="2" id="63" />
+<TGConnectingPoint num="3" id="64" />
+<TGConnectingPoint num="4" id="65" />
+<TGConnectingPoint num="5" id="66" />
+<TGConnectingPoint num="6" id="67" />
+<TGConnectingPoint num="7" id="68" />
+<TGConnectingPoint num="8" id="69" />
+<TGConnectingPoint num="9" id="70" />
+<extraparam>
+<attributes value="1.0" unit0="F" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="true" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="82" >
+<father id="91" num="4" />
+<cdparam x="234" y="199" />
+<sizeparam width="100" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="200" minY="0" maxY="280" />
+<infoparam name="TGComponent" value="r1" />
+<TGConnectingPoint num="0" id="72" />
+<TGConnectingPoint num="1" id="73" />
+<TGConnectingPoint num="2" id="74" />
+<TGConnectingPoint num="3" id="75" />
+<TGConnectingPoint num="4" id="76" />
+<TGConnectingPoint num="5" id="77" />
+<TGConnectingPoint num="6" id="78" />
+<TGConnectingPoint num="7" id="79" />
+<TGConnectingPoint num="8" id="80" />
+<TGConnectingPoint num="9" id="81" />
+<extraparam>
+<attributes value="1.0" unit="&#x3A9;" position="2" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+
+</ELNDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/modeling/my_structural_eln_model.xml b/modeling/my_structural_eln_model.xml
new file mode 100644
index 0000000000000000000000000000000000000000..530305308f98565b584c8dd827a1e5376babbf26
--- /dev/null
+++ b/modeling/my_structural_eln_model.xml
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<TURTLEGMODELING version="1.0beta">
+
+<Modeling type="ELN" nameTab="ELN" >
+<ELNDiagramPanel name="ELN Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" zoom="1.0" >
+<CONNECTOR type="1610" id="1" >
+<cdparam x="538" y="199" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="538" y="198" id="94" />
+<P2  x="501" y="198" id="11" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="2" >
+<cdparam x="143" y="205" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="143" y="198" id="84" />
+<P2  x="191" y="198" id="22" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="3" >
+<cdparam x="267" y="194" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="280" y="222" id="43" />
+<P2  x="280" y="198" id="4" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="6" >
+<cdparam x="328" y="175" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="340" y="198" id="32" />
+<P2  x="201" y="198" id="21" />
+<Point x="280" y="198" type="-1" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="5" >
+<father id="6" num="0" />
+<cdparam x="280" y="198" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="4" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1610" id="7" >
+<cdparam x="479" y="169" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="491" y="198" id="10" />
+<P2  x="440" y="198" id="33" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="8" >
+<cdparam x="274" y="491" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<P1  x="280" y="492" id="65" />
+<P2  x="280" y="454" id="55" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1610" id="9" >
+<cdparam x="268" y="340" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="net1" />
+<P1  x="280" y="354" id="54" />
+<P2  x="280" y="322" id="44" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1627" id="112" >
+<cdparam x="138" y="70" />
+<sizeparam width="405" height="528" 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="TGComponent" value="Cluster0" />
+<TGConnectingPoint num="0" id="104" />
+<TGConnectingPoint num="1" id="105" />
+<TGConnectingPoint num="2" id="106" />
+<TGConnectingPoint num="3" id="107" />
+<TGConnectingPoint num="4" id="108" />
+<TGConnectingPoint num="5" id="109" />
+<TGConnectingPoint num="6" id="110" />
+<TGConnectingPoint num="7" id="111" />
+</COMPONENT>
+<SUBCOMPONENT type="1623" id="83" >
+<father id="112" num="0" />
+<cdparam x="196" y="117" />
+<sizeparam width="300" height="440" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="105" minY="0" maxY="88" />
+<infoparam name="TGComponent" value="my_structural_eln_model" />
+<TGConnectingPoint num="0" id="75" />
+<TGConnectingPoint num="1" id="76" />
+<TGConnectingPoint num="2" id="77" />
+<TGConnectingPoint num="3" id="78" />
+<TGConnectingPoint num="4" id="79" />
+<TGConnectingPoint num="5" id="80" />
+<TGConnectingPoint num="6" id="81" />
+<TGConnectingPoint num="7" id="82" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="20" >
+<father id="83" num="0" />
+<cdparam x="491" y="193" />
+<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-5" maxX="295" minY="-5" maxY="435" />
+<infoparam name="TGComponent" value="b" />
+<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" />
+<TGConnectingPoint num="8" id="18" />
+<TGConnectingPoint num="9" id="19" />
+<extraparam>
+<attributes name="b"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1624" id="31" >
+<father id="83" num="1" />
+<cdparam x="191" y="193" />
+<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-5" maxX="295" minY="-5" maxY="435" />
+<infoparam name="TGComponent" value="a" />
+<TGConnectingPoint num="0" id="21" />
+<TGConnectingPoint num="1" id="22" />
+<TGConnectingPoint num="2" id="23" />
+<TGConnectingPoint num="3" id="24" />
+<TGConnectingPoint num="4" id="25" />
+<TGConnectingPoint num="5" id="26" />
+<TGConnectingPoint num="6" id="27" />
+<TGConnectingPoint num="7" id="28" />
+<TGConnectingPoint num="8" id="29" />
+<TGConnectingPoint num="9" id="30" />
+<extraparam>
+<attributes name="a"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="42" >
+<father id="83" num="2" />
+<cdparam x="340" y="188" />
+<sizeparam width="100" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="200" minY="0" maxY="420" />
+<infoparam name="TGComponent" value="r1" />
+<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="8" id="40" />
+<TGConnectingPoint num="9" id="41" />
+<extraparam>
+<attributes value="10.0" unit="k&#x3A9;" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1611" id="53" >
+<father id="83" num="3" />
+<cdparam x="270" y="222" />
+<sizeparam width="20" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="280" minY="0" maxY="340" />
+<infoparam name="TGComponent" value="r2" />
+<TGConnectingPoint num="0" id="43" />
+<TGConnectingPoint num="1" id="44" />
+<TGConnectingPoint num="2" id="45" />
+<TGConnectingPoint num="3" id="46" />
+<TGConnectingPoint num="4" id="47" />
+<TGConnectingPoint num="5" id="48" />
+<TGConnectingPoint num="6" id="49" />
+<TGConnectingPoint num="7" id="50" />
+<TGConnectingPoint num="8" id="51" />
+<TGConnectingPoint num="9" id="52" />
+<extraparam>
+<attributes value="100.0" unit="&#x3A9;" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1612" id="64" >
+<father id="83" num="4" />
+<cdparam x="260" y="354" />
+<sizeparam width="40" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="260" minY="0" maxY="340" />
+<infoparam name="TGComponent" value="c1" />
+<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="8" id="62" />
+<TGConnectingPoint num="9" id="63" />
+<extraparam>
+<attributes value="100.0" unit0="&#x3BC;F" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1620" id="74" >
+<father id="83" num="5" />
+<cdparam x="260" y="492" />
+<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="260" minY="0" maxY="400" />
+<infoparam name="TGComponent" value="gnd" />
+<TGConnectingPoint num="0" id="65" />
+<TGConnectingPoint num="1" id="66" />
+<TGConnectingPoint num="2" id="67" />
+<TGConnectingPoint num="3" id="68" />
+<TGConnectingPoint num="4" id="69" />
+<TGConnectingPoint num="5" id="70" />
+<TGConnectingPoint num="6" id="71" />
+<TGConnectingPoint num="7" id="72" />
+<TGConnectingPoint num="8" id="73" />
+<extraparam>
+<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1630" id="93" >
+<father id="112" num="1" />
+<cdparam x="133" y="193" />
+<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-5" maxX="400" minY="-5" maxY="523" />
+<infoparam name="TGComponent" value="in" />
+<TGConnectingPoint num="0" id="84" />
+<TGConnectingPoint num="1" id="85" />
+<TGConnectingPoint num="2" id="86" />
+<TGConnectingPoint num="3" id="87" />
+<TGConnectingPoint num="4" id="88" />
+<TGConnectingPoint num="5" id="89" />
+<TGConnectingPoint num="6" id="90" />
+<TGConnectingPoint num="7" id="91" />
+<TGConnectingPoint num="8" id="92" />
+<extraparam>
+<attributes name="in"/>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1630" id="103" >
+<father id="112" num="2" />
+<cdparam x="538" y="193" />
+<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-5" maxX="400" minY="-5" maxY="523" />
+<infoparam name="TGComponent" value="out" />
+<TGConnectingPoint num="0" id="94" />
+<TGConnectingPoint num="1" id="95" />
+<TGConnectingPoint num="2" id="96" />
+<TGConnectingPoint num="3" id="97" />
+<TGConnectingPoint num="4" id="98" />
+<TGConnectingPoint num="5" id="99" />
+<TGConnectingPoint num="6" id="100" />
+<TGConnectingPoint num="7" id="101" />
+<TGConnectingPoint num="8" id="102" />
+<extraparam>
+<attributes name="out"/>
+</extraparam>
+</SUBCOMPONENT>
+
+
+</ELNDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/src/.classpath b/src/.classpath
index 42454fe50719774f5a6a8794720018e4cf0640eb..5f8345db70e5eabf790de1dcd959855873e4f1fc 100644
--- a/src/.classpath
+++ b/src/.classpath
@@ -14,5 +14,8 @@
 	<classpathentry kind="lib" path="/libs/commons-math3-3.6.1.jar"/>
 	<classpathentry kind="lib" path="/libs/batik-dom.jar"/>
 	<classpathentry kind="lib" path="/libs/batik-svggen.jar"/>
+	<classpathentry kind="lib" path="/libs/batik-awt-util.jar"/>
+	<classpathentry kind="lib" path="/libs/batik-xml.jar"/>
+	<classpathentry kind="lib" path="/libs/batik-util.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/src/main/java/avatartranslator/AvatarAction.java b/src/main/java/avatartranslator/AvatarAction.java
index 1ecfd5e3b42f7a99db2f9262661260eed95d4aa2..b0c957a25fd134201ce4ef2d4fe9314af0e92575 100644
--- a/src/main/java/avatartranslator/AvatarAction.java
+++ b/src/main/java/avatartranslator/AvatarAction.java
@@ -36,12 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarAction
@@ -75,5 +72,5 @@ public interface AvatarAction {
      * @param attributesMapping
      *      The mapping used to replace the attributes of the action. All the attributes of the block should be present as keys.
      */
-    void replaceAttributes(HashMap<AvatarAttribute, AvatarAttribute> attributesMapping);
+    void replaceAttributes(Map<AvatarAttribute, AvatarAttribute> attributesMapping);
 }
diff --git a/src/main/java/avatartranslator/AvatarActionAssignment.java b/src/main/java/avatartranslator/AvatarActionAssignment.java
index 0fb0455ef78bb0edec33fe2695947b3cb5c85652..d758d35991a90fe54ccc55e8e696edddc7254921 100644
--- a/src/main/java/avatartranslator/AvatarActionAssignment.java
+++ b/src/main/java/avatartranslator/AvatarActionAssignment.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarActionAssignment
@@ -99,7 +95,7 @@ public class AvatarActionAssignment implements AvatarAction {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         if (this.leftHand instanceof AvatarAttribute)
             this.leftHand = attributesMapping.get (this.leftHand);
         else
diff --git a/src/main/java/avatartranslator/AvatarActionOnSignal.java b/src/main/java/avatartranslator/AvatarActionOnSignal.java
index 0f4ccc50002cb4aba158e683ff82e28351fdf86f..431bbff681a7eda8963d4157ebeff2fbceaca5f2 100644
--- a/src/main/java/avatartranslator/AvatarActionOnSignal.java
+++ b/src/main/java/avatartranslator/AvatarActionOnSignal.java
@@ -42,6 +42,7 @@ package avatartranslator;
 import myutil.TraceManager;
 
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -52,20 +53,23 @@ import java.util.LinkedList;
  */
 public class AvatarActionOnSignal extends AvatarStateMachineElement {
     private AvatarSignal signal;
-    private LinkedList<String> values;
+    private List<String> values;
 	private boolean checkLatency;
 
-    public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject) {
-        super(_name, _referenceObject);
-        signal = _signal;
-        values = new LinkedList<String>();
-    }
 
-    public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject, boolean _isCheckable, boolean _isChecked) {
-        super(_name, _referenceObject, _isCheckable, _isChecked);
-        signal = _signal;
-        values = new LinkedList<String>();
-    }
+	public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject ) {
+		this( _name, _signal, _referenceObject, false );
+	}
+
+	public AvatarActionOnSignal(	String _name,
+									AvatarSignal _signal,
+									Object _referenceObject,
+									boolean _isCheckable ) {
+		super( _name, _referenceObject, _isCheckable, false );
+		
+		signal = _signal;
+		values = new LinkedList<String>();
+	}
 
     public AvatarSignal getSignal() {
         return signal;
@@ -75,7 +79,7 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement {
         values.add(_val);
     }
 
-    public LinkedList<String> getValues() {
+    public List<String> getValues() {
         return values;
     }
 
@@ -104,32 +108,32 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement {
     }
 
     public AvatarActionOnSignal basicCloneMe(AvatarStateMachineOwner _block) {
-        //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());
-	    for(int i=0; i<getNbOfValues(); i++) {
-		aaos.addValue(getValue(i));
-	    }
-	    return aaos;
-	} else {
-	    TraceManager.addDev("NULL signal in new spec: " + getSignal().getName());
-	}
-
-        return null;
+    	//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()*/);
+    		for(int i=0; i<getNbOfValues(); i++) {
+    			aaos.addValue(getValue(i));
+    		}
+    		return aaos;
+    	} else {
+    		TraceManager.addDev("NULL signal in new spec: " + getSignal().getName());
+    	}
+
+    	return null;
     }
 
     public String getExtendedName() {
-	if (getSignal() == null) {
-	    String s = getName() + " refobjt=" + referenceObject.toString();
-	    TraceManager.addDev("Null signal" + " res=" + s);
-	    return s;
-	}
-	if (getName() == null) {
-	    TraceManager.addDev("Null name");
-	}
-
-        return getName() + ":" + getSignal().getName();
+    	if (getSignal() == null) {
+    		String s = getName() + " refobjt=" + referenceObject.toString();
+    		TraceManager.addDev("Null signal" + " res=" + s);
+    		return s;
+    	}
+    	if (getName() == null) {
+    		TraceManager.addDev("Null name");
+    	}
+
+    	return getName() + ":" + getSignal().getName();
     }
 
     public String getNiceName() {
diff --git a/src/main/java/avatartranslator/AvatarArithmeticOp.java b/src/main/java/avatartranslator/AvatarArithmeticOp.java
index 029d0856cebb5b648b1838221d6f6df6bf8da825..c439b3ceda8b6cb601c4344f6d5b36a66480db1b 100644
--- a/src/main/java/avatartranslator/AvatarArithmeticOp.java
+++ b/src/main/java/avatartranslator/AvatarArithmeticOp.java
@@ -36,12 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarArithmeticOp
@@ -114,7 +111,7 @@ public class AvatarArithmeticOp extends AvatarTerm {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         if (this.term1 instanceof AvatarAttribute)
             this.term1 = attributesMapping.get (this.term1);
         else
diff --git a/src/main/java/avatartranslator/AvatarAttribute.java b/src/main/java/avatartranslator/AvatarAttribute.java
index 1701e29ad4eee2d71ce697f516a7f1d416ac152a..775a1f8e68958f117e78519f69220a60498b0ef5 100644
--- a/src/main/java/avatartranslator/AvatarAttribute.java
+++ b/src/main/java/avatartranslator/AvatarAttribute.java
@@ -39,9 +39,9 @@
 
 package avatartranslator;
 
-import myutil.TraceManager;
+import java.util.Map;
 
-import java.util.HashMap;
+import myutil.TraceManager;
 
 /**
  * Class AvatarAttribute
@@ -189,7 +189,7 @@ public class AvatarAttribute extends AvatarLeftHand {
     }
 
     @Override
-    public void replaceAttributes(HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         TraceManager.addDev("!!! ERROR !!! (replaceAttributes in AvatarAttribute)");
         /* !!! We should never arrive here !!! */
     }
diff --git a/src/main/java/avatartranslator/AvatarAttributeState.java b/src/main/java/avatartranslator/AvatarAttributeState.java
index becf79f442aacfa4094055716c091de373989f7f..fb260813c87a96bfda084d35271908a5407cde3f 100644
--- a/src/main/java/avatartranslator/AvatarAttributeState.java
+++ b/src/main/java/avatartranslator/AvatarAttributeState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 /**
@@ -52,14 +49,16 @@ public class AvatarAttributeState extends AvatarElement {
     private AvatarState state;
     public AvatarAttributeState(String _name, Object _referenceObject, AvatarAttribute attr, AvatarState st) {
         super(_name, _referenceObject);
-	attribute = attr;
-	state = st;
+        attribute = attr;
+        state = st;
     }
+    
     public AvatarAttribute getAttribute(){
-	return attribute;
+    	return attribute;
     }
+    
     public AvatarState getState(){
-	return state;
+    	return state;
     }
 
     public AvatarAttributeState advancedClone (AvatarSpecification avspec) {
@@ -72,8 +71,8 @@ public class AvatarAttributeState extends AvatarElement {
         return result;
     }
 
-    public String toString()
-    {
+    @Override
+    public String toString() {
         return this.attribute.getBlock().getName().replaceAll("__", ".") + "." + this.state.getName() + "." + this.attribute.getName();
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarBinaryGuard.java b/src/main/java/avatartranslator/AvatarBinaryGuard.java
index 0c473aaafd6a07fc8d97882b40119766dab8e0b3..070ef547e6d468ee21a29086df8692bc6c45fdd1 100644
--- a/src/main/java/avatartranslator/AvatarBinaryGuard.java
+++ b/src/main/java/avatartranslator/AvatarBinaryGuard.java
@@ -36,10 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarBinaryGuard
@@ -81,7 +80,7 @@ public class AvatarBinaryGuard extends AvatarComposedGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         this.guardA.replaceAttributes (attributesMapping);
         this.guardB.replaceAttributes (attributesMapping);
     }
diff --git a/src/main/java/avatartranslator/AvatarBlock.java b/src/main/java/avatartranslator/AvatarBlock.java
index 0053bc1dd849167e8926ecb0735bc1ac5d59e212..58c022392b7f233bad0b25d68b7c8219068692a1 100644
--- a/src/main/java/avatartranslator/AvatarBlock.java
+++ b/src/main/java/avatartranslator/AvatarBlock.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -54,9 +52,9 @@ import java.util.LinkedList;
 public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwner {
 
     private AvatarBlock father;
-    private LinkedList<AvatarAttribute> attributes;
-    private LinkedList<AvatarMethod> methods;
-    private LinkedList<AvatarSignal> signals;
+    private List<AvatarAttribute> attributes;
+    private List<AvatarMethod> methods;
+    private List<AvatarSignal> signals;
     private AvatarStateMachine asm;
     private AvatarSpecification avspec;
 
@@ -119,16 +117,16 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
         signals.add(_signal);
     }
 
-    public LinkedList<AvatarAttribute> getAttributes() {
+    public List<AvatarAttribute> getAttributes() {
         return attributes;
     }
 
-    public LinkedList<AvatarMethod> getMethods() {
+    public List<AvatarMethod> getMethods() {
         return methods;
     }
 
 
-    public LinkedList<AvatarSignal> getSignals() {
+    public List<AvatarSignal> getSignals() {
         return signals ;
     }
 
@@ -435,8 +433,7 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
         return (asme != null);
     }
 
-
-    public void removeTimers(AvatarSpecification _spec, LinkedList<AvatarBlock> _addedBlocks) {
+    public void removeTimers(AvatarSpecification _spec, List<AvatarBlock> _addedBlocks) {
         AvatarSignal as;
         AvatarAttribute value;
 
@@ -479,25 +476,24 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
 
         // Remove Timer attribute
 	//boolean hasTimerAttribute = false;
-        LinkedList<AvatarAttribute> tmps = attributes;
+        List<AvatarAttribute> tmps = attributes;
         attributes = new LinkedList<AvatarAttribute>();
         for (AvatarAttribute aa: tmps) {
             if (aa.getType() != AvatarType.TIMER) {
                 attributes.add(aa);
-	    } else {
+            } else {
 		//hasTimerAttribute = true;
-	    }
+            }
         }
-
     }
 
     public boolean hasTimerAttribute() {
-	for(AvatarAttribute attr: attributes) {
-	    if (attr.isTimer()) {
-		return true;
-	    }
-	}
-	return false;
+    	for(AvatarAttribute attr: attributes) {
+    		if (attr.isTimer()) {
+    			return true;
+    		}
+    	}
+    	return false;
     }
 
     public AvatarAttribute addTimerAttribute(String _name) {
diff --git a/src/main/java/avatartranslator/AvatarComposedGuard.java b/src/main/java/avatartranslator/AvatarComposedGuard.java
index 7115e79a910af48a070ef41553a2523e1dcd2df1..e414be224d870cdfbeba99eca46ec5ef1fd97c36 100644
--- a/src/main/java/avatartranslator/AvatarComposedGuard.java
+++ b/src/main/java/avatartranslator/AvatarComposedGuard.java
@@ -36,10 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 /**
@@ -49,7 +45,8 @@ package avatartranslator;
    * @author Florian LUGOU
  */
 public abstract class AvatarComposedGuard extends AvatarGuard {
-    public AvatarComposedGuard getOpposite () {
+    
+	public AvatarComposedGuard getOpposite () {
         return new AvatarUnaryGuard ("not", "(", ")", this);
     }
 
diff --git a/src/main/java/avatartranslator/AvatarConstant.java b/src/main/java/avatartranslator/AvatarConstant.java
index f9cf2f5069af9eefab5a1ef855ca0995b66ddcee..03a1710cccf0ad5399c90b7ad2f5ae1ec46ec3ff 100644
--- a/src/main/java/avatartranslator/AvatarConstant.java
+++ b/src/main/java/avatartranslator/AvatarConstant.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarTerm
@@ -74,19 +70,20 @@ public class AvatarConstant extends AvatarTerm {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 
     @Override
     public String toString() {
-	return getName();
+    	return getName();
     }
 
     public AvatarConstant advancedClone() {
         if (this == AvatarConstant.TRUE || this == AvatarConstant.FALSE)
             return this;
 
-	AvatarConstant ac = new AvatarConstant(getName(), getReferenceObject());
-	cloneLinkToReferenceObjects(ac);
-	return ac;
+        AvatarConstant ac = new AvatarConstant(getName(), getReferenceObject());
+        cloneLinkToReferenceObjects(ac);
+	
+        return ac;
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarConstantGuard.java b/src/main/java/avatartranslator/AvatarConstantGuard.java
index d6a3591d65d98925ac9516ac3f1e80646718d3fc..d19b4d8640a8c027e8c6612223a8ff18966f09ed 100644
--- a/src/main/java/avatartranslator/AvatarConstantGuard.java
+++ b/src/main/java/avatartranslator/AvatarConstantGuard.java
@@ -36,14 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
-
+import java.util.Map;
 
 /**
  * An AvatarConstantGuard is an {@link AvatarSimpleGuard} that is of the form:
@@ -73,5 +68,5 @@ public class AvatarConstantGuard extends AvatarSimpleGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 }
diff --git a/src/main/java/avatartranslator/AvatarDummyState.java b/src/main/java/avatartranslator/AvatarDummyState.java
new file mode 100644
index 0000000000000000000000000000000000000000..3bd0f6623725fa38b72984437b1672c22fac7fe3
--- /dev/null
+++ b/src/main/java/avatartranslator/AvatarDummyState.java
@@ -0,0 +1,18 @@
+package avatartranslator;
+
+/**
+ * Issue #69: Created for component disabling. When a state machine element is located between transitions
+ * that have guards and actions, we need to keep a node to ensure that these are evaluated / executed in 
+ * the same sequence leading to the same semantics. We create replace the disabled node with this dummy state 
+ * that will have no impact on the generation of other specifications (UPPAAL, C Code, Proverif, etc..). 
+ * 
+ * @author dblouin
+ *
+ */
+public class AvatarDummyState extends AvatarState {
+
+	public AvatarDummyState( 	final String name,
+								final Object _referenceObject ) {
+		super( name + "_converted_to_dummy_state", _referenceObject );
+	}
+}
diff --git a/src/main/java/avatartranslator/AvatarElement.java b/src/main/java/avatartranslator/AvatarElement.java
index 5d40d2f802eb7637a475a611a01f9cdd3f45fdcd..40f3944bf2b1624630438e186462df0ceb0fa16b 100644
--- a/src/main/java/avatartranslator/AvatarElement.java
+++ b/src/main/java/avatartranslator/AvatarElement.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 import myutil.TraceManager;
@@ -53,7 +50,7 @@ import java.util.Vector;
  */
 public class AvatarElement {
 
-    protected static int ID=0;
+    private static int ID=0;
 
     protected String name;
     protected Object referenceObject;
@@ -67,14 +64,14 @@ public class AvatarElement {
     }
 
     public void addReferenceObjectFrom(AvatarElement _elt) {
-	addReferenceObject(_elt.getReferenceObject());
-	Vector<Object> others = _elt.getReferenceObjects();
-	if (others != null) {
-	    for(Object o: others) {
-		addReferenceObject(o);
-	    }
-	}
-	
+    	addReferenceObject(_elt.getReferenceObject());
+    	Vector<Object> others = _elt.getReferenceObjects();
+    	if (others != null) {
+    		for(Object o: others) {
+    			addReferenceObject(o);
+    		}
+    	}
+
     }
 
     public void addReferenceObject(Object _ref) {
@@ -113,7 +110,7 @@ public class AvatarElement {
     }
 
     public Vector<Object> getReferenceObjects() {
-	return otherReferenceObjects;
+    	return otherReferenceObjects;
     }
 
     public int getID(){
@@ -125,16 +122,17 @@ public class AvatarElement {
         ID = 0;
     }
 
+    @Override
     public String toString() {
-	return getName();
+    	return getName();
     }
 
     public void cloneLinkToReferenceObjects(AvatarElement ae) {
-	if (otherReferenceObjects == null) {
-	    return;
-	}
-	for(Object o: otherReferenceObjects) {
-	    ae.addReferenceObject(o);
-	}
+    	if (otherReferenceObjects == null) {
+    		return;
+    	}
+    	for(Object o: otherReferenceObjects) {
+    		ae.addReferenceObject(o);
+    	}
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarGuard.java b/src/main/java/avatartranslator/AvatarGuard.java
index e02812cb685d04ecc3d2b0aab1cd2aebfd718949..f75aedd22226c555cab87f00a05344c0774b9424 100644
--- a/src/main/java/avatartranslator/AvatarGuard.java
+++ b/src/main/java/avatartranslator/AvatarGuard.java
@@ -36,17 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
+import java.util.Map;
+
 import myutil.Conversion;
 import myutil.TraceManager;
 
-import java.util.HashMap;
-
 /**
  * Class AvatarGuard
  * Creation: 16/09/2015
@@ -233,6 +229,7 @@ public abstract class AvatarGuard {
 
     public abstract String getAsString (AvatarSyntaxTranslator translator);
 
+    @Override
     public String toString () {
         return this.getAsString (new AvatarSyntaxTranslator ());
     }
@@ -250,5 +247,5 @@ public abstract class AvatarGuard {
      * @param attributesMapping
      *      The mapping used to replace the attributes of the guard. All the attributes of the block should be present as keys.
      */
-    public abstract void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping);
+    public abstract void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping);
 }
diff --git a/src/main/java/avatartranslator/AvatarGuardElse.java b/src/main/java/avatartranslator/AvatarGuardElse.java
index 61020187adf847de61777dda0892b0622dba420b..3afe3e0fe5ce808bfbf80d17dc65d86f0f2e8d99 100644
--- a/src/main/java/avatartranslator/AvatarGuardElse.java
+++ b/src/main/java/avatartranslator/AvatarGuardElse.java
@@ -36,14 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
-
+import java.util.Map;
 
 /**
  * An AvatarGuardElse is an {@link AvatarGuard} that is of the form:
@@ -90,6 +85,7 @@ public class AvatarGuardElse extends AvatarGuard {
         return "else";
     }
 
+    @Override
     public boolean isElseGuard () {
         return true;
     }
@@ -100,5 +96,5 @@ public class AvatarGuardElse extends AvatarGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 }
diff --git a/src/main/java/avatartranslator/AvatarGuardEmpty.java b/src/main/java/avatartranslator/AvatarGuardEmpty.java
index 15adf7e6103e4858db7686b2bfc76bea6e8efa96..6e5cdd08edf654cdb97b6f4bf2b82a8fcd7236dc 100644
--- a/src/main/java/avatartranslator/AvatarGuardEmpty.java
+++ b/src/main/java/avatartranslator/AvatarGuardEmpty.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 
 /**
@@ -52,7 +48,8 @@ import java.util.HashMap;
  * @author Florian LUGOU
  */
 public class AvatarGuardEmpty extends AvatarGuard {
-    public AvatarGuardEmpty () {
+    
+	public AvatarGuardEmpty () {
     }
 
     public boolean isGuarded () {
@@ -69,5 +66,5 @@ public class AvatarGuardEmpty extends AvatarGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 }
diff --git a/src/main/java/avatartranslator/AvatarLibraryFunction.java b/src/main/java/avatartranslator/AvatarLibraryFunction.java
index cba451ea26ec11f1faee1b33cadb9da500b7c06e..c80b6155e231443331effd03ee23ece3b52c8bdb 100644
--- a/src/main/java/avatartranslator/AvatarLibraryFunction.java
+++ b/src/main/java/avatartranslator/AvatarLibraryFunction.java
@@ -36,15 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedList;
-
+import java.util.List;
+import java.util.Map;
 
 /**
  * AvatarLibraryFunction is used to represent a library function that can be further used in state machine diagrams.
@@ -70,34 +68,34 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * <p>Note that these are only placeholders and should not be used outside this class.</p>
      */
-    private LinkedList<AvatarAttribute> parameters;
+    private List<AvatarAttribute> parameters;
 
     /**
      * The list of variables local to the function.
      *
      * <p>Note that these are only placeholders and should not be used outside this class.</p>
      */
-    private LinkedList<AvatarAttribute> attributes;
+    private List<AvatarAttribute> attributes;
 
     /**
      * The list of signals used by the function.
      *
      * <p>Note that these are only placeholders and should not be used outside this class.</p>
      */
-    private LinkedList<AvatarSignal> signals;
+    private List<AvatarSignal> signals;
 
     /**
      * The list of attribute that will hold the return values of the function. These shouldn't be elements of {@link AvatarLibraryFunction#attributes} or {@link AvatarLibraryFunction#parameters}.
      *
      * <p>Note that these are only placeholders and should not be used outside this class.</p>
      */
-    private LinkedList<AvatarAttribute> returnAttributes;
+    private List<AvatarAttribute> returnAttributes;
 
     /**
      * The list of methods that can be used by the function.
      *
      */
-    private LinkedList<AvatarMethod> methods;
+    private List<AvatarMethod> methods;
 
     /**
      * The state machine describing the behaviour of the function.
@@ -166,7 +164,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of parameters.
      */
-    public LinkedList<AvatarAttribute> getParameters () {
+    public List<AvatarAttribute> getParameters () {
         return this.parameters;
     }
 
@@ -185,7 +183,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of signals.
      */
-    public LinkedList<AvatarSignal> getSignals () {
+    public List<AvatarSignal> getSignals () {
         return this.signals;
     }
 
@@ -213,7 +211,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of return values.
      */
-    public LinkedList<AvatarAttribute> getReturnAttributes () {
+    public List<AvatarAttribute> getReturnAttributes () {
         return this.returnAttributes;
     }
 
@@ -232,13 +230,13 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of local attributes.
      */
-    public LinkedList<AvatarAttribute> getLocalAttributes () {
+    public List<AvatarAttribute> getLocalAttributes () {
         return this.attributes;
     }
 
     @Override
-    public LinkedList<AvatarAttribute> getAttributes () {
-        LinkedList<AvatarAttribute> result = new LinkedList<AvatarAttribute> ();
+    public List<AvatarAttribute> getAttributes () {
+        List<AvatarAttribute> result = new LinkedList<AvatarAttribute> ();
 
         for (AvatarAttribute attr: this.attributes)
             result.add (attr);
@@ -260,7 +258,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of methods used by this function.
      */
-    public LinkedList<AvatarMethod> getMethods () {
+    public List<AvatarMethod> getMethods () {
         return this.methods;
     }
 
@@ -310,7 +308,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      * @param mapping
      *      A mapping from placeholders to attributes of the block.
      */
-    public void addAttributesToBlock (AvatarBlock block, HashMap<AvatarAttribute, AvatarAttribute> mapping) {
+    public void addAttributesToBlock (AvatarBlock block, Map<AvatarAttribute, AvatarAttribute> mapping) {
         for (AvatarAttribute attribute: this.attributes) {
             // TODO: We should use different attributes for different library function call
             String name = this.name + "__" + attribute.getName ();
@@ -334,7 +332,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      * @param returnAttributes
      *      A list of the attributes that should receive return values.
      */
-    public void addAttributesToMapping (HashMap<AvatarAttribute, AvatarAttribute> mapping, LinkedList<AvatarAttribute> parameters, LinkedList<AvatarAttribute> returnAttributes) {
+    public void addAttributesToMapping( Map<AvatarAttribute, AvatarAttribute> mapping, List<AvatarAttribute> parameters, List<AvatarAttribute> returnAttributes) {
         Iterator<AvatarAttribute> placeholders = this.parameters.iterator ();
         for (AvatarAttribute attr: parameters)
             mapping.put (placeholders.next (), attr);
@@ -352,7 +350,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      * @param signals
      *      A list of the attributes that were passed as parameters.
      */
-    public void addSignalsToMapping (HashMap<AvatarSignal, AvatarSignal> mapping, LinkedList<AvatarSignal> signals) {
+    public void addSignalsToMapping( Map<AvatarSignal, AvatarSignal> mapping, List<AvatarSignal> signals) {
         Iterator<AvatarSignal> placeholders = this.signals.iterator ();
         for (AvatarSignal signal: signals)
             mapping.put (placeholders.next (), signal);
@@ -366,12 +364,12 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
         /**
          * A mapping from placeholders to attributes of the block.
          */
-        public HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping;
+        public Map<AvatarAttribute, AvatarAttribute> placeholdersMapping;
 
         /**
          * A mapping from placeholders to signals of the block.
          */
-        public HashMap<AvatarSignal, AvatarSignal> signalsMapping;
+        public Map<AvatarSignal, AvatarSignal> signalsMapping;
 
         /**
          * The previous element of the state machine being created.
@@ -386,7 +384,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
         /**
          * A mapping from placeholder state machine elements to "real" elements.
          */
-        public HashMap<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping;
+        public Map<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping;
 
         /**
          * The block the function call belongs to.
@@ -423,7 +421,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
          * @param counter
          *      The counter for the library function call.
          */
-        public TranslatorArgument (HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping, HashMap<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement previousElement, AvatarStateMachineElement lastElement, HashMap<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping, AvatarBlock block, Object referenceObject, int counter) {
+        public TranslatorArgument( Map<AvatarAttribute, AvatarAttribute> placeholdersMapping, Map<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement previousElement, AvatarStateMachineElement lastElement, Map<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping, AvatarBlock block, Object referenceObject, int counter) {
             this.placeholdersMapping = placeholdersMapping;
             this.signalsMapping = signalsMapping;
             this.previousElement = previousElement;
@@ -451,7 +449,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The last element of the state machine created.
      */
-    public AvatarState translateASMWithMapping (HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping, HashMap<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement firstElement, AvatarBlock block, Object referenceObject, int counter) {
+    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);
 
diff --git a/src/main/java/avatartranslator/AvatarMethod.java b/src/main/java/avatartranslator/AvatarMethod.java
index d8769e81c0231880689d6334fea90b11f3cc337a..a8d5c41d10c0e90aa0d12cd4371f31b40141fa9c 100644
--- a/src/main/java/avatartranslator/AvatarMethod.java
+++ b/src/main/java/avatartranslator/AvatarMethod.java
@@ -36,13 +36,10 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 import java.util.LinkedList;
+import java.util.List;
 
 /**
  * Class AvatarMethod
@@ -55,8 +52,8 @@ public class AvatarMethod extends AvatarElement {
 
     protected boolean implementationProvided;
 
-    protected LinkedList<AvatarAttribute> parameters;
-    protected LinkedList<AvatarAttribute> returnParameters;
+    protected List<AvatarAttribute> parameters;
+    protected List<AvatarAttribute> returnParameters;
 
 
     public AvatarMethod(String _name, Object _referenceObject) {
@@ -81,11 +78,11 @@ public class AvatarMethod extends AvatarElement {
         returnParameters.add(_attribute);
     }
 
-    public LinkedList<AvatarAttribute> getListOfAttributes() {
+    public List<AvatarAttribute> getListOfAttributes() {
         return parameters;
     }
 
-    public LinkedList<AvatarAttribute> getListOfReturnAttributes() {
+    public List<AvatarAttribute> getListOfReturnAttributes() {
         return returnParameters;
     }
 
@@ -93,6 +90,7 @@ public class AvatarMethod extends AvatarElement {
         return AvatarTerm.isValidName (_method);
     }
 
+    @Override
     public String toString() {
         int cpt = 0;
         String ret = "";
@@ -196,20 +194,18 @@ public class AvatarMethod extends AvatarElement {
     }
 
     protected void setAdvancedClone(AvatarMethod am, AvatarStateMachineOwner _block) {
-	am.setImplementationProvided(isImplementationProvided());
-	for(AvatarAttribute param: parameters) {
-	    am.addParameter(param.advancedClone(_block));
-	}
-	for(AvatarAttribute ret: returnParameters) {
-	    am.addReturnParameter(ret.advancedClone(_block));
-	}
+    	am.setImplementationProvided(isImplementationProvided());
+    	for(AvatarAttribute param: parameters) {
+    		am.addParameter(param.advancedClone(_block));
+    	}
+    	for(AvatarAttribute ret: returnParameters) {
+    		am.addReturnParameter(ret.advancedClone(_block));
+    	}
     }
 
     public AvatarMethod advancedClone(AvatarStateMachineOwner _block) {
-	AvatarMethod am = new AvatarMethod(getName(), getReferenceObject());
-	setAdvancedClone(am, _block);	
-	return am;
+    	AvatarMethod am = new AvatarMethod(getName(), getReferenceObject());
+    	setAdvancedClone(am, _block);	
+    	return am;
     }
-
-
 }
diff --git a/src/main/java/avatartranslator/AvatarSignal.java b/src/main/java/avatartranslator/AvatarSignal.java
index cafc2478f817181a7e5df420a6f99a4e9db82154..1567d085d5e92a575558763b5e92a9acdc87ef41 100644
--- a/src/main/java/avatartranslator/AvatarSignal.java
+++ b/src/main/java/avatartranslator/AvatarSignal.java
@@ -36,10 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 /**
@@ -51,7 +47,7 @@ package avatartranslator;
  */
 public class AvatarSignal extends AvatarMethod {
 
-    // Signa type
+    // Signal type
     public final static int IN = 0;
     public final static int OUT = 1;
 
@@ -59,8 +55,9 @@ public class AvatarSignal extends AvatarMethod {
 
     public AvatarSignal(String _name, int _inout, Object _referenceObject) {
         super(_name, _referenceObject);
+        
         inout = _inout;
-	name = _name;
+        name = _name;
     }
 
     public int getInOut() {
@@ -87,6 +84,7 @@ public class AvatarSignal extends AvatarMethod {
         return AvatarTerm.isValidName (_signal);
     }
 
+    @Override
     public String toString() {
         String ret = super.toString();
         if (isOut()) {
@@ -95,7 +93,7 @@ public class AvatarSignal extends AvatarMethod {
         return "in " + ret;
     }
 
-
+    @Override
     public String toBasicString() {
         String ret = super.toBasicString();
         if (isOut()) {
@@ -139,18 +137,18 @@ public class AvatarSignal extends AvatarMethod {
         return cumul;
 	}*/
     //fin DG 
-    public AvatarSignal advancedClone(AvatarStateMachineOwner _block) {
-	AvatarSignal as = new AvatarSignal(getName(), getInOut(), getReferenceObject());
-	setAdvancedClone(as, _block);
-	return as;
-    }
+	public AvatarSignal advancedClone(AvatarStateMachineOwner _block) {
+		AvatarSignal as = new AvatarSignal(getName(), getInOut(), getReferenceObject());
+		setAdvancedClone(as, _block);
+		return as;
+	}
 
 
-    public boolean isCompatibleWith(AvatarSignal _as) {
-	if (getInOut() == _as.getInOut()) {
-	    return false;
-	}
+	public boolean isCompatibleWith(AvatarSignal _as) {
+		if (getInOut() == _as.getInOut()) {
+			return false;
+		}
 
-	return super.isCompatibleWith(_as);
-    }
+		return super.isCompatibleWith(_as);
+	}
 }
diff --git a/src/main/java/avatartranslator/AvatarSimpleGuard.java b/src/main/java/avatartranslator/AvatarSimpleGuard.java
index c45a25e9efc6e98bef828af42729f0112a91b431..7b2ea465a8386035a66cf4df70642f977e57fd99 100644
--- a/src/main/java/avatartranslator/AvatarSimpleGuard.java
+++ b/src/main/java/avatartranslator/AvatarSimpleGuard.java
@@ -36,13 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-
 /**
  * An AvatarSimpleGuard is an {@link AvatarGuard} that is of the form:
  * {@link AvatarTerm} binaryOp {@link AvatarTerm} or simply {@link AvatarTerm}, or else
diff --git a/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java b/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java
index 2054de47883a288f756295951abef95d8b160b3f..d6aa10cb0a4c0669e59db53270b843d7a6f2a4e4 100644
--- a/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java
+++ b/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java
@@ -36,14 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
-
+import java.util.Map;
 
 /**
  * An AvatarSimpleGuardDuo is an {@link AvatarSimpleGuard} that is of the form:
@@ -85,7 +80,7 @@ public class AvatarSimpleGuardDuo extends AvatarSimpleGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         if (this.termA instanceof AvatarAttribute)
         {
             this.termA = attributesMapping.get(this.termA);
diff --git a/src/main/java/avatartranslator/AvatarSimpleGuardMono.java b/src/main/java/avatartranslator/AvatarSimpleGuardMono.java
index f7ab27ac03485284847468cddebfd364321901ec..58aeefdd90e87cf1c8dfa12158c546ffab28903d 100644
--- a/src/main/java/avatartranslator/AvatarSimpleGuardMono.java
+++ b/src/main/java/avatartranslator/AvatarSimpleGuardMono.java
@@ -41,10 +41,9 @@
    * Class AvatarSimpleGuardMono
  */
 
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 
 /**
@@ -75,10 +74,11 @@ public class AvatarSimpleGuardMono extends AvatarSimpleGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
-        for (AvatarAttribute attr: attributesMapping.keySet())
-        {
-        }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
+//        for (AvatarAttribute attr: attributesMapping.keySet())
+//        {
+//        }
+        
         if (this.term instanceof AvatarAttribute)
         {
             this.term = attributesMapping.get(this.term);
diff --git a/src/main/java/avatartranslator/AvatarSpecification.java b/src/main/java/avatartranslator/AvatarSpecification.java
index 00a4340256127afcfe8c87e9f754c7192fc7d4b0..9d2bcf10a0bc03cea16cfe8df34291d32daecc77 100644
--- a/src/main/java/avatartranslator/AvatarSpecification.java
+++ b/src/main/java/avatartranslator/AvatarSpecification.java
@@ -36,10 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 import myutil.Conversion;
@@ -58,7 +54,8 @@ import java.util.ArrayList;
    * @author Ludovic APVRILLE
  */
 public class AvatarSpecification extends AvatarElement {
-    public static String[] ops = {">", "<", "+", "-", "*", "/", "[", "]", "(", ")", ":", "=", "==", ",", "!", "?", "{", "}", "|", "&"};
+    
+	public static String[] ops = {">", "<", "+", "-", "*", "/", "[", "]", "(", ")", ":", "=", "==", ",", "!", "?", "{", "}", "|", "&"};
     
     private List<AvatarBlock> blocks;
     private List<AvatarRelation> relations;
@@ -72,10 +69,10 @@ public class AvatarSpecification extends AvatarElement {
 
     //private AvatarBroadcast broadcast;
 
-    private LinkedList<AvatarPragma> pragmas;
-    private LinkedList<String> safety_pragmas;
-	private LinkedList<AvatarPragmaLatency> latency_pragmas;
-    private LinkedList<AvatarConstant> constants;
+    private List<AvatarPragma> pragmas;
+    private List<String> safety_pragmas;
+	private List<AvatarPragmaLatency> latency_pragmas;
+    private List<AvatarConstant> constants;
 	public List<String> checkedIDs;
     private boolean robustnessMade = false;
 
@@ -88,8 +85,8 @@ public class AvatarSpecification extends AvatarElement {
         relations = new LinkedList<AvatarRelation>();
         //broadcast = new AvatarBroadcast("Broadcast", _referenceObject);
         pragmas = new LinkedList<AvatarPragma>();
-	constants = new LinkedList<AvatarConstant>();
-	safety_pragmas = new LinkedList<String>();
+        constants = new LinkedList<AvatarConstant>();
+        safety_pragmas = new LinkedList<String>();
 		latency_pragmas = new LinkedList<AvatarPragmaLatency>();
         this.constants.add (AvatarConstant.FALSE);
         this.constants.add (AvatarConstant.TRUE);
@@ -165,11 +162,11 @@ public class AvatarSpecification extends AvatarElement {
     }
 
     public int getNbOfASMGraphicalElements() {
-	int cpt = 0;
-	for(AvatarBlock block: blocks) {
-	    cpt += block.getNbOfASMGraphicalElements();
-	}
-	return cpt;
+    	int cpt = 0;
+    	for(AvatarBlock block: blocks) {
+    		cpt += block.getNbOfASMGraphicalElements();
+    	}
+    	return cpt;
     }
 
     public boolean isASynchronousSignal(AvatarSignal _as) {
@@ -180,7 +177,6 @@ public class AvatarSpecification extends AvatarElement {
         }
 
         return false;
-
     }
 
     //DG
@@ -226,12 +222,13 @@ public class AvatarSpecification extends AvatarElement {
     }
 
     public void addConstant(AvatarConstant _constant) {
-	//Only add unique constants
-	if (this.getAvatarConstantWithName(_constant.getName())==null){
-	    constants.add(_constant);
-	}
+    	//Only add unique constants
+    	if (this.getAvatarConstantWithName(_constant.getName())==null){
+    		constants.add(_constant);
+    	}
     }
 
+    @Override
     public String toString() {
         //Thread.currentThread().dumpStack();
         StringBuffer sb = new StringBuffer("Blocks:\n");
@@ -246,11 +243,11 @@ public class AvatarSpecification extends AvatarElement {
         for(AvatarPragma pragma: pragmas) {
             sb.append("Pragma:" + pragma.toString() + "\n");
         }
-	for (AvatarConstant constant: constants){
-	    sb.append("Constant:" + constant.toString() + "\n");
-	}
-        return sb.toString();
+		for (AvatarConstant constant: constants){
+		    sb.append("Constant:" + constant.toString() + "\n");
+		}
 
+		return sb.toString();
     }
 
     public AvatarBlock getBlockWithName(String _name) {
@@ -263,9 +260,6 @@ public class AvatarSpecification extends AvatarElement {
         return null;
     }
 
-
-    
-
     public AvatarConstant getAvatarConstantWithName(String _name) {
         for(AvatarConstant constant: constants) {
             if (constant.getName().compareTo(_name)== 0) {
@@ -275,6 +269,7 @@ public class AvatarSpecification extends AvatarElement {
 
         return null;
     }
+
     public static String putAttributeValueInString(String _source, AvatarAttribute _at) {
         return Conversion.putVariableValueInString(ops, _source, _at.getName(), _at.getDefaultInitialValue());
     }
@@ -283,7 +278,6 @@ public class AvatarSpecification extends AvatarElement {
         return Conversion.putVariableValueInString(ops, _source, _at.getName(), _at.getInitialValue());
     }
 
-
     public void removeCompositeStates() {
         for(AvatarBlock block: blocks) {
 	    //TraceManager.addDev("- - - - - - - - Removing composite states of " + block);
@@ -291,17 +285,14 @@ public class AvatarSpecification extends AvatarElement {
         }
     }
 
-
     public void makeFullStates() {
-	for(AvatarBlock block: blocks) {
-	    //TraceManager.addDev("- - - - - - - - Making full states of " + block);
+    	for(AvatarBlock block: blocks) {
             block.getStateMachine().makeFullStates(block);
         }
     }
 
     public void removeRandoms() {
-	for(AvatarBlock block: blocks) {
-	    //TraceManager.addDev("- - - - - - - - Removing randoms of " + block);
+		for(AvatarBlock block: blocks) {
             block.getStateMachine().removeRandoms(block);
         }
     }
@@ -309,11 +300,11 @@ public class AvatarSpecification extends AvatarElement {
     public void removeTimers() {
         //renameTimers();
 
-        LinkedList<AvatarBlock> addedBlocks = new LinkedList<AvatarBlock>();
+        List<AvatarBlock> addedBlocks = new LinkedList<AvatarBlock>();
         for(AvatarBlock block: blocks) {
-	    if (block.hasTimerAttribute()) {
-		block.removeTimers(this, addedBlocks);
-	    }
+        	if (block.hasTimerAttribute()) {
+        		block.removeTimers(this, addedBlocks);
+        	}
         }
 
         for(int i=0; i<addedBlocks.size(); i++) {
@@ -348,81 +339,75 @@ public class AvatarSpecification extends AvatarElement {
      * The size of the infinite fifo is max 1024
      * and min 1
      */
-
-    
     public void removeFIFOs(int _maxSizeOfInfiniteFifo) {
-	
-	LinkedList<AvatarRelation> oldOnes = new LinkedList<AvatarRelation>();
-	LinkedList<AvatarRelation> newOnes = new LinkedList<AvatarRelation>();
-
-	int FIFO_ID = 0;
-	for(AvatarRelation ar: relations) {
-	    if (ar.isAsynchronous()) {
-		// Must be removed
-		int size = Math.min(_maxSizeOfInfiniteFifo, ar.getSizeOfFIFO());
-		TraceManager.addDev("***************************** Size of FIFO:" + size);
-		size = Math.max(1, size);
-		FIFO_ID = removeFIFO(ar, size, oldOnes, newOnes, FIFO_ID);
-	    }
-	}
-
-	for(AvatarRelation ar: oldOnes) {
-	    relations.remove(ar);
-	}
-
-	for(AvatarRelation ar: newOnes) {
-	    relations.add(ar);
-	}
-    }
-
-    private int removeFIFO(AvatarRelation _ar, int _sizeOfInfiniteFifo, LinkedList<AvatarRelation> _oldOnes, LinkedList<AvatarRelation> _newOnes, int FIFO_ID ) {
-	for(int i=0; i<_ar.nbOfSignals(); i++) {
-	    if (_ar.getSignal1(i).isIn()) {
-		FIFO_ID = removeFIFO(_ar, _ar.getSignal2(i), _ar.getSignal1(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID);
-	    } else {
-		FIFO_ID = removeFIFO(_ar, _ar.getSignal1(i), _ar.getSignal2(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID);
-	    }
-	}
-	_oldOnes.add(_ar);
-	return FIFO_ID;
+    	List<AvatarRelation> oldOnes = new LinkedList<AvatarRelation>();
+    	List<AvatarRelation> newOnes = new LinkedList<AvatarRelation>();
+
+    	int FIFO_ID = 0;
+    	for(AvatarRelation ar: relations) {
+    		if (ar.isAsynchronous()) {
+    			// Must be removed
+    			int size = Math.min(_maxSizeOfInfiniteFifo, ar.getSizeOfFIFO());
+    			TraceManager.addDev("***************************** Size of FIFO:" + size);
+    			size = Math.max(1, size);
+    			FIFO_ID = removeFIFO(ar, size, oldOnes, newOnes, FIFO_ID);
+    		}
+    	}
+
+    	for(AvatarRelation ar: oldOnes) {
+    		relations.remove(ar);
+    	}
+
+    	for(AvatarRelation ar: newOnes) {
+    		relations.add(ar);
+    	}
+    }
+
+    private int removeFIFO(AvatarRelation _ar, int _sizeOfInfiniteFifo, List<AvatarRelation> _oldOnes, List<AvatarRelation> _newOnes, int FIFO_ID ) {
+    	for(int i=0; i<_ar.nbOfSignals(); i++) {
+    		if (_ar.getSignal1(i).isIn()) {
+    			FIFO_ID = removeFIFO(_ar, _ar.getSignal2(i), _ar.getSignal1(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID);
+    		} else {
+    			FIFO_ID = removeFIFO(_ar, _ar.getSignal1(i), _ar.getSignal2(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID);
+    		}
+    	}
+    	_oldOnes.add(_ar);
+    	return FIFO_ID;
     }
-
     
-    private int removeFIFO(AvatarRelation _ar, AvatarSignal _sig1, AvatarSignal _sig2, int _sizeOfInfiniteFifo, LinkedList<AvatarRelation> _oldOnes, LinkedList<AvatarRelation> _newOnes, int FIFO_ID) {
-	// We create the new block, and the new relation towards the new block
-	String nameOfBlock = "FIFO__" + _sig1.getName() + "__" + _sig2.getName() + "__" + FIFO_ID;
-	AvatarBlock fifoBlock = AvatarBlockTemplate.getFifoBlock(nameOfBlock, this, _ar, _ar.getReferenceObject(), _sig1, _sig2, _sizeOfInfiniteFifo, FIFO_ID);
-	blocks.add(fifoBlock);
-
-	// We now need to create the new relation
-	AvatarRelation newAR1 = new AvatarRelation("FIFO__write_" + FIFO_ID, _ar.block1, fifoBlock, _ar.getReferenceObject());
-	newAR1.setAsynchronous(false);
-	newAR1.setPrivate(_ar.isPrivate());
-	newAR1.addSignals(_sig1, fifoBlock.getSignalByName("write"));
-	_newOnes.add(newAR1);
-
-	AvatarRelation newAR2 = new AvatarRelation("FIFO__read_" + FIFO_ID, fifoBlock, _ar.block2, _ar.getReferenceObject());
-	newAR2.setAsynchronous(false);
-	newAR2.setPrivate(_ar.isPrivate());
-	newAR2.addSignals(fifoBlock.getSignalByName("read"), _sig2);
-	_newOnes.add(newAR2);
-	
-	FIFO_ID ++;
-	return FIFO_ID;
+    private int removeFIFO(AvatarRelation _ar, AvatarSignal _sig1, AvatarSignal _sig2, int _sizeOfInfiniteFifo, List<AvatarRelation> _oldOnes, List<AvatarRelation> _newOnes, int FIFO_ID) {
+    	// We create the new block, and the new relation towards the new block
+    	String nameOfBlock = "FIFO__" + _sig1.getName() + "__" + _sig2.getName() + "__" + FIFO_ID;
+    	AvatarBlock fifoBlock = AvatarBlockTemplate.getFifoBlock(nameOfBlock, this, _ar, _ar.getReferenceObject(), _sig1, _sig2, _sizeOfInfiniteFifo, FIFO_ID);
+    	blocks.add(fifoBlock);
+
+    	// We now need to create the new relation
+    	AvatarRelation newAR1 = new AvatarRelation("FIFO__write_" + FIFO_ID, _ar.block1, fifoBlock, _ar.getReferenceObject());
+    	newAR1.setAsynchronous(false);
+    	newAR1.setPrivate(_ar.isPrivate());
+    	newAR1.addSignals(_sig1, fifoBlock.getSignalByName("write"));
+    	_newOnes.add(newAR1);
+
+    	AvatarRelation newAR2 = new AvatarRelation("FIFO__read_" + FIFO_ID, fifoBlock, _ar.block2, _ar.getReferenceObject());
+    	newAR2.setAsynchronous(false);
+    	newAR2.setPrivate(_ar.isPrivate());
+    	newAR2.addSignals(fifoBlock.getSignalByName("read"), _sig2);
+    	_newOnes.add(newAR2);
+
+    	FIFO_ID ++;
+    	return FIFO_ID;
     }
-    
-    
 
     public boolean areSynchronized(AvatarSignal as1, AvatarSignal as2) {
-	AvatarRelation ar = getAvatarRelationWithSignal(as1);
-	if (ar == null) {
-	    return false;
-	}
+    	AvatarRelation ar = getAvatarRelationWithSignal(as1);
+    	if (ar == null) {
+    		return false;
+    	}
 
-	int index1 = ar.getIndexOfSignal(as1);
-	int index2 = ar.getIndexOfSignal(as2);
+    	int index1 = ar.getIndexOfSignal(as1);
+    	int index2 = ar.getIndexOfSignal(as2);
 
-	return (index1 == index2);
+    	return (index1 == index2);
     }
 
     public AvatarRelation getAvatarRelationWithSignal(AvatarSignal _as) {
diff --git a/src/main/java/avatartranslator/AvatarState.java b/src/main/java/avatartranslator/AvatarState.java
index 99503b3a2abc0caeb2d923e72065765a98b47eaf..13702fb6ca968e817b732758f73aada713c91fa2 100644
--- a/src/main/java/avatartranslator/AvatarState.java
+++ b/src/main/java/avatartranslator/AvatarState.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package avatartranslator;
 
 /**
@@ -90,7 +89,6 @@ public class AvatarState extends AvatarStateElement {
         checkLatency = b;
     }
 
-
     public int hasEmptyTransitionsOnItself(AvatarStateMachine _asm) {
         AvatarTransition at;
         int cpt = 0;
diff --git a/src/main/java/avatartranslator/AvatarStateElement.java b/src/main/java/avatartranslator/AvatarStateElement.java
index 65c2258a57d550df0deaf0adbd0861e067b504d7..87584cbd42e3ff09d9856322e5fc6d967bded777 100644
--- a/src/main/java/avatartranslator/AvatarStateElement.java
+++ b/src/main/java/avatartranslator/AvatarStateElement.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 /**
@@ -49,13 +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, boolean _isCheckable, boolean _isChecked) {
-        super(_name, _referenceObject, _isCheckable, _isChecked);
+    public AvatarStateElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked ) {
+        super(_name, _referenceObject, _isCheckable, _isChecked );
     }
-
 }
diff --git a/src/main/java/avatartranslator/AvatarStateMachine.java b/src/main/java/avatartranslator/AvatarStateMachine.java
index 5f837d6f1b33f2ca8a5919c1122d3581babc91ec..2170c62dfd269da1f8f4007015d39c54d0d807e8 100644
--- a/src/main/java/avatartranslator/AvatarStateMachine.java
+++ b/src/main/java/avatartranslator/AvatarStateMachine.java
@@ -36,14 +36,12 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package avatartranslator;
 
 import myutil.TraceManager;
 
 import java.util.*;
 
-
 /**
  * Class AvatarStateMachine
  * State machine, with composite states
@@ -57,15 +55,14 @@ public class AvatarStateMachine extends AvatarElement {
     public AvatarStateElement[] allStates;
 
 
-    protected LinkedList<AvatarStateMachineElement> elements;
+    protected List<AvatarStateMachineElement> elements;
     protected AvatarStartState startState;
 
     private static int ID_ELT = 0;
 
-    protected LinkedList<AvatarStateMachineElement> states;
+    protected List<AvatarStateMachineElement> states;
     protected AvatarStateMachineOwner block;
 
-
     public AvatarStateMachine(AvatarStateMachineOwner _block, String _name, Object _referenceObject) {
         super(_name, _referenceObject);
         block = _block;
@@ -105,7 +102,7 @@ public class AvatarStateMachine extends AvatarElement {
         states = null;
     }
 
-    public LinkedList<AvatarStateMachineElement> getListOfElements() {
+    public List<AvatarStateMachineElement> getListOfElements() {
         return elements;
     }
 
@@ -159,7 +156,7 @@ public class AvatarStateMachine extends AvatarElement {
         return null;
     }
 
-    private int getSimplifiedElementsAux(HashMap<AvatarStateMachineElement, Integer> simplifiedElements, HashSet<AvatarStateMachineElement> visited, AvatarStateMachineElement root, int counter) {
+    private int getSimplifiedElementsAux( Map<AvatarStateMachineElement, Integer> simplifiedElements, Set<AvatarStateMachineElement> visited, AvatarStateMachineElement root, int counter) {
         if (visited.contains(root)) {
             Integer name = simplifiedElements.get(root);
             if (name == null) {
@@ -179,12 +176,13 @@ public class AvatarStateMachine extends AvatarElement {
         return counter;
     }
 
-    public HashMap<AvatarStateMachineElement, Integer> getSimplifiedElements() {
-        HashMap<AvatarStateMachineElement, Integer> simplifiedElements = new HashMap<AvatarStateMachineElement, Integer>();
+    public Map<AvatarStateMachineElement, Integer> getSimplifiedElements() {
+        Map<AvatarStateMachineElement, Integer> simplifiedElements = new HashMap<AvatarStateMachineElement, Integer>();
         this.getSimplifiedElementsAux(simplifiedElements, new HashSet<AvatarStateMachineElement>(), startState, 0);
         return simplifiedElements;
     }
 
+    @Override
     public String toString() {
         StringBuffer sb = new StringBuffer("State machine Id=" + getID() + "\n");
 
@@ -204,9 +202,8 @@ public class AvatarStateMachine extends AvatarElement {
         addStatesToNonEmptyTransitionsBetweenNonStateToState(_block);
     }
 
-
     private void addStatesToEmptyNonTerminalEmptyNext(AvatarBlock _b) {
-        ArrayList<AvatarStateMachineElement> toConsider = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toConsider = new ArrayList<AvatarStateMachineElement>();
         for (AvatarStateMachineElement elt : elements) {
             if (!(elt instanceof AvatarStopState)) {
                 if (elt.getNext(0) == null) {
@@ -231,7 +228,7 @@ public class AvatarStateMachine extends AvatarElement {
     private void addStatesToNonEmptyTransitionsBetweenNonStateToState(AvatarBlock _block) {
         AvatarStateMachineElement next;
         AvatarStateMachineElement previous;
-        ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
         int id = 0;
 
         for (AvatarStateMachineElement elt : elements) {
@@ -273,7 +270,7 @@ public class AvatarStateMachine extends AvatarElement {
     private void addStatesToTransitionsBetweenTwoNonStates(AvatarBlock _block) {
         AvatarStateMachineElement next;
         AvatarStateMachineElement previous;
-        ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
         int id = 0;
 
         for (AvatarStateMachineElement elt : elements) {
@@ -319,7 +316,7 @@ public class AvatarStateMachine extends AvatarElement {
     private void addStatesToActionTransitions(AvatarBlock _block) {
         AvatarStateMachineElement next;
         AvatarStateMachineElement previous;
-        ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
         int id = 0;
         for (AvatarStateMachineElement elt : elements) {
             if (elt instanceof AvatarTransition) {
@@ -384,11 +381,10 @@ public class AvatarStateMachine extends AvatarElement {
 
     }
 
-
     public void removeRandoms(AvatarBlock _block) {
         int id = 0;
-        ArrayList<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>();
-        ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
         AvatarStateMachineElement next;
         AvatarStateMachineElement previous;
 
@@ -444,7 +440,7 @@ public class AvatarStateMachine extends AvatarElement {
     public void removeCompositeStates(AvatarBlock _block) {
         //TraceManager.addDev("\n-------------- Remove composite states ---------------\n");
 
-        LinkedList<AvatarState> lists = removeAllInternalStartStates();
+        /*LinkedList<AvatarState> lists =*/ removeAllInternalStartStates();
 
         AvatarTransition at = getAvatarCompositeTransition();
 
@@ -497,10 +493,10 @@ public class AvatarStateMachine extends AvatarElement {
         // Contains in odd index: composite state
         // even index: new state replacing the start state
 
-        LinkedList<AvatarState> lists = removeAllInternalStartStates();
-        ArrayList<AvatarTransition> ats;
-        ArrayList<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>();
-        ArrayList<AvatarState> states = new ArrayList<AvatarState>();
+        /*List<AvatarState> lists =*/ removeAllInternalStartStates();
+        //List<AvatarTransition> ats;
+        List<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarState> states = new ArrayList<AvatarState>();
 
         AvatarTransition at;
 
@@ -536,7 +532,6 @@ public class AvatarStateMachine extends AvatarElement {
             }
 
             //removeCompositeTransition2(at, _block);
-
         }
 
         for (AvatarStateMachineElement asme : toRemove) {
@@ -678,19 +673,19 @@ public class AvatarStateMachine extends AvatarElement {
         }
     }
 
-
-    private ArrayList<AvatarTransition> getAllAvatarCompositeTransitions() {
-        ArrayList<AvatarTransition> ats = new ArrayList<AvatarTransition>();
-        for (AvatarStateMachineElement element : elements) {
-            if (element instanceof AvatarTransition) {
-                if ((isACompositeTransition((AvatarTransition) element))) {
-                    ats.add((AvatarTransition) element);
-                }
-            }
-        }
-
-        return ats;
-    }
+//
+//    private List<AvatarTransition> getAllAvatarCompositeTransitions() {
+//        List<AvatarTransition> ats = new ArrayList<AvatarTransition>();
+//        for (AvatarStateMachineElement element : elements) {
+//            if (element instanceof AvatarTransition) {
+//                if ((isACompositeTransition((AvatarTransition) element))) {
+//                    ats.add((AvatarTransition) element);
+//                }
+//            }
+//        }
+//
+//        return ats;
+//    }
 
 
     private void addFullInternalStates(AvatarState state, AvatarTransition _at) {
@@ -878,160 +873,160 @@ public class AvatarStateMachine extends AvatarElement {
 
     }*/
 
-    private void splitAvatarTransitionOld(AvatarTransition _at, AvatarState _currentState) {
-        /*if (_at.hasCompute()) {
-          AvatarState as0 = new AvatarState("splitstate0", null);
-          AvatarState as1 = new AvatarState("splitstate1", null);
-
-
-
-          AvatarTransition at = _at.basicCloneMe();
-          _at.removeAllActions();
-          _at.removeAllNexts();
-          _at.addNext(as);
-          as.addNext(at);
-          addElement(as);
-          addElement(at);
-          splitAvatarTransition(at);
-          }*/
-
-        TraceManager.addDev(" - - - - - - - - - - Split transition nbofactions=" + _at.getNbOfAction());
-        if (_at.getNbOfAction() > 1) {
-            TraceManager.addDev("New split state");
-            AvatarState as = new AvatarState("splitstate", null);
-            as.setHidden(true);
-            as.setState(_currentState);
-            AvatarTransition at = (AvatarTransition) (_at.basicCloneMe(block));
-            _at.removeAllActionsButTheFirstOne();
-            at.removeFirstAction();
-            at.addNext(_at.getNext(0));
-            _at.removeAllNexts();
-            _at.addNext(as);
-            as.addNext(at);
-            addElement(as);
-            addElement(at);
-
-            splitAvatarTransition(_at, _currentState);
-        }
-
-        if (_at.hasDelay()) {
-            AvatarStateMachineElement element = getPreviousElementOf(_at);
-            if (element.hasInUpperState(_currentState) == true) {
-                if (!(element instanceof AvatarState)) {
-                    // Must add an intermediate state
-                    String tmp = findUniqueStateName("internalstate__");
-                    AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject());
-                    addElement(as);
-                    as.setHidden(true);
-                    as.setState(_currentState);
-                    AvatarTransition atn = new AvatarTransition(_at.getBlock(), "internaltransition", null);
-                    addElement(atn);
-                    element.removeNext(_at);
-                    element.addNext(atn);
-                    atn.addNext(as);
-                    as.addNext(_at);
-                    splitAvatarTransition(_at, _currentState);
-                }
-            }
-        }
-    }
-
-    private void adaptCompositeTransition(AvatarTransition _at, AvatarStateMachineElement _element, int _transitionID) {
-        AvatarState as;
-        AvatarTransition at;
-        LinkedList<AvatarStateMachineElement> ll;
-        String tmp;
-
-        // It cannot be a start / stop state since they have been previously removed ..
-        if (_element instanceof AvatarActionOnSignal) {
-            AvatarStateMachineElement element = _element.getNext(0);
-            if (element instanceof AvatarTransition) {
-                if (!(((AvatarTransition) element).isEmpty())) {
-                    //We need to create a new state
-                    tmp = findUniqueStateName("internalstate__");
-                    TraceManager.addDev("Creating state with name=" + tmp);
-                    as = new AvatarState(tmp, null);
-                    addElement(as);
-                    as.setHidden(true);
-                    at = new AvatarTransition(_at.getBlock(), "internaltransition", null);
-                    addElement(at);
-                    //_element -> at -> as -> element
-
-                    _element.removeNext(element);
-                    _element.addNext(at);
-
-                    at.addNext(as);
-                    as.addNext(element);
-
-                    at = cloneCompositeTransition(_at);
-                    //addElement(at);
-                    as.addNext(at);
-                } else {
-                    // We see if a state follows it. Otherwise, we create one
-                    if (!(element.getNext(0) instanceof AvatarState)) {
-                        //We need to create a new state
-                        tmp = findUniqueStateName("internalstate__");
-                        TraceManager.addDev("Creating state with name=" + tmp);
-                        as = new AvatarState(tmp, null);
-                        addElement(as);
-                        as.setHidden(true);
-                        at = new AvatarTransition(_at.getBlock(), "internaltransition", null);
-                        addElement(at);
-                        //_element -> at -> as -> element
-
-                        _element.removeNext(element);
-                        _element.addNext(at);
-
-                        at.addNext(as);
-                        as.addNext(element);
-
-                        at = cloneCompositeTransition(_at);
-                        //addElement(at);
-                        as.addNext(at);
-
-                    } else {
-                        //We link to this state-> will be done later
-                    }
-                }
-            }
-            /*ll = getPreviousElementsOf(_element);
-              for(AvatarStateMachineElement element: ll) {
-              if (element instanceof AvatarTransition) {
-              // if empty transition: we do just nothing
-              if (!(((AvatarTransition)element).isEmpty())) {
-              tmp = findUniqueStateName("internalstate__");
-              TraceManager.addDev("Creating state with name=" + tmp);
-              as = new AvatarState(tmp, null);
-              as.setHidden(true);
-              element.removeNext(_element);
-              element.addNext(as);
-              at = new AvatarTransition("internaltransition", null);
-              addElement(at);
-              at.addNext(_element);
-              as.addNext(at);
-              addElement(as);
-
-              at = cloneCompositeTransition(_at);
-              addElement(at);
-              as.addNext(at);
-              }
-
-              } else {
-              // Badly formed machine!
-              TraceManager.addError("Badly formed sm (removing composite transition)");
-              }
-              }*/
-
-        } else if (_element instanceof AvatarState) {
-            at = cloneCompositeTransition(_at);
-            //addElement(at);
-            _element.addNext(at);
-        } else if (_element instanceof AvatarTransition) {
-            // Nothing to do since they shall have been split before
-        } else {
-            // Nothing to do either
-        }
-    }
+//    private void splitAvatarTransitionOld(AvatarTransition _at, AvatarState _currentState) {
+//        /*if (_at.hasCompute()) {
+//          AvatarState as0 = new AvatarState("splitstate0", null);
+//          AvatarState as1 = new AvatarState("splitstate1", null);
+//
+//
+//
+//          AvatarTransition at = _at.basicCloneMe();
+//          _at.removeAllActions();
+//          _at.removeAllNexts();
+//          _at.addNext(as);
+//          as.addNext(at);
+//          addElement(as);
+//          addElement(at);
+//          splitAvatarTransition(at);
+//          }*/
+//
+//        TraceManager.addDev(" - - - - - - - - - - Split transition nbofactions=" + _at.getNbOfAction());
+//        if (_at.getNbOfAction() > 1) {
+//            TraceManager.addDev("New split state");
+//            AvatarState as = new AvatarState("splitstate", null);
+//            as.setHidden(true);
+//            as.setState(_currentState);
+//            AvatarTransition at = (AvatarTransition) (_at.basicCloneMe(block));
+//            _at.removeAllActionsButTheFirstOne();
+//            at.removeFirstAction();
+//            at.addNext(_at.getNext(0));
+//            _at.removeAllNexts();
+//            _at.addNext(as);
+//            as.addNext(at);
+//            addElement(as);
+//            addElement(at);
+//
+//            splitAvatarTransition(_at, _currentState);
+//        }
+//
+//        if (_at.hasDelay()) {
+//            AvatarStateMachineElement element = getPreviousElementOf(_at);
+//            if (element.hasInUpperState(_currentState) == true) {
+//                if (!(element instanceof AvatarState)) {
+//                    // Must add an intermediate state
+//                    String tmp = findUniqueStateName("internalstate__");
+//                    AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject());
+//                    addElement(as);
+//                    as.setHidden(true);
+//                    as.setState(_currentState);
+//                    AvatarTransition atn = new AvatarTransition(_at.getBlock(), "internaltransition", null);
+//                    addElement(atn);
+//                    element.removeNext(_at);
+//                    element.addNext(atn);
+//                    atn.addNext(as);
+//                    as.addNext(_at);
+//                    splitAvatarTransition(_at, _currentState);
+//                }
+//            }
+//        }
+//    }
+
+//    private void adaptCompositeTransition(AvatarTransition _at, AvatarStateMachineElement _element, int _transitionID) {
+//        AvatarState as;
+//        AvatarTransition at;
+//        LinkedList<AvatarStateMachineElement> ll;
+//        String tmp;
+//
+//        // It cannot be a start / stop state since they have been previously removed ..
+//        if (_element instanceof AvatarActionOnSignal) {
+//            AvatarStateMachineElement element = _element.getNext(0);
+//            if (element instanceof AvatarTransition) {
+//                if (!(((AvatarTransition) element).isEmpty())) {
+//                    //We need to create a new state
+//                    tmp = findUniqueStateName("internalstate__");
+//                    TraceManager.addDev("Creating state with name=" + tmp);
+//                    as = new AvatarState(tmp, null);
+//                    addElement(as);
+//                    as.setHidden(true);
+//                    at = new AvatarTransition(_at.getBlock(), "internaltransition", null);
+//                    addElement(at);
+//                    //_element -> at -> as -> element
+//
+//                    _element.removeNext(element);
+//                    _element.addNext(at);
+//
+//                    at.addNext(as);
+//                    as.addNext(element);
+//
+//                    at = cloneCompositeTransition(_at);
+//                    //addElement(at);
+//                    as.addNext(at);
+//                } else {
+//                    // We see if a state follows it. Otherwise, we create one
+//                    if (!(element.getNext(0) instanceof AvatarState)) {
+//                        //We need to create a new state
+//                        tmp = findUniqueStateName("internalstate__");
+//                        TraceManager.addDev("Creating state with name=" + tmp);
+//                        as = new AvatarState(tmp, null);
+//                        addElement(as);
+//                        as.setHidden(true);
+//                        at = new AvatarTransition(_at.getBlock(), "internaltransition", null);
+//                        addElement(at);
+//                        //_element -> at -> as -> element
+//
+//                        _element.removeNext(element);
+//                        _element.addNext(at);
+//
+//                        at.addNext(as);
+//                        as.addNext(element);
+//
+//                        at = cloneCompositeTransition(_at);
+//                        //addElement(at);
+//                        as.addNext(at);
+//
+//                    } else {
+//                        //We link to this state-> will be done later
+//                    }
+//                }
+//            }
+//            /*ll = getPreviousElementsOf(_element);
+//              for(AvatarStateMachineElement element: ll) {
+//              if (element instanceof AvatarTransition) {
+//              // if empty transition: we do just nothing
+//              if (!(((AvatarTransition)element).isEmpty())) {
+//              tmp = findUniqueStateName("internalstate__");
+//              TraceManager.addDev("Creating state with name=" + tmp);
+//              as = new AvatarState(tmp, null);
+//              as.setHidden(true);
+//              element.removeNext(_element);
+//              element.addNext(as);
+//              at = new AvatarTransition("internaltransition", null);
+//              addElement(at);
+//              at.addNext(_element);
+//              as.addNext(at);
+//              addElement(as);
+//
+//              at = cloneCompositeTransition(_at);
+//              addElement(at);
+//              as.addNext(at);
+//              }
+//
+//              } else {
+//              // Badly formed machine!
+//              TraceManager.addError("Badly formed sm (removing composite transition)");
+//              }
+//              }*/
+//
+//        } else if (_element instanceof AvatarState) {
+//            at = cloneCompositeTransition(_at);
+//            //addElement(at);
+//            _element.addNext(at);
+//        } else if (_element instanceof AvatarTransition) {
+//            // Nothing to do since they shall have been split before
+//        } else {
+//            // Nothing to do either
+//        }
+//    }
 
 
     // Return the first previous element met. Shall be used preferably only for transitions
@@ -1045,8 +1040,8 @@ public class AvatarStateMachine extends AvatarElement {
         return null;
     }
 
-    private LinkedList<AvatarStateMachineElement> getPreviousElementsOf(AvatarStateMachineElement _elt) {
-        LinkedList<AvatarStateMachineElement> ll = new LinkedList<AvatarStateMachineElement>();
+    private List<AvatarStateMachineElement> getPreviousElementsOf(AvatarStateMachineElement _elt) {
+        List<AvatarStateMachineElement> ll = new LinkedList<AvatarStateMachineElement>();
         for (AvatarStateMachineElement element : elements) {
             if (element.hasNext(_elt)) {
                 ll.add(element);
@@ -1083,11 +1078,11 @@ public class AvatarStateMachine extends AvatarElement {
 
     // All transitions reaching a state that has an internal start state
     // shall in fact go directly to the nexts of the start state
-    public LinkedList<AvatarState> removeAllInternalStartStates() {
+    public List<AvatarState> removeAllInternalStartStates() {
         // identify allstart state
-        LinkedList<AvatarStartState> ll = new LinkedList<AvatarStartState>();
+        List<AvatarStartState> ll = new LinkedList<AvatarStartState>();
 
-        LinkedList<AvatarState> removedinfos = new LinkedList<AvatarState>();
+        List<AvatarState> removedinfos = new LinkedList<AvatarState>();
 
         for (AvatarStateMachineElement element : elements) {
             if ((element instanceof AvatarStartState) && (element.getState() != null)) {
@@ -1097,7 +1092,7 @@ public class AvatarStateMachine extends AvatarElement {
         }
 
         AvatarState as0;
-        LinkedList<AvatarStateMachineElement> le;
+        List<AvatarStateMachineElement> le;
         for (AvatarStartState as : ll) {
             AvatarState astate = as.getState();
             if (as != null) {
@@ -1163,8 +1158,8 @@ public class AvatarStateMachine extends AvatarElement {
         AvatarSetTimer ast;
         AvatarTimerOperator ato;
 
-        LinkedList<AvatarStateMachineElement> olds = new LinkedList<AvatarStateMachineElement>();
-        LinkedList<AvatarStateMachineElement> news = new LinkedList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> olds = new LinkedList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> news = new LinkedList<AvatarStateMachineElement>();
 
 
         for (AvatarStateMachineElement elt : elements) {
@@ -1177,7 +1172,7 @@ public class AvatarStateMachine extends AvatarElement {
                 news.add(aaos);
 
                 // Modifying the transition just before
-                LinkedList<AvatarStateMachineElement> previous = getPreviousElementsOf(ast);
+                List<AvatarStateMachineElement> previous = getPreviousElementsOf(ast);
                 if (previous.size() == 1) {
                     if (previous.get(0) instanceof AvatarTransition) {
                         AvatarTransition at = (AvatarTransition) (previous.get(0));
@@ -1225,7 +1220,7 @@ public class AvatarStateMachine extends AvatarElement {
         removeElement(oldone);
 
         // Previous elements
-        LinkedList<AvatarStateMachineElement> previous = getPreviousElementsOf(oldone);
+        List<AvatarStateMachineElement> previous = getPreviousElementsOf(oldone);
         for (AvatarStateMachineElement elt : previous) {
             elt.replaceAllNext(oldone, newone);
         }
@@ -1251,7 +1246,7 @@ public class AvatarStateMachine extends AvatarElement {
         //TraceManager.addDev("ADDING TIMER: " + aa.getName());
 
         // Timer is set at the entrance in the composite state
-        LinkedList<AvatarTransition> ll = findEntranceTransitionElements((AvatarState) (getPreviousElementOf(_at)));
+        List<AvatarTransition> ll = findEntranceTransitionElements((AvatarState) (getPreviousElementOf(_at)));
 
         AvatarTransition newat0, newat1;
         AvatarSetTimer ast;
@@ -1300,7 +1295,7 @@ public class AvatarStateMachine extends AvatarElement {
         newat1.addNext(as);
         _at.setDelays("", "");
 
-        LinkedList<AvatarStateMachineElement> elts = getElementsLeadingTo(_at);
+        List<AvatarStateMachineElement> elts = getElementsLeadingTo(_at);
 
         for (AvatarStateMachineElement elt : elts) {
             elt.removeNext(_at);
@@ -1312,9 +1307,9 @@ public class AvatarStateMachine extends AvatarElement {
         return newat0;
     }
 
-    public LinkedList<AvatarTransition> findEntranceTransitionElements(AvatarState _state) {
+    public List<AvatarTransition> findEntranceTransitionElements(AvatarState _state) {
         //TraceManager.addDev("Searching for transitions entering:" + _state.getName());
-        LinkedList<AvatarTransition> ll = new LinkedList<AvatarTransition>();
+        List<AvatarTransition> ll = new LinkedList<AvatarTransition>();
 
         for (AvatarStateMachineElement elt : elements) {
             if (elt instanceof AvatarTransition) {
@@ -1330,8 +1325,8 @@ public class AvatarStateMachine extends AvatarElement {
         return ll;
     }
 
-    public LinkedList<AvatarStateMachineElement> getElementsLeadingTo(AvatarStateMachineElement _elt) {
-        LinkedList<AvatarStateMachineElement> elts = new LinkedList<AvatarStateMachineElement>();
+    public List<AvatarStateMachineElement> getElementsLeadingTo(AvatarStateMachineElement _elt) {
+        List<AvatarStateMachineElement> elts = new LinkedList<AvatarStateMachineElement>();
 
         for (AvatarStateMachineElement elt : elements) {
             if (elt.hasNext(_elt)) {
@@ -1340,10 +1335,8 @@ public class AvatarStateMachine extends AvatarElement {
         }
 
         return elts;
-
     }
 
-
     public void modifyAvatarTransition(AvatarTransition _at) {
         /*if ((_at.getNbOfAction() > 0) || (_at.hasCompute())) {
           return;
@@ -1468,7 +1461,7 @@ public class AvatarStateMachine extends AvatarElement {
     }
 
     public void removeStopStatesOf(AvatarState _as) {
-        LinkedList<AvatarStopState> ll = new LinkedList<AvatarStopState>();
+        List<AvatarStopState> ll = new LinkedList<AvatarStopState>();
 
         for (AvatarStateMachineElement elt : elements) {
             if (elt instanceof AvatarStopState) {
@@ -1486,7 +1479,6 @@ public class AvatarStateMachine extends AvatarElement {
         }
     }
 
-
     public String findUniqueStateName(String name) {
         int id = 0;
         boolean found;
@@ -1529,8 +1521,8 @@ public class AvatarStateMachine extends AvatarElement {
         /* Perform BFS for AvatarLibraryFunctionCall elements. When one is found, replace it by the state machine and fix the links */
         LinkedList<AvatarStateMachineElement> toVisit = new LinkedList<AvatarStateMachineElement>();
         toVisit.add(this.startState);
-        HashSet<AvatarStateMachineElement> visited = new HashSet<AvatarStateMachineElement>();
-        HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement> callsTranslated = new HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement>();
+        Set<AvatarStateMachineElement> visited = new HashSet<AvatarStateMachineElement>();
+        Map<AvatarLibraryFunctionCall, AvatarStateMachineElement> callsTranslated = new HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement>();
 
         while (!toVisit.isEmpty()) {
             /* Get the first element of the queue */
@@ -1706,4 +1698,21 @@ public class AvatarStateMachine extends AvatarElement {
             }
         }
     }
+    
+    public AvatarTransition findEmptyTransition( 	final AvatarStateMachineElement elementSource,
+    												final AvatarStateMachineElement elementTarget ) {
+        for ( final AvatarStateMachineElement element : elements ) {
+            if ( element instanceof AvatarTransition ) {
+            	final AvatarTransition transition = (AvatarTransition) element;
+            	
+            	if ( transition.isEmpty() && !transition.getNexts().isEmpty() ) {
+            		if ( getPreviousElementOf( transition ) == elementSource && transition.getNexts().get( 0 ) == elementTarget ) {
+            			return transition;
+            		}
+            	}
+            }
+        }
+        
+        return null;
+    }
 }
diff --git a/src/main/java/avatartranslator/AvatarStateMachineElement.java b/src/main/java/avatartranslator/AvatarStateMachineElement.java
index e93dc6a3009e831c5671be4208b69a22facd3294..90e69d16b2a05b13d94e840c7b2254d6aae9bdef 100644
--- a/src/main/java/avatartranslator/AvatarStateMachineElement.java
+++ b/src/main/java/avatartranslator/AvatarStateMachineElement.java
@@ -43,6 +43,7 @@ import ui.TGComponent;
 
 import java.util.HashMap;
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -54,7 +55,7 @@ import java.util.LinkedList;
  */
 public abstract class AvatarStateMachineElement extends AvatarElement {
 
-    protected LinkedList<AvatarStateMachineElement> nexts;
+    protected List<AvatarStateMachineElement> nexts;
     private AvatarState myState;
 
     private boolean isCheckable;
@@ -63,18 +64,21 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
 
     private boolean isHidden = false;
 
-    public AvatarStateMachineElement(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
-        nexts = new LinkedList<AvatarStateMachineElement>();
-        canBeVerified = false;
+    public AvatarStateMachineElement(	final String _name, 
+    									final Object _referenceObject ) {
+    	this( _name, _referenceObject, false, false );
     }
 
-    public AvatarStateMachineElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked) {
-        super(_name, _referenceObject);
+    public AvatarStateMachineElement(	String _name,
+    									Object _referenceObject,
+    									boolean _isCheckable,
+    									final boolean _isChecked ) {
+        super( _name, _referenceObject );
+        
         nexts = new LinkedList<AvatarStateMachineElement>();
         isCheckable = _isCheckable;
-        isChecked = _isChecked;
         canBeVerified = false;
+        isChecked = _isChecked;
     }
 
     public void setAsVerifiable(boolean _canBeVerified) {
@@ -107,7 +111,7 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
         }
     }
 
-    public LinkedList<AvatarStateMachineElement> getNexts() {
+    public List<AvatarStateMachineElement> getNexts() {
         return this.nexts;
     }
 
@@ -203,11 +207,12 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
 
     }
 
+    @Override
     public String toString() {
         return toString(null);
     }
 
-    public String toString(String val) {
+    protected String toString(String val) {
         String ret = getExtendedName() + " ID=" + getID();
         if (myState == null) {
             ret += " / top level operator\n";
@@ -255,7 +260,7 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
 
     public void replaceAllNext(AvatarStateMachineElement oldone, AvatarStateMachineElement newone) {
         if (nexts.contains(oldone)) {
-            LinkedList<AvatarStateMachineElement> oldnexts = nexts;
+            List<AvatarStateMachineElement> oldnexts = nexts;
             nexts = new LinkedList<AvatarStateMachineElement>();
             for (AvatarStateMachineElement elt : oldnexts) {
                 if (elt == oldone) {
@@ -391,6 +396,4 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
     public abstract String getNiceName();
 
     public abstract void translate(AvatarTranslator translator, Object arg);
-
-
 }
diff --git a/src/main/java/avatartranslator/AvatarStateMachineOwner.java b/src/main/java/avatartranslator/AvatarStateMachineOwner.java
index c5dba3d280cbd5efd95769edd11dfb4bf38a958e..0957a6226769f3bb57da7d2022dd9ae59634bf34 100644
--- a/src/main/java/avatartranslator/AvatarStateMachineOwner.java
+++ b/src/main/java/avatartranslator/AvatarStateMachineOwner.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.LinkedList;
-
+import java.util.List;
 
 /**
  *
@@ -50,10 +46,14 @@ import java.util.LinkedList;
  * @author Florian LUGOU
  */
 public interface AvatarStateMachineOwner {
-    String getName();
-    AvatarStateMachine getStateMachine();
-    AvatarSignal getAvatarSignalWithName(String signalName);
-    AvatarMethod getAvatarMethodWithName(String methodName);
+    
+	String getName();
+   
+	AvatarStateMachine getStateMachine();
+    
+	AvatarSignal getAvatarSignalWithName(String signalName);
+    
+	AvatarMethod getAvatarMethodWithName(String methodName);
 
     /**
      * Look for an attribute in the list of local attributes, parameters and return values.
@@ -66,7 +66,10 @@ public interface AvatarStateMachineOwner {
     AvatarAttribute getAvatarAttributeWithName(String attributeName);
 
     AvatarSpecification getAvatarSpecification();
-    LinkedList<AvatarAttribute> getAttributes();
+    
+    List<AvatarAttribute> getAttributes();
+    
     void addAttribute(AvatarAttribute attribute);
+    
     AvatarStateMachineOwner advancedClone(AvatarSpecification avspec);
 }
diff --git a/src/main/java/avatartranslator/AvatarStopState.java b/src/main/java/avatartranslator/AvatarStopState.java
index acea1bbec529acb17181700be126ee090b4de1d2..99fa3c7fb620ec15543732132649ae42719b29ac 100644
--- a/src/main/java/avatartranslator/AvatarStopState.java
+++ b/src/main/java/avatartranslator/AvatarStopState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 /**
@@ -55,8 +52,9 @@ public class AvatarStopState extends AvatarStateElement {
 
     public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
         AvatarStopState astop = new AvatarStopState(getName(), getReferenceObject());
-	astop.setAsVerifiable(canBeVerified());
-	return astop;
+        astop.setAsVerifiable(canBeVerified());
+	
+        return astop;
 	//return null;
     }
 
@@ -64,7 +62,7 @@ public class AvatarStopState extends AvatarStateElement {
         return "Stop state";
     }
 
-    public void translate (AvatarTranslator translator, Object arg) {
+    public void translate(AvatarTranslator translator, Object arg) {
         translator.translateStopState (this, arg);
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarSyntaxChecker.java b/src/main/java/avatartranslator/AvatarSyntaxChecker.java
index 253302658ff05aecd99f9dcfab384ee7ed974f2a..96360b83b7db41ad844cd324bd2bbd1446d350ea 100644
--- a/src/main/java/avatartranslator/AvatarSyntaxChecker.java
+++ b/src/main/java/avatartranslator/AvatarSyntaxChecker.java
@@ -36,11 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
+import java.io.StringReader;
+import java.util.List;
+
 import compiler.tmlparser.ParseException;
 import compiler.tmlparser.SimpleNode;
 import compiler.tmlparser.TMLExprParser;
@@ -50,9 +50,6 @@ import myutil.Conversion;
 import myutil.IntExpressionEvaluator;
 import myutil.TraceManager;
 
-import java.io.StringReader;
-import java.util.ArrayList;
-
 
 /**
  * Class AvatarSyntaxChecker
@@ -62,7 +59,6 @@ import java.util.ArrayList;
  */
 public class AvatarSyntaxChecker  {
 
-
     public AvatarSyntaxChecker() {
     }
 
@@ -87,7 +83,7 @@ public class AvatarSyntaxChecker  {
         BoolExpressionEvaluator bee = new BoolExpressionEvaluator();
 
         //TraceManager.addDev("Evaluating (modified) guard:" + act);
-        boolean result = bee.getResultOf(act);
+        //boolean result = bee.getResultOf(act);
         if (bee.getError() != null) {
             //TraceManager.addDev("Error: " + bee.getError());
             return -1;
@@ -114,7 +110,7 @@ public class AvatarSyntaxChecker  {
         IntExpressionEvaluator iee = new IntExpressionEvaluator();
 
         //TraceManager.addDev("Evaluating int:" + act);
-        double result = iee.getResultOf(act);
+        //double result = iee.getResultOf(act);
         if (iee.getError() != null) {
             //TraceManager.addDev("Error: " + iee.getError());
             return -1;
@@ -163,7 +159,7 @@ public class AvatarSyntaxChecker  {
         BoolExpressionEvaluator bee = new BoolExpressionEvaluator();
 
         //TraceManager.addDev("IsValidBoolExpr Evaluating bool:" + act);
-        boolean result = bee.getResultOf(act);
+        //boolean result = bee.getResultOf(act);
         if (bee.getError() != null) {
             //TraceManager.addDev("Error: " + bee.getError());
             return -1;
@@ -264,7 +260,7 @@ public class AvatarSyntaxChecker  {
         }  
 
         // Tree analysis: if the tree contains a variable, then, this variable has not been declared
-        ArrayList<String> vars = root.getVariables();
+        List<String> vars = root.getVariables();
         for(String s: vars) {
             // is that string a variable?
             if ((s.compareTo("true") != 0) && (s.compareTo("false") != 0) && (s.compareTo("nil") != 0)) {
diff --git a/src/main/java/avatartranslator/AvatarSyntaxTranslator.java b/src/main/java/avatartranslator/AvatarSyntaxTranslator.java
index 15e403fe145730444caf76b39e3bf9b95e80c97b..65cf724cdb308f4416f9c244e2691711dce95982 100644
--- a/src/main/java/avatartranslator/AvatarSyntaxTranslator.java
+++ b/src/main/java/avatartranslator/AvatarSyntaxTranslator.java
@@ -36,10 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 /**
diff --git a/src/main/java/avatartranslator/AvatarTerm.java b/src/main/java/avatartranslator/AvatarTerm.java
index a1a3b96671587561fabd5a1b12b4036353260d68..45d9b5dfaae6b52e59a3893fca590d87388bd68b 100644
--- a/src/main/java/avatartranslator/AvatarTerm.java
+++ b/src/main/java/avatartranslator/AvatarTerm.java
@@ -36,17 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
+import java.util.Map;
+
 import myutil.TraceManager;
-import translator.RTLOTOSKeyword;
 import translator.JKeyword;
-
-import java.util.HashMap;
+import translator.RTLOTOSKeyword;
 
 /**
    * Class AvatarTerm
@@ -94,7 +90,7 @@ public abstract class AvatarTerm extends AvatarElement {
 
         try {
             // TODO: replace that by a true AvatarNumeric
-            int i = Integer.parseInt (toParse);
+            //int i = Integer.parseInt (toParse);
             result = new AvatarConstant (toParse, block);
             block.getAvatarSpecification ().addConstant ((AvatarConstant) result);
             return result;
@@ -176,5 +172,5 @@ public abstract class AvatarTerm extends AvatarElement {
      * @param attributesMapping
      *      The mapping used to replace the attributes of the term. All the attributes of the block should be present as keys.
      */
-    public abstract void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping);
+    public abstract void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping);
 }
diff --git a/src/main/java/avatartranslator/AvatarTermFunction.java b/src/main/java/avatartranslator/AvatarTermFunction.java
index 67da1aeb40e0f4b306c4c3a33f1fc9723a1db34b..ee3b154c59c1b7d8a2977c53a57392b728a4c2aa 100644
--- a/src/main/java/avatartranslator/AvatarTermFunction.java
+++ b/src/main/java/avatartranslator/AvatarTermFunction.java
@@ -36,12 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarTermFunction
@@ -111,6 +108,7 @@ public class AvatarTermFunction extends AvatarTerm implements AvatarAction {
         return false;
     }
 
+    @Override
     public String toString () {
         return this.method.getName () + " " + this.args.toString ();
     }
@@ -126,7 +124,7 @@ public class AvatarTermFunction extends AvatarTerm implements AvatarAction {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         this.args.replaceAttributes (attributesMapping);
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarTermRaw.java b/src/main/java/avatartranslator/AvatarTermRaw.java
index 5ac5006c7459e4bd731302f572bf2a03a39ae592..2eb9fb21f03deaa5e1fb730eb308380278402685 100644
--- a/src/main/java/avatartranslator/AvatarTermRaw.java
+++ b/src/main/java/avatartranslator/AvatarTermRaw.java
@@ -36,12 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarTermRaw
@@ -61,6 +58,7 @@ public class AvatarTermRaw extends AvatarTerm {
         return false;
     }
 
+    @Override
     public String toString () {
         return this.raw;
     }
@@ -76,5 +74,5 @@ public class AvatarTermRaw extends AvatarTerm {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 }
diff --git a/src/main/java/avatartranslator/AvatarTransition.java b/src/main/java/avatartranslator/AvatarTransition.java
index 5413bfb2e1e02c43dd847f1fdf54fd17767b6042..257b17e8f9a9fc55d5000221fcefa80648eb3a5e 100644
--- a/src/main/java/avatartranslator/AvatarTransition.java
+++ b/src/main/java/avatartranslator/AvatarTransition.java
@@ -36,12 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package avatartranslator;
 
 import java.util.Iterator;
 import java.util.LinkedList;
-
+import java.util.List;
 
 /**
  * Class AvatarTransition
@@ -73,7 +72,7 @@ public class AvatarTransition extends AvatarStateMachineElement {
     private String minCompute = "", maxCompute = "";
     private AvatarStateMachineOwner block;
 
-    private LinkedList<AvatarAction> actions; // actions on variable, or method call
+    private List<AvatarAction> actions; // actions on variable, or method call
 
     public AvatarTransition(AvatarStateMachineOwner _block, String _name, Object _referenceObject) {
         super(_name, _referenceObject);
@@ -135,7 +134,7 @@ public class AvatarTransition extends AvatarStateMachineElement {
         return false;
     }
 
-    public LinkedList<AvatarAction> getActions() {
+    public List<AvatarAction> getActions() {
         return this.actions;
     }
 
diff --git a/src/main/java/avatartranslator/AvatarTuple.java b/src/main/java/avatartranslator/AvatarTuple.java
index 973c9059020bc38373c2aee81a2e9c0a60aa6bf3..4386fe06f5aa479f3d67bd7b677d09608beb90b3 100644
--- a/src/main/java/avatartranslator/AvatarTuple.java
+++ b/src/main/java/avatartranslator/AvatarTuple.java
@@ -36,14 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
 import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 
 /**
    * Class AvatarTuple
@@ -52,7 +49,7 @@ import java.util.LinkedList;
    * @author Florian LUGOU
  */
 public class AvatarTuple extends AvatarLeftHand {
-    LinkedList<AvatarTerm> components;
+    List<AvatarTerm> components;
 
     public AvatarTuple (Object _referenceObject) {
         super (null, _referenceObject);
@@ -96,7 +93,7 @@ public class AvatarTuple extends AvatarLeftHand {
         this.components.add (term);
     }
 
-    public LinkedList<AvatarTerm> getComponents () {
+    public List<AvatarTerm> getComponents () {
         return this.components;
     }
 
@@ -104,6 +101,7 @@ public class AvatarTuple extends AvatarLeftHand {
         return this.toString ();
     }
 
+    @Override
     public String toString () {
         String result = "(";
         boolean first = true;
@@ -142,8 +140,8 @@ public class AvatarTuple extends AvatarLeftHand {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
-        LinkedList<AvatarTerm> components = new LinkedList<AvatarTerm> ();
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
+        List<AvatarTerm> components = new LinkedList<AvatarTerm> ();
         for (AvatarTerm term: this.components)
             if (term instanceof AvatarAttribute)
                 components.add (attributesMapping.get (term));
diff --git a/src/main/java/avatartranslator/AvatarUnaryGuard.java b/src/main/java/avatartranslator/AvatarUnaryGuard.java
index 21c188478311f191a40529d9c0ba5d695ff3d85f..ed463e1d253e776a92bfb6eeded0ee038867ad28 100644
--- a/src/main/java/avatartranslator/AvatarUnaryGuard.java
+++ b/src/main/java/avatartranslator/AvatarUnaryGuard.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarUnaryGuard
@@ -98,7 +94,7 @@ public class AvatarUnaryGuard extends AvatarComposedGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         this.guard.replaceAttributes (attributesMapping);
     }
 }
diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
index e0768d667d19fda7306dc536c89194b5b6e2d5b2..c5c5564faf23285ed974b40e7a0868ba1db67752 100644
--- a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
+++ b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
@@ -547,7 +547,7 @@ public class AvatarSimulationBlock {
     public void makeAction(String _action, Vector<String> _attributeValues, Vector<String> _actions) {
         String nameOfVar;
         String act;
-        String nameOfMethod;
+        //String nameOfMethod;
         int ind;
 
         AvatarAction action = AvatarTerm.createActionFromString(block, _action);
@@ -568,12 +568,12 @@ public class AvatarSimulationBlock {
             }
             act = act.substring(0, ind);
 
-            ind = nameOfVar.indexOf("=");
-            if (ind != -1) {
-                nameOfMethod = nameOfVar.substring(ind + 1, nameOfVar.length());
-            } else {
-                nameOfMethod = nameOfVar;
-            }
+            //ind = nameOfVar.indexOf("=");
+//            if (ind != -1) {
+//                nameOfMethod = nameOfVar.substring(ind + 1, nameOfVar.length());
+//            } else {
+//                nameOfMethod = nameOfVar;
+//            }
 
             String[] params = act.split(",");
             String parameters = "";
diff --git a/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java b/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java
index ef6ed4cd49395b4f15f0648977e0304db7ca4be2..517040496fd1d7b60ea3d17c01c1b5245ea7373c 100644
--- a/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java
+++ b/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java
@@ -36,18 +36,14 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator.modelchecker;
 
+import java.util.Arrays;
+import java.util.List;
+
 import avatartranslator.AvatarAttribute;
 import avatartranslator.AvatarBlock;
 
-import java.util.Arrays;
-import java.util.LinkedList;
-
 /**
    * Class SpecificationBlock
    * Coding of a block
@@ -74,53 +70,53 @@ public class SpecificationBlock  {
     }
 
     public int getHash() {
-	return Arrays.hashCode(values);
+    	return Arrays.hashCode(values);
     }
 
     public void init(AvatarBlock _block, boolean _ignoreEmptyTransitions) {
-	
-	LinkedList<AvatarAttribute> attrs = _block.getAttributes();
-	//TraceManager.addDev("Nb of attributes:" + attrs.size());
-	//TraceManager.addDev("in block=" + _block.toString());
-	values = new int[HEADER_VALUES+attrs.size()];
-
-	// Initial state
-	if (_ignoreEmptyTransitions) {
-	    values[STATE_INDEX] = _block.getIndexOfRealStartState();
-	} else {
-	    values[STATE_INDEX] = _block.getIndexOfStartState();
-	}
-	
-	// Clock
-	values[CLOCKMIN_INDEX] = 0;
-	values[CLOCKMAX_INDEX] = 0;
-
-	// Attributes
-	int cpt = HEADER_VALUES;
-	String initial;
-	for(AvatarAttribute attr: attrs) {
-	    values[cpt++] = attr.getInitialValueInInt();
-	}	
+    	List<AvatarAttribute> attrs = _block.getAttributes();
+    	//TraceManager.addDev("Nb of attributes:" + attrs.size());
+    	//TraceManager.addDev("in block=" + _block.toString());
+    	values = new int[HEADER_VALUES+attrs.size()];
+
+    	// Initial state
+    	if (_ignoreEmptyTransitions) {
+    		values[STATE_INDEX] = _block.getIndexOfRealStartState();
+    	} else {
+    		values[STATE_INDEX] = _block.getIndexOfStartState();
+    	}
+
+    	// Clock
+    	values[CLOCKMIN_INDEX] = 0;
+    	values[CLOCKMAX_INDEX] = 0;
+
+    	// Attributes
+    	int cpt = HEADER_VALUES;
+    	//String initial;
+    	for(AvatarAttribute attr: attrs) {
+    		values[cpt++] = attr.getInitialValueInInt();
+    	}	
     }
 
+    @Override
     public String toString() {
-	StringBuffer sb = new StringBuffer("Hash=");
-	//sb.append(getHash());
-	for (int i=0; i<values.length; i++) {
-	    sb.append(" ");
-	    sb.append(values[i]);
-	}
-	return sb.toString();
+    	StringBuffer sb = new StringBuffer("Hash=");
+    	//sb.append(getHash());
+    	for (int i=0; i<values.length; i++) {
+    		sb.append(" ");
+    		sb.append(values[i]);
+    	}
+    	return sb.toString();
     }
 
     public SpecificationBlock advancedClone() {
-	SpecificationBlock sb = new SpecificationBlock();
-	sb.values = values.clone();
-	sb.maxClock = maxClock;
-	return sb;
+    	SpecificationBlock sb = new SpecificationBlock();
+    	sb.values = values.clone();
+    	sb.maxClock = maxClock;
+    	return sb;
     }
 
     public boolean hasTimedTransition() {
-	return true;
+    	return true;
     }
 }
diff --git a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java
index 45765f96438e21dc9b033676aad3018685a27d49..2b66923be93a465a562185a01b8985f798edcb32 100755
--- a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java
+++ b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java
@@ -39,14 +39,41 @@
 
 package avatartranslator.toexecutable;
 
-import avatartranslator.*;
-import common.SpecConfigTTool;
-import myutil.*;
-
 import java.io.File;
-import java.util.LinkedList;
+import java.util.List;
 import java.util.Vector;
 
+import avatartranslator.AvatarAction;
+import avatartranslator.AvatarActionAssignment;
+import avatartranslator.AvatarActionOnSignal;
+import avatartranslator.AvatarArithmeticOp;
+import avatartranslator.AvatarAttribute;
+import avatartranslator.AvatarBlock;
+import avatartranslator.AvatarConstant;
+import avatartranslator.AvatarLeftHand;
+import avatartranslator.AvatarMethod;
+import avatartranslator.AvatarRandom;
+import avatartranslator.AvatarRelation;
+import avatartranslator.AvatarSignal;
+import avatartranslator.AvatarSpecification;
+import avatartranslator.AvatarStartState;
+import avatartranslator.AvatarState;
+import avatartranslator.AvatarStateMachine;
+import avatartranslator.AvatarStateMachineElement;
+import avatartranslator.AvatarStopState;
+import avatartranslator.AvatarTerm;
+import avatartranslator.AvatarTermFunction;
+import avatartranslator.AvatarTermRaw;
+import avatartranslator.AvatarTransition;
+import avatartranslator.AvatarTuple;
+import avatartranslator.AvatarType;
+import common.SpecConfigTTool;
+import myutil.Conversion;
+import myutil.FileException;
+import myutil.FileUtils;
+import myutil.Plugin;
+import myutil.TraceManager;
+
 /**
  * Class AVATAR2CPOSIX
  * Creation: 29/03/2011
@@ -63,7 +90,7 @@ public class AVATAR2CPOSIX {
 
     private final static String UNUSED_ATTR = "__attribute__((unused))";
     private final static String GENERATED_PATH = "generated_src" + File.separator;
-    private final static String UNKNOWN = "UNKNOWN";
+    //private final static String UNKNOWN = "UNKNOWN";
     private final static String CR = "\n";
 
     private AvatarSpecification avspec;
@@ -305,8 +332,8 @@ public class AVATAR2CPOSIX {
 
     private void makeMethod(AvatarBlock _block, AvatarMethod _am, Vector<String> _allNames, TaskFile _taskFile) {
         String ret = "";
-        LinkedList<AvatarAttribute> list;
-        LinkedList<AvatarAttribute> listA;
+        List<AvatarAttribute> list;
+        List<AvatarAttribute> listA;
 
         String nameMethod = _block.getName() + "__" + _am.getName();
 
@@ -503,8 +530,7 @@ public class AVATAR2CPOSIX {
     }
 
     public String makeBehaviourFromElement(AvatarBlock _block, AvatarStateMachineElement _asme, boolean firstCall) {
-        AvatarStateMachineElement asme0;
-
+        //AvatarStateMachineElement asme0;
 
         if (_asme == null) {
             return "";
@@ -536,7 +562,7 @@ public class AVATAR2CPOSIX {
                 ret += "waitFor(" + reworkDelay(at.getMinDelay()) + ", " + reworkDelay(at.getMaxDelay()) + ");" + CR;
             }
 
-            String act;
+            //String act;
             ret += makeActionsOfTransaction(_block, at);
             /*for(i=0; i<at.getNbOfAction(); i++) {
             // Must know whether this is an action or a method call
@@ -649,7 +675,7 @@ public class AVATAR2CPOSIX {
             AvatarActionOnSignal aaos = (AvatarActionOnSignal) _asme;
             ret += makeSignalAction(aaos, 0, false, "", "");
             AvatarSignal as = aaos.getSignal();
-            AvatarRelation ar = avspec.getAvatarRelationWithSignal(as);
+            //AvatarRelation ar = avspec.getAvatarRelationWithSignal(as);
             ret += executeOneRequest("__req0");
             ret += traceRequest();
         }
diff --git a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java
index 932a74073f476b904837c299c1bcb87c231b266c..a6f3ba1905b04256836ae85d99aa63fbb09074bb 100755
--- a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java
+++ b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator.toproverif;
 
 import avatartranslator.*;
@@ -62,6 +59,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Class AVATAR2ProVerif
@@ -228,7 +226,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
         return result;
     }
 
-    protected static String translateTerm (AvatarTerm term, HashMap<AvatarAttribute, Integer> attributeCmp) {
+    protected static String translateTerm (AvatarTerm term, Map<AvatarAttribute, Integer> attributeCmp) {
         if (term instanceof AvatarAttribute) {
             AvatarAttribute attr = (AvatarAttribute) term;
             if (attributeCmp != null) {
@@ -341,7 +339,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
     // Supported guards: a == b, not(a == b), g1 and g2, g1 or g2
     // -> transformed into a = b, a <> b, g1 && g2, g1 || g2
     // Returns nulls otherwise
-    private static String translateGuard (AvatarGuard _guard, HashMap<AvatarAttribute, Integer> attributeCmp) {
+    private static String translateGuard (AvatarGuard _guard, Map<AvatarAttribute, Integer> attributeCmp) {
         TraceManager.addDev(_guard.toString());
         if (_guard == null || _guard instanceof AvatarGuardEmpty)
             return null;
@@ -501,7 +499,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
         List<AvatarBlock> blocks = this.avspec.getListOfBlocks();
       //  String action = "(";
         for(AvatarBlock block: blocks) {
-            HashMap<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements ();
+            Map<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements ();
             if (simplifiedElements.get (block.getStateMachine ().getStartState ()) == null)
                 simplifiedElements.put (block.getStateMachine ().getStartState (), new Integer (0));
 
@@ -734,7 +732,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
         lastInstr = lastInstr.setNextInstr (paral);
 
         for(AvatarBlock block: blocks) {
-            HashMap<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements ();
+            Map<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements ();
 
             if (simplifiedElements.get (block.getStateMachine ().getStartState ()) == null)
                 paral.addInstr (new ProVerifProcCall (block.getName () + ATTR_DELIM + "0", new ProVerifVar[] {new ProVerifVar ("sessionID", "bitstring")}));
@@ -944,7 +942,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
         lastInstr = lastInstr.setNextInstr (new ProVerifProcRaw (tmp + ")))"));
 
         // Generate a new process for every simplified element of the block's state machine
-        HashMap<AvatarStateMachineElement, Integer> simplifiedElements = ab.getStateMachine ().getSimplifiedElements ();
+        Map<AvatarStateMachineElement, Integer> simplifiedElements = ab.getStateMachine ().getSimplifiedElements ();
         if (simplifiedElements.get (ab.getStateMachine ().getStartState ()) == null)
             simplifiedElements.put (ab.getStateMachine ().getStartState (), new Integer (0));
 
@@ -993,8 +991,8 @@ public class AVATAR2ProVerif implements AvatarTranslator {
     class ProVerifTranslatorParameter {
         AvatarBlock block;
         ProVerifProcInstr lastInstr;
-        HashMap<AvatarStateMachineElement, Integer> simplifiedElements;
-        HashMap<AvatarAttribute, Integer> attributeCmp;
+        Map<AvatarStateMachineElement, Integer> simplifiedElements;
+        Map<AvatarAttribute, Integer> attributeCmp;
         AvatarStateMachineElement lastASME;
     }
 
@@ -1200,7 +1198,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
                 if (rightHand instanceof AvatarTermFunction) {
                     // If it's a function call
                     String name = ((AvatarTermFunction) rightHand).getMethod ().getName ();
-                    LinkedList<AvatarTerm> args = ((AvatarTermFunction) rightHand).getArgs ().getComponents ();
+                    List<AvatarTerm> args = ((AvatarTermFunction) rightHand).getArgs ().getComponents ();
 
                     if (name.equals ("concat2") || name.equals ("concat3") || name.equals ("concat4")) {
                         // If it's a concat function, just use tuples
@@ -1279,7 +1277,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
 
                 if (name.equals ("get2") || name.equals ("get3") || name.equals ("get4")) {
                     // If the function called is get[234]
-                    LinkedList<AvatarTerm> args = action.getArgs ().getComponents ();
+                    List<AvatarTerm> args = action.getArgs ().getComponents ();
                     int index = (int) name.charAt (3) - 48;
 
                     boolean ok = true;
@@ -1393,7 +1391,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
             }
             _lastInstr = _lastInstr.setNextInstr (new ProVerifProcIn (CH_MAINCH, new ProVerifVar[] {new ProVerifVar ("choice" + ATTR_DELIM + _asme.getName (), "bitstring")}));
 
-            HashMap<AvatarAttribute, Integer> attributeCmp = arg.attributeCmp;
+            Map<AvatarAttribute, Integer> attributeCmp = arg.attributeCmp;
             for (int i=0; i<nbOfNexts-1; i++) {
                 String choice = "choice" + ATTR_DELIM + _asme.getName () + ATTR_DELIM + i;
                 ProVerifProcITE ite = new ProVerifProcITE ("choice" + ATTR_DELIM + _asme.getName () + " = " + choice);
diff --git a/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java b/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java
index c7da1aa5f675c38a8990891252105be5add4b7b2..2f30039703dcc8b81e3913a9f04a0b001229a26b 100755
--- a/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java
+++ b/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator.touppaal;
 
 import avatartranslator.*;
@@ -53,10 +50,12 @@ import uppaaldesc.UPPAALSpec;
 import uppaaldesc.UPPAALTemplate;
 import uppaaldesc.UPPAALTransition;
 
-import java.awt.*;
+import java.awt.Point;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Class AVATAR2UPPAAL
@@ -74,20 +73,20 @@ public class AVATAR2UPPAAL {
     private UPPAALSpec spec;
     private AvatarSpecification avspec;
 
-    private LinkedList<CheckingError> warnings;
+    private List<CheckingError> warnings;
 
     private int currentX, currentY;
 
-    private java.util.List<String> gatesNotSynchronized; // String
-    private java.util.List<String> gatesSynchronized;
-    private java.util.List<AvatarRelation> gatesSynchronizedRelations;
-    private java.util.List<String> gatesAsynchronized;
-    private java.util.List<String> unoptStates;
+    private List<String> gatesNotSynchronized; // String
+    private List<String> gatesSynchronized;
+    private List<AvatarRelation> gatesSynchronizedRelations;
+    private List<String> gatesAsynchronized;
+    private List<String> unoptStates;
     private int nbOfIntParameters, nbOfBooleanParameters;
 
-    private Hashtable <AvatarStateMachineElement, UPPAALLocation> hash;
-    private Hashtable <AvatarStateMachineElement, UPPAALLocation> hashChecking;
-    private Hashtable <String, String> translateString;
+    private Map<AvatarStateMachineElement, UPPAALLocation> hash;
+    private Map<AvatarStateMachineElement, UPPAALLocation> hashChecking;
+    private Map<String, String> translateString;
     public final static int STEP_X = 5;
     public final static int STEP_Y = 70;
     public final static int STEP_LOOP_X = 150;
@@ -150,22 +149,22 @@ public class AVATAR2UPPAAL {
         //
     }
 
-
-    public LinkedList<CheckingError> getWarnings() {
+    public List<CheckingError> getWarnings() {
         return warnings;
     }
 
     /*public RelationTIFUPPAAL getRelationTIFUPPAAL () {
       return table;
       }*/
-    public Hashtable <String, String> getHash(){
-	return translateString;
+    public Map<String, String> getHash(){
+    	return translateString;
     }
+    
     public UPPAALSpec generateUPPAAL(boolean _debug, boolean _optimize) {
         warnings = new LinkedList<CheckingError>();
         hash = new Hashtable<AvatarStateMachineElement, UPPAALLocation>();
         hashChecking = new Hashtable<AvatarStateMachineElement, UPPAALLocation>();
-	translateString = new Hashtable<String, String>();
+        translateString = new Hashtable<String, String>();
         spec = new UPPAALSpec();
 
         avspec.removeCompositeStates();
@@ -173,16 +172,17 @@ public class AVATAR2UPPAAL {
         avspec.removeTimers();
 	//avspec.removeFIFOs(2);
         avspec.makeRobustness();
-	java.util.List<String> uppaalPragmas = avspec.getSafetyPragmas();
-	unoptStates= new LinkedList<String>();
-	for (String s: uppaalPragmas){
-	    String[] split = s.split("[^a-zA-Z0-9\\.]");
-	    for (String t:split){
-		if (t.contains(".")){
-		    unoptStates.add(t);
-		}
-	    }
-	}
+        List<String> uppaalPragmas = avspec.getSafetyPragmas();
+        unoptStates= new LinkedList<String>();
+        
+        for (String s: uppaalPragmas){
+        	String[] split = s.split("[^a-zA-Z0-9\\.]");
+        	for (String t:split){
+        		if (t.contains(".")){
+        			unoptStates.add(t);
+        		}
+        	}
+        }
 
         //TraceManager.addDev("->   Spec:" + avspec.toString());
 
@@ -582,7 +582,7 @@ public class AVATAR2UPPAAL {
                 TraceManager.addDev("************************* NULL PREVIOUS !!!!!!!*****************");
             }
             //TraceManager.addDev("Linking myself = " + _elt + " to " + loc);
-            UPPAALLocation locc = hashChecking.get(_elt);
+            //UPPAALLocation locc = hashChecking.get(_elt);
             if (_elt != null) {
                 //TraceManager.addDev("In hash:" + _elt + " in location:" + locc);
             }
@@ -1059,7 +1059,7 @@ public class AVATAR2UPPAAL {
         //TraceManager.addDev("Method name:" + mc);
 
         setSynchronization(_tr, mc);
-        LinkedList<AvatarTerm> arguments = action.getArgs ().getComponents ();
+        List<AvatarTerm> arguments = action.getArgs ().getComponents ();
         for(AvatarTerm arg: arguments) {
             if (!(arg instanceof AvatarAttribute))
                 continue;
diff --git a/src/main/java/compiler/tmlparser/SimpleNode.java b/src/main/java/compiler/tmlparser/SimpleNode.java
index dbe16a462639bc6ae950a2ca2525fd6fc29b9ffa..13759d2b13e2dcfc1e4e7621b395202ae4215dfa 100755
--- a/src/main/java/compiler/tmlparser/SimpleNode.java
+++ b/src/main/java/compiler/tmlparser/SimpleNode.java
@@ -36,21 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package compiler.tmlparser;
 
-
-
-
-
-
  /* Has been partially generated by: JJTree */
 /* Generated By:JJTree: Do not edit this line. SimpleNode.java */
 
 import java.util.ArrayList;
+import java.util.List;
 
 
 /**
@@ -88,6 +80,7 @@ public class SimpleNode implements Node {
 	}
 	
 	public void jjtSetParent(Node n) { parent = n; }
+	
 	public Node jjtGetParent() { return parent; }
 	
 	public void jjtAddChild(Node n, int i) {
@@ -116,6 +109,7 @@ public class SimpleNode implements Node {
 	you need to do. */
 	
 	//public String toString() { return TMLExprParserTreeConstants.jjtNodeName[id]; }
+	@Override
 	public String toString() { 
 		return TMLExprParserTreeConstants.jjtNodeName[id] + "/" + kind + "/" + value;
 	}
@@ -136,13 +130,13 @@ public class SimpleNode implements Node {
 		}
 	}
 	
-	public ArrayList<String> getVariables() {
-		ArrayList<String> list = new ArrayList<String>();
+	public List<String> getVariables() {
+		List<String> list = new ArrayList<String>();
 		getVariables(list);
 		return list;
 	}
 	
-	public void getVariables(ArrayList<String> list) {
+	public void getVariables( List<String> list) {
 		String s;
 		
 		s = TMLExprParserTreeConstants.jjtNodeName[id];
diff --git a/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java b/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java
index 3ef5b9b2ea6885d86bd90121714adef4bad1b78e..d1a5a5c5ee0e18f9ac6664d4bd3f29facffd7a24 100755
--- a/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java
+++ b/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java
@@ -36,14 +36,31 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ddtranslatorSoclib.toSoclib;
 
-import avatartranslator.*;
-import ddtranslatorSoclib.AvatarRAM;
+import java.io.File;
+import java.util.List;
+import java.util.Vector;
+
+import avatartranslator.AvatarAction;
+import avatartranslator.AvatarActionAssignment;
+import avatartranslator.AvatarActionOnSignal;
+import avatartranslator.AvatarAttribute;
+import avatartranslator.AvatarBlock;
+import avatartranslator.AvatarMethod;
+import avatartranslator.AvatarRandom;
+import avatartranslator.AvatarRelation;
+import avatartranslator.AvatarSignal;
+import avatartranslator.AvatarSpecification;
+import avatartranslator.AvatarStartState;
+import avatartranslator.AvatarState;
+import avatartranslator.AvatarStateMachine;
+import avatartranslator.AvatarStateMachineElement;
+import avatartranslator.AvatarStopState;
+import avatartranslator.AvatarTransition;
+import avatartranslator.AvatarType;
 import ddtranslatorSoclib.AvatarCoproMWMR;
+import ddtranslatorSoclib.AvatarRAM;
 import ddtranslatorSoclib.AvatarTask;
 import ddtranslatorSoclib.AvatarddSpecification;
 import ddtranslatorSoclib.toTopCell.TopCellGenerator;
@@ -52,11 +69,6 @@ import myutil.FileException;
 import myutil.FileUtils;
 import myutil.TraceManager;
 
-import java.io.File;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Vector;
-
 /**
  * Class AVATAR2CSOCLIB
  * Creation: 01/07/2014
@@ -114,8 +126,7 @@ public class TasksAndMainGenerator {
     }
 
     public void saveInFiles(String path) throws FileException {
-
-	System.err.println("ok");
+    	System.err.println("ok");
         TraceManager.addDev("Generating files");
 
         if (mainFile != null) {
@@ -125,8 +136,8 @@ public class TasksAndMainGenerator {
         }
 
         for(TaskFileSoclib taskFile: taskFiles) {
-	    FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".h", Conversion.indentString(taskFile.getFullHeaderCode/*Soclib*/(), 2));
-	    FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".c", Conversion.indentString(taskFile.getMainCode(), 2));
+		    FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".h", Conversion.indentString(taskFile.getFullHeaderCode/*Soclib*/(), 2));
+		    FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".c", Conversion.indentString(taskFile.getMainCode(), 2));
         }
 
         // Standard Makefile
@@ -164,11 +175,11 @@ public class TasksAndMainGenerator {
 
         makeMainMutex();
 
-	makeSynchronousChannels();
+        makeSynchronousChannels();
 
         makeAsynchronousChannels();  
 
-	makeThreadsInMain(debug);
+        makeThreadsInMain(debug);
     }
 
     public void makeMainMutex() {
@@ -185,17 +196,17 @@ public class TasksAndMainGenerator {
 
     	//for(AvatarRelation ar: avspec.getRelations()) {
     	for (AvatarRAM ram : TopCellGenerator.avatardd.getAllRAM()) { 
-    		
-	    for(AvatarRelation ar: avspec.getRelations()) {
-
-       		for(int i=0; i<ar.nbOfSignals() ; i++) {
-		   
-    			mainFile.appendToBeforeMainCode("#define CHANNEL"+d+" __attribute__((section(\"section_channel"+d+"\")))" + CR ); 	
-    			mainFile.appendToBeforeMainCode("#define LOCK"+d+" __attribute__((section(\"section_lock"+d+"\")))" + CR );//one lock per channel
-    			d++;		      			
-		    }
-		    }
-	}
+
+    		for(AvatarRelation ar: avspec.getRelations()) {
+
+    			for(int i=0; i<ar.nbOfSignals() ; i++) {
+
+    				mainFile.appendToBeforeMainCode("#define CHANNEL"+d+" __attribute__((section(\"section_channel"+d+"\")))" + CR ); 	
+    				mainFile.appendToBeforeMainCode("#define LOCK"+d+" __attribute__((section(\"section_lock"+d+"\")))" + CR );//one lock per channel
+    				d++;		      			
+    			}
+    		}
+    	}
     	mainFile.appendToBeforeMainCode("#define base(arg) arg" + CR2 );
     	mainFile.appendToBeforeMainCode("typedef struct mwmr_s mwmr_t;" + CR2);
 
@@ -204,143 +215,142 @@ public class TasksAndMainGenerator {
     	mainFile.appendToMainCode("pthread_attr_t *attr_t = malloc(sizeof(pthread_attr_t));" +CR);
     	mainFile.appendToMainCode("pthread_attr_init(attr_t);" + CR );
     	mainFile.appendToMainCode("pthread_mutex_init(&__mainMutex, NULL);" +CR2);       
-	mainFile.appendToMainCode("int sizeParams;" +CR2);   //DG 13.06.
+    	mainFile.appendToMainCode("int sizeParams;" +CR2);   //DG 13.06.
     }
   
     public void makeSynchronousChannels() {
-	int i=0;   int j=0;  
+    	int i=0;   //int j=0;  
         // Create synchronous channel signals
         mainFile.appendToHCode("/* Synchronous channels */" + CR);
         mainFile.appendToBeforeMainCode("/* Synchronous channels */" + CR);
         mainFile.appendToMainCode("/* Synchronous channels */" + CR);
- k=0;
+        k=0;
         for(AvatarRelation ar: avspec.getRelations()) {
-	  
-	if (!ar.isAsynchronous()) {
-	   
-	   		    
-	    for(i=0; i<ar.nbOfSignals() ; i++) {
-		ar.setId(i);
 
-		mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR);
+        	if (!ar.isAsynchronous()) {
 
-		mainFile.appendToBeforeMainCode("syncchannel __" +getChannelName(ar, i) + ";" + CR);
+        		for(i=0; i<ar.nbOfSignals() ; i++) {
+        			ar.setId(i);
 
-		mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR);		
-		mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR);
-		mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR);
-		mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2);
-	
+        			mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR);
 
-	AvatarSignal sig = ar.getSignal1(i);
-        int nbParams= sig.getNbParams();
-	
-	int sizeParams = 0;
-		
-	if (nbParams>0)
-	    mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR);
-	
-	else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = 100;" + CR);
-	
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = " +getChannelName(ar, i)+".depth;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR2);
+        			mainFile.appendToBeforeMainCode("syncchannel __" +getChannelName(ar, i) + ";" + CR);
 
-	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR);
-	mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR);		
-	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR);
-	
-	if(sig.isIn()){
-	    mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 0;" + CR);	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 1;" + CR);
-	}
+        			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR);		
+        			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2);
 
-	if(sig.isOut()){
-	    mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 1;" + CR);	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 0;" + CR);
-	}
 
-	/* init because mutekh initializer does not work for this */		
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR);
+        			AvatarSignal sig = ar.getSignal1(i);
+        			int nbParams= sig.getNbParams();
 
-	mainFile.appendToMainCode(getChannelName(ar, i)+".status->lock=0;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".status->wptr =0;" + CR);
-				     		
-	mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); 
-	mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); 		
-	       
-	mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR);
-		
-	mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2);
-	k++;			
-	
-	}
-	}
-	}
-    }
+        			//int sizeParams = 0;
 
-    public void makeAsynchronousChannels() {
-	if (avspec.ASynchronousExist()){
-	    // Create an asynchronous channel per relation/signal
-	    mainFile.appendToHCode("/* Asynchronous channels */" + CR);
-	    mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR);
-	    mainFile.appendToMainCode("/* Asynchronous channels */" + CR);
-            int j=0;
-	    for(AvatarRelation ar: avspec.getRelations()) {
-	
-		if (ar.isAsynchronous()) {
-		    for(int i=0; i<ar.nbOfSignals() ; i++) {
+        			if (nbParams>0)
+        				mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR);
 
-			ar.setId(i);
-			mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR);
+        			else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = 100;" + CR);
 
-			mainFile.appendToBeforeMainCode("asyncchannel __" +getChannelName(ar, i) + ";" + CR);
-		
-			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR);		
-			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = " +getChannelName(ar, i)+".depth;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR2);
 
-		
-			AvatarSignal sig = ar.getSignal1(i);
-			int nbParams= sig.getNbParams();			
-		
-			if (nbParams>0)
-			    mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR);			    
-			else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR);
-
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = "+ ar.getSizeOfFIFO()+";" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = "+getChannelName(ar, i)+".depth;" + CR); 
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR);
-
-			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR);
-			mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR);
-			if (ar.isBlocking()) {
-			    mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".isBlocking = 1;" + CR);
-			} else {
-			    mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".isBlocking = 0;" + CR);
-			}
-			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".maxNbOfMessages = " + ar.getSizeOfFIFO() + ";" + CR);
-			
-			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR);
-				
-			/* force init because mutekh initializer does not work her */		
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) +".status->lock=0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i)+".status->wptr=0;" + CR);	    	    	
-			mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); 
-			mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); 			       
-			mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR);		
-			mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2);	 
-			k++;
-		    }
-		}
-	    }
-	}
+        			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR);
+        			mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR);		
+        			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR);
+
+        			if(sig.isIn()){
+        				mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 0;" + CR);	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 1;" + CR);
+        			}
+
+        			if(sig.isOut()){
+        				mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 1;" + CR);	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 0;" + CR);
+        			}
+
+        			/* init because mutekh initializer does not work for this */		
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR);
+
+        			mainFile.appendToMainCode(getChannelName(ar, i)+".status->lock=0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".status->wptr =0;" + CR);
+
+        			mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); 
+        			mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); 		
+
+        			mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR);
+
+        			mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2);
+        			k++;			
+
+        		}
+        	}
+        }
+    }
+
+    public void makeAsynchronousChannels() {
+    	if (avspec.ASynchronousExist()){
+    		// Create an asynchronous channel per relation/signal
+    		mainFile.appendToHCode("/* Asynchronous channels */" + CR);
+    		mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR);
+    		mainFile.appendToMainCode("/* Asynchronous channels */" + CR);
+    		//int j=0;
+    		for(AvatarRelation ar: avspec.getRelations()) {
+
+    			if (ar.isAsynchronous()) {
+    				for(int i=0; i<ar.nbOfSignals() ; i++) {
+
+    					ar.setId(i);
+    					mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR);
+
+    					mainFile.appendToBeforeMainCode("asyncchannel __" +getChannelName(ar, i) + ";" + CR);
+
+    					mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR);		
+    					mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2);
+
+
+    					AvatarSignal sig = ar.getSignal1(i);
+    					int nbParams= sig.getNbParams();			
+
+    					if (nbParams>0)
+    						mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR);			    
+    					else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR);
+
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = "+ ar.getSizeOfFIFO()+";" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = "+getChannelName(ar, i)+".depth;" + CR); 
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR);
+
+    					mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR);
+    					mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR);
+    					if (ar.isBlocking()) {
+    						mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".isBlocking = 1;" + CR);
+    					} else {
+    						mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".isBlocking = 0;" + CR);
+    					}
+    					mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".maxNbOfMessages = " + ar.getSizeOfFIFO() + ";" + CR);
+
+    					mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR);
+
+    					/* force init because mutekh initializer does not work her */		
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) +".status->lock=0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i)+".status->wptr=0;" + CR);	    	    	
+    					mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); 
+    					mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); 			       
+    					mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR);		
+    					mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2);	 
+    					k++;
+    				}
+    			}
+    		}
+    	}
     }
  
     //DG 19.09. need this for main program generation
@@ -356,7 +366,7 @@ public class TasksAndMainGenerator {
     	return -1;
 	}*/
    
-    public int FindCPUidFromTask(AvatarBlock block){
+    public int findCPUidFromTask(AvatarBlock block){
     	List<AvatarTask> tasks = avddspec.getAllMappedTask();
 	
     	for (AvatarTask task : tasks){
@@ -370,41 +380,40 @@ public class TasksAndMainGenerator {
 
     /* DG 7.7. give CPUid of outer block to block created e.g. for a timer */
     public void makeTasks() {
-        for(AvatarBlock block: avspec.getListOfBlocks()) {
-	    if (FindCPUidFromTask(block)!=-1) 
-	      makeTask(block,FindCPUidFromTask(block));
-	    else {
-		//AvatarBlock father = block.getFather();
-		//if(father!=null){ //DG bug: donne null pointer
-		//makeTask(block,FindCPUidFromTask(father));
-		makeTask(block,0);
-	
-		
-		}
-	    //DG 19.09. found coproc do not make task
-	   
-	    }
-        }
+    	for(AvatarBlock block: avspec.getListOfBlocks()) {
+    		if (findCPUidFromTask(block)!=-1) 
+    			makeTask(block,findCPUidFromTask(block));
+    		else {
+    			//AvatarBlock father = block.getFather();
+    			//if(father!=null){ //DG bug: donne null pointer
+    			//makeTask(block,FindCPUidFromTask(father));
+    			makeTask(block,0);
+
 
+    		}
+    		//DG 19.09. found coproc do not make task
+
+    	}
+    }
 
     public void makeTask(AvatarBlock block , int cpuId) {
-	TaskFileSoclib taskFile = new TaskFileSoclib(block.getName(),cpuId);
-        
-        if (includeUserCode) {
-            String tmp = block.getGlobalCode();
-            if (tmp != null) {
-                taskFile.addToMainCode(CR + "// Header code defined in the model" + CR + tmp + CR + "// End of header code defined in the model" + CR + CR);
-            }
-        }
-        defineAllSignal(block,taskFile);
+    	TaskFileSoclib taskFile = new TaskFileSoclib(block.getName(),cpuId);
+
+    	if (includeUserCode) {
+    		String tmp = block.getGlobalCode();
+    		if (tmp != null) {
+    			taskFile.addToMainCode(CR + "// Header code defined in the model" + CR + tmp + CR + "// End of header code defined in the model" + CR + CR);
+    		}
+    	}
+    	defineAllSignal(block,taskFile);
 
-        defineAllStates(block, taskFile);
+    	defineAllStates(block, taskFile);
 
-        defineAllMethods(block, taskFile);
+    	defineAllMethods(block, taskFile);
 
-        makeMainFunction(block, taskFile);
+    	makeMainFunction(block, taskFile);
 
-        taskFiles.add(taskFile);
+    	taskFiles.add(taskFile);
     }
 
     // ---------------------------------------------------------
@@ -457,8 +466,8 @@ public class TasksAndMainGenerator {
 
     private void makeMethod(AvatarBlock _block, AvatarMethod _am, Vector<String> _allNames, TaskFileSoclib _taskFile) {
         String ret = "";
-        LinkedList<AvatarAttribute> list;
-        LinkedList<AvatarAttribute> listA;
+        List<AvatarAttribute> list;
+        List<AvatarAttribute> listA;
 
         String nameMethod = _block.getName() + "__" +_am.getName();
 
diff --git a/src/main/java/elntranslator/ELNSpecification.java b/src/main/java/elntranslator/ELNSpecification.java
index 002a22c6f29bd7e26c5c0f23fa28083753feb046..bea04473f2b5905b218d43b55912374e90b2a967 100644
--- a/src/main/java/elntranslator/ELNSpecification.java
+++ b/src/main/java/elntranslator/ELNSpecification.java
@@ -47,260 +47,427 @@ import java.util.List;
  * Creation: 23/07/2018
  * @version 1.0 23/07/2018
  * @author Irina Kit Yan LEE
-*/
+ */
 
 public class ELNSpecification{
-    private List<ELNTComponent> components;
-    private List<ELNTConnector> connectors;
-		
-    public ELNSpecification(List<ELNTComponent> _components, List<ELNTConnector> _connectors){
-		components = _components ;
-		connectors = _connectors ;
-	}
-    
-    public List<ELNTComponent> getComponents(){
-      return components;
-    }
-
-    public List<ELNTConnector> getConnectors(){
-      return connectors;
-    }
-
-    public LinkedList<ELNTComponentCapacitor> getAllComponentCapacitor(){
+	private List<ELNTComponent> elnComponents;
+	private List<ELNTConnector> elnConnectors;
+
+	public ELNSpecification(List<ELNTComponent> _elnComponents, List<ELNTConnector> _elnConnectors){
+		elnComponents = _elnComponents ;
+		elnConnectors = _elnConnectors ;
+	}
+
+	public List<ELNTComponent> getELNComponents(){
+		return elnComponents;
+	}
+
+	public List<ELNTConnector> getELNConnectors(){
+		return elnConnectors;
+	}
+
+	public LinkedList<ELNTConnector> getAllConnectorsInCluster(){
+		LinkedList<ELNTConnector> cons = new LinkedList<ELNTConnector>();
+		for (ELNTConnector con : elnConnectors) {
+			if ((con.get_p1().getComponent() instanceof ELNTModuleTerminal && con.get_p2().getComponent() instanceof ELNTModuleTerminal)
+					|| (con.get_p1().getComponent() instanceof ELNTModuleTerminal && con.get_p2().getComponent() instanceof ELNTClusterTerminal)
+					|| (con.get_p1().getComponent() instanceof ELNTClusterTerminal && con.get_p2().getComponent() instanceof ELNTModuleTerminal)
+					|| (con.get_p1().getComponent() instanceof ELNTModulePortDE && con.get_p2().getComponent() instanceof ELNTClusterPortDE)
+					|| (con.get_p1().getComponent() instanceof ELNTClusterPortDE && con.get_p2().getComponent() instanceof ELNTModulePortDE)
+					|| (con.get_p1().getComponent() instanceof ELNTModulePortTDF && con.get_p2().getComponent() instanceof ELNTClusterPortTDF)
+					|| (con.get_p1().getComponent() instanceof ELNTClusterPortTDF && con.get_p2().getComponent() instanceof ELNTModulePortTDF)) {
+				cons.add(con);
+			}
+		}
+		return cons;
+	}
+
+	public LinkedList<ELNTConnector> getAllConnectorsInModule(){
+		LinkedList<ELNTConnector> cons = new LinkedList<ELNTConnector>();
+		for (ELNTConnector con : elnConnectors) {
+			if (!((con.get_p1().getComponent() instanceof ELNTModuleTerminal && con.get_p2().getComponent() instanceof ELNTModuleTerminal)
+					|| (con.get_p1().getComponent() instanceof ELNTModuleTerminal && con.get_p2().getComponent() instanceof ELNTClusterTerminal)
+					|| (con.get_p1().getComponent() instanceof ELNTClusterTerminal && con.get_p2().getComponent() instanceof ELNTModuleTerminal)
+					|| (con.get_p1().getComponent() instanceof ELNTModulePortDE && con.get_p2().getComponent() instanceof ELNTClusterPortDE)
+					|| (con.get_p1().getComponent() instanceof ELNTClusterPortDE && con.get_p2().getComponent() instanceof ELNTModulePortDE)
+					|| (con.get_p1().getComponent() instanceof ELNTModulePortTDF && con.get_p2().getComponent() instanceof ELNTClusterPortTDF)
+					|| (con.get_p1().getComponent() instanceof ELNTClusterPortTDF && con.get_p2().getComponent() instanceof ELNTModulePortTDF))) {
+				cons.add(con);
+			}
+		}
+		return cons;
+	}
+
+	public ELNTCluster getCluster(){
+		for (ELNTComponent comp : elnComponents) {
+			if (comp instanceof ELNTCluster) {
+				return (ELNTCluster) comp;
+			}
+		}
+		return null;
+	}
+
+	public LinkedList<ELNTClusterTerminal> getAllClusterTerminal(){
+		LinkedList<ELNTClusterTerminal> clusterTerminals = new LinkedList<ELNTClusterTerminal>();
+		for (ELNTComponent clusterTerminal : elnComponents) {
+			if (clusterTerminal instanceof ELNTClusterTerminal) {
+				clusterTerminals.add((ELNTClusterTerminal) clusterTerminal);
+			}
+		}
+		return clusterTerminals;
+	}
+
+	public LinkedList<ELNTClusterPortDE> getAllClusterPortDE(){
+		LinkedList<ELNTClusterPortDE> clusterPortsDE = new LinkedList<ELNTClusterPortDE>();
+		for (ELNTComponent clusterPortDE : elnComponents) {
+			if (clusterPortDE instanceof ELNTClusterPortDE) {
+				clusterPortsDE.add((ELNTClusterPortDE) clusterPortDE);
+			}
+		}
+		return clusterPortsDE;
+	}
+
+	public LinkedList<ELNTClusterPortTDF> getAllClusterPortTDF(){
+		LinkedList<ELNTClusterPortTDF> clusterPortsTDF = new LinkedList<ELNTClusterPortTDF>();
+		for (ELNTComponent clusterPortTDF : elnComponents) {
+			if (clusterPortTDF instanceof ELNTClusterPortTDF) {
+				clusterPortsTDF.add((ELNTClusterPortTDF) clusterPortTDF);
+			}
+		}
+		return clusterPortsTDF;
+	}
+
+	public LinkedList<ELNTComponentCapacitor> getAllComponentCapacitor(){
 		LinkedList<ELNTComponentCapacitor> capacitors = new LinkedList<ELNTComponentCapacitor>();
-		for (ELNTComponent capacitor : components) {
+		for (ELNTComponent capacitor : elnComponents) {
 			if (capacitor instanceof ELNTComponentCapacitor) {
 				capacitors.add((ELNTComponentCapacitor) capacitor);
 			}
 		}
 		return capacitors;
-    }
-    
-    public LinkedList<ELNTComponentCurrentSinkTDF> getAllComponentCurrentSinkTDF(){
+	}
+	
+	public LinkedList<ELNTComponentCurrentSinkDE> getAllComponentCurrentSinkDE(){
+		LinkedList<ELNTComponentCurrentSinkDE> DE_isinks = new LinkedList<ELNTComponentCurrentSinkDE>();
+		for (ELNTComponent DE_isink : elnComponents) {
+			if (DE_isink instanceof ELNTComponentCurrentSinkDE) {
+				DE_isinks.add((ELNTComponentCurrentSinkDE) DE_isink);
+			}
+		}
+		return DE_isinks;
+	}
+
+	public LinkedList<ELNTComponentCurrentSourceDE> getAllComponentCurrentSourceDE(){
+		LinkedList<ELNTComponentCurrentSourceDE> DE_isources = new LinkedList<ELNTComponentCurrentSourceDE>();
+		for (ELNTComponent DE_isource : elnComponents) {
+			if (DE_isource instanceof ELNTComponentCurrentSourceDE) {
+				DE_isources.add((ELNTComponentCurrentSourceDE) DE_isource);
+			}
+		}
+		return DE_isources;
+	}
+
+	public LinkedList<ELNTComponentCurrentSinkTDF> getAllComponentCurrentSinkTDF(){
 		LinkedList<ELNTComponentCurrentSinkTDF> TDF_isinks = new LinkedList<ELNTComponentCurrentSinkTDF>();
-		for (ELNTComponent TDF_isink : components) {
+		for (ELNTComponent TDF_isink : elnComponents) {
 			if (TDF_isink instanceof ELNTComponentCurrentSinkTDF) {
 				TDF_isinks.add((ELNTComponentCurrentSinkTDF) TDF_isink);
 			}
 		}
 		return TDF_isinks;
-    }
-    
-    public LinkedList<ELNTComponentCurrentSourceTDF> getAllComponentCurrentSourceTDF(){
+	}
+
+	public LinkedList<ELNTComponentCurrentSourceTDF> getAllComponentCurrentSourceTDF(){
 		LinkedList<ELNTComponentCurrentSourceTDF> TDF_isources = new LinkedList<ELNTComponentCurrentSourceTDF>();
-		for (ELNTComponent TDF_isource : components) {
+		for (ELNTComponent TDF_isource : elnComponents) {
 			if (TDF_isource instanceof ELNTComponentCurrentSourceTDF) {
 				TDF_isources.add((ELNTComponentCurrentSourceTDF) TDF_isource);
 			}
 		}
 		return TDF_isources;
-    }
-    
-    public LinkedList<ELNTComponentIdealTransformer> getAllComponentIdealTransformer(){
+	}
+
+	public LinkedList<ELNTComponentIdealTransformer> getAllComponentIdealTransformer(){
 		LinkedList<ELNTComponentIdealTransformer> idealTransformers = new LinkedList<ELNTComponentIdealTransformer>();
-		for (ELNTComponent idealTransformer : components) {
+		for (ELNTComponent idealTransformer : elnComponents) {
 			if (idealTransformer instanceof ELNTComponentIdealTransformer) {
 				idealTransformers.add((ELNTComponentIdealTransformer) idealTransformer);
 			}
 		}
 		return idealTransformers;
-    }
-    
-    public LinkedList<ELNTComponentIndependentCurrentSource> getAllComponentIndependentCurrentSource(){
+	}
+
+	public LinkedList<ELNTComponentIndependentCurrentSource> getAllComponentIndependentCurrentSource(){
 		LinkedList<ELNTComponentIndependentCurrentSource> isources = new LinkedList<ELNTComponentIndependentCurrentSource>();
-		for (ELNTComponent isource : components) {
+		for (ELNTComponent isource : elnComponents) {
 			if (isource instanceof ELNTComponentIndependentCurrentSource) {
 				isources.add((ELNTComponentIndependentCurrentSource) isource);
 			}
 		}
 		return isources;
-    }
-    
-    public LinkedList<ELNTComponentIndependentVoltageSource> getAllComponentIndependentVoltageSource(){
+	}
+
+	public LinkedList<ELNTComponentIndependentVoltageSource> getAllComponentIndependentVoltageSource(){
 		LinkedList<ELNTComponentIndependentVoltageSource> vsources = new LinkedList<ELNTComponentIndependentVoltageSource>();
-		for (ELNTComponent vsource : components) {
+		for (ELNTComponent vsource : elnComponents) {
 			if (vsource instanceof ELNTComponentIndependentVoltageSource) {
 				vsources.add((ELNTComponentIndependentVoltageSource) vsource);
 			}
 		}
 		return vsources;
-    }
-    
-    public LinkedList<ELNTComponentInductor> getAllComponentInductor(){
+	}
+
+	public LinkedList<ELNTComponentInductor> getAllComponentInductor(){
 		LinkedList<ELNTComponentInductor> inductors = new LinkedList<ELNTComponentInductor>();
-		for (ELNTComponent inductor : components) {
+		for (ELNTComponent inductor : elnComponents) {
 			if (inductor instanceof ELNTComponentInductor) {
 				inductors.add((ELNTComponentInductor) inductor);
 			}
 		}
 		return inductors;
-    }
-    
-    public LinkedList<ELNTComponentNodeRef> getAllComponentNodeRef(){
-		LinkedList<ELNTComponentNodeRef> nodeRefs = new LinkedList<ELNTComponentNodeRef>();
-		for (ELNTComponent nodeRef : components) {
-			if (nodeRef instanceof ELNTComponentNodeRef) {
-				nodeRefs.add((ELNTComponentNodeRef) nodeRef);
+	}
+
+	public LinkedList<ELNTNodeRef> getAllComponentNodeRef(){
+		LinkedList<ELNTNodeRef> nodeRefs = new LinkedList<ELNTNodeRef>();
+		for (ELNTComponent nodeRef : elnComponents) {
+			if (nodeRef instanceof ELNTNodeRef) {
+				nodeRefs.add((ELNTNodeRef) nodeRef);
 			}
 		}
 		return nodeRefs;
-    }
-    
-    public LinkedList<ELNTComponentResistor> getAllComponentResistor(){
+	}
+
+	public LinkedList<ELNTComponentResistor> getAllComponentResistor(){
 		LinkedList<ELNTComponentResistor> resistors = new LinkedList<ELNTComponentResistor>();
-		for (ELNTComponent resistor : components) {
+		for (ELNTComponent resistor : elnComponents) {
 			if (resistor instanceof ELNTComponentResistor) {
 				resistors.add((ELNTComponentResistor) resistor);
 			}
 		}
 		return resistors;
-    }
-    
-    public LinkedList<ELNTComponentTransmissionLine> getAllComponentTransmissionLine(){
+	}
+
+	public LinkedList<ELNTComponentTransmissionLine> getAllComponentTransmissionLine(){
 		LinkedList<ELNTComponentTransmissionLine> transmissionLines = new LinkedList<ELNTComponentTransmissionLine>();
-		for (ELNTComponent transmissionLine : components) {
+		for (ELNTComponent transmissionLine : elnComponents) {
 			if (transmissionLine instanceof ELNTComponentTransmissionLine) {
 				transmissionLines.add((ELNTComponentTransmissionLine) transmissionLine);
 			}
 		}
 		return transmissionLines;
-    }
-    
-    public LinkedList<ELNTComponentVoltageControlledCurrentSource> getAllComponentVoltageControlledCurrentSource(){
+	}
+
+	public LinkedList<ELNTComponentVoltageControlledCurrentSource> getAllComponentVoltageControlledCurrentSource(){
 		LinkedList<ELNTComponentVoltageControlledCurrentSource> vccss = new LinkedList<ELNTComponentVoltageControlledCurrentSource>();
-		for (ELNTComponent vccs : components) {
+		for (ELNTComponent vccs : elnComponents) {
 			if (vccs instanceof ELNTComponentVoltageControlledCurrentSource) {
 				vccss.add((ELNTComponentVoltageControlledCurrentSource) vccs);
 			}
 		}
 		return vccss;
-    }
-    
-    public LinkedList<ELNTComponentVoltageControlledVoltageSource> getAllComponentVoltageControlledVoltageSource(){
+	}
+
+	public LinkedList<ELNTComponentVoltageControlledVoltageSource> getAllComponentVoltageControlledVoltageSource(){
 		LinkedList<ELNTComponentVoltageControlledVoltageSource> vcvss = new LinkedList<ELNTComponentVoltageControlledVoltageSource>();
-		for (ELNTComponent vcvs : components) {
+		for (ELNTComponent vcvs : elnComponents) {
 			if (vcvs instanceof ELNTComponentVoltageControlledVoltageSource) {
 				vcvss.add((ELNTComponentVoltageControlledVoltageSource) vcvs);
 			}
 		}
 		return vcvss;
-    }
-    
-    public LinkedList<ELNTComponentVoltageSinkTDF> getAllComponentVoltageSinkTDF(){
+	}
+
+	public LinkedList<ELNTComponentVoltageSinkDE> getAllComponentVoltageSinkDE(){
+		LinkedList<ELNTComponentVoltageSinkDE> DE_vsinks = new LinkedList<ELNTComponentVoltageSinkDE>();
+		for (ELNTComponent DE_vsink : elnComponents) {
+			if (DE_vsink instanceof ELNTComponentVoltageSinkDE) {
+				DE_vsinks.add((ELNTComponentVoltageSinkDE) DE_vsink);
+			}
+		}
+		return DE_vsinks;
+	}
+
+	public LinkedList<ELNTComponentVoltageSourceDE> getAllComponentVoltageSourceDE(){
+		LinkedList<ELNTComponentVoltageSourceDE> DE_vsources = new LinkedList<ELNTComponentVoltageSourceDE>();
+		for (ELNTComponent DE_vsource : elnComponents) {
+			if (DE_vsource instanceof ELNTComponentVoltageSourceDE) {
+				DE_vsources.add((ELNTComponentVoltageSourceDE) DE_vsource);
+			}
+		}
+		return DE_vsources;
+	}
+	
+	public LinkedList<ELNTComponentVoltageSinkTDF> getAllComponentVoltageSinkTDF(){
 		LinkedList<ELNTComponentVoltageSinkTDF> TDF_vsinks = new LinkedList<ELNTComponentVoltageSinkTDF>();
-		for (ELNTComponent TDF_vsink : components) {
+		for (ELNTComponent TDF_vsink : elnComponents) {
 			if (TDF_vsink instanceof ELNTComponentVoltageSinkTDF) {
 				TDF_vsinks.add((ELNTComponentVoltageSinkTDF) TDF_vsink);
 			}
 		}
 		return TDF_vsinks;
-    }
-    
-    public LinkedList<ELNTComponentVoltageSourceTDF> getAllComponentVoltageSourceTDF(){
+	}
+
+	public LinkedList<ELNTComponentVoltageSourceTDF> getAllComponentVoltageSourceTDF(){
 		LinkedList<ELNTComponentVoltageSourceTDF> TDF_vsources = new LinkedList<ELNTComponentVoltageSourceTDF>();
-		for (ELNTComponent TDF_vsource : components) {
+		for (ELNTComponent TDF_vsource : elnComponents) {
 			if (TDF_vsource instanceof ELNTComponentVoltageSourceTDF) {
 				TDF_vsources.add((ELNTComponentVoltageSourceTDF) TDF_vsource);
 			}
 		}
 		return TDF_vsources;
-    }
-    
-    public LinkedList<ELNTMidPortTerminal> getAllMidPortTerminal(){
+	}
+
+	public LinkedList<ELNTMidPortTerminal> getAllMidPortTerminal(){
 		LinkedList<ELNTMidPortTerminal> midPortTerminals = new LinkedList<ELNTMidPortTerminal>();
-		for (ELNTComponent midPortTerminal : components) {
+		for (ELNTComponent midPortTerminal : elnComponents) {
 			if (midPortTerminal instanceof ELNTMidPortTerminal) {
 				midPortTerminals.add((ELNTMidPortTerminal) midPortTerminal);
 			}
 		}
 		return midPortTerminals;
-    }
-    
-    public LinkedList<ELNTModule> getAllModule(){
+	}
+
+	public LinkedList<ELNTModule> getAllModule(){
 		LinkedList<ELNTModule> modules = new LinkedList<ELNTModule>();
-		for (ELNTComponent module : components) {
+		for (ELNTComponent module : elnComponents) {
 			if (module instanceof ELNTModule) {
 				modules.add((ELNTModule) module);
 			}
 		}
 		return modules;
-    }
-    
-    public LinkedList<ELNTModuleTerminal> getAllModuleTerminal(){
+	}
+
+	public LinkedList<ELNTModuleTerminal> getAllModuleTerminal(){
 		LinkedList<ELNTModuleTerminal> moduleTerminals = new LinkedList<ELNTModuleTerminal>();
-		for (ELNTComponent moduleTerminal : components) {
+		for (ELNTComponent moduleTerminal : elnComponents) {
 			if (moduleTerminal instanceof ELNTModuleTerminal) {
 				moduleTerminals.add((ELNTModuleTerminal) moduleTerminal);
 			}
 		}
 		return moduleTerminals;
-    }
-    
-    public int getNbComponentCapacitor(){
-    	return (getAllComponentCapacitor()).size();
-    }
-    
-    public int getNbComponentCurrentSinkTDF(){
-    	return (getAllComponentCurrentSinkTDF()).size();
-    }
-    
-    public int getNbComponentCurrentSourceTDF(){
-    	return (getAllComponentCurrentSourceTDF()).size();
-    }
-    
-    public int getNbComponentIdealTransformer(){
-    	return (getAllComponentIdealTransformer()).size();
-    }
-    
-    public int getNbComponentIndependentCurrentSource(){
-    	return (getAllComponentIndependentCurrentSource()).size();
-    }
-    
-    public int getNbComponentIndependentVoltageSource(){
-    	return (getAllComponentIndependentVoltageSource()).size();
-    }
-    
-    public int getNbComponentInductor(){
-    	return (getAllComponentInductor()).size();
-    }
-    
-    public int getNbComponentNodeRef(){
-    	return (getAllComponentNodeRef()).size();
-    }
-    
-    public int getNbComponentResistor(){
-    	return (getAllComponentResistor()).size();
-    }
-    
-    public int getNbComponentTransmissionLine(){
-    	return (getAllComponentTransmissionLine()).size();
-    }
-    
-    public int getNbComponentVoltageControlledCurrentSource(){
-    	return (getAllComponentVoltageControlledCurrentSource()).size();
-    }
-    
-    public int getNbComponentVoltageControlledVoltageSource(){
-    	return (getAllComponentVoltageControlledVoltageSource()).size();
-    }
-    
-    public int getNbComponentVoltageSinkTDF(){
-    	return (getAllComponentVoltageSinkTDF()).size();
-    }
-    
-    public int getNbComponentVoltageSourceTDF(){
-    	return (getAllComponentVoltageSourceTDF()).size();
-    }
-    
-    public int getNbMidPortTerminal(){
-    	return (getAllMidPortTerminal()).size();
-    }
-    
-    public int getNbModule(){
-    	return (getAllModule()).size();
-    }
-    
-    public int getNbModuleTerminal(){
-    	return (getAllModuleTerminal()).size();
-    }
+	}
+
+	public LinkedList<ELNTModulePortDE> getAllModulePortDE(){
+		LinkedList<ELNTModulePortDE> modulePortsDE = new LinkedList<ELNTModulePortDE>();
+		for (ELNTComponent modulePortDE : elnComponents) {
+			if (modulePortDE instanceof ELNTModulePortDE) {
+				modulePortsDE.add((ELNTModulePortDE) modulePortDE);
+			}
+		}
+		return modulePortsDE;
+	}
+
+	public LinkedList<ELNTModulePortTDF> getAllModulePortTDF(){
+		LinkedList<ELNTModulePortTDF> modulePortsTDF = new LinkedList<ELNTModulePortTDF>();
+		for (ELNTComponent modulePortTDF : elnComponents) {
+			if (modulePortTDF instanceof ELNTModulePortTDF) {
+				modulePortsTDF.add((ELNTModulePortTDF) modulePortTDF);
+			}
+		}
+		return modulePortsTDF;
+	}
+
+	public int getNbClusterTerminal(){
+		return (getAllClusterTerminal()).size();
+	}
+
+	public int getNbClusterPortDE(){
+		return (getAllClusterPortDE()).size();
+	}
+
+	public int getNbClusterPortTDF(){
+		return (getAllClusterPortTDF()).size();
+	}
+
+	public int getNbComponentCapacitor(){
+		return (getAllComponentCapacitor()).size();
+	}
+
+	public int getNbComponentCurrentSinkDE(){
+		return (getAllComponentCurrentSinkDE()).size();
+	}
+
+	public int getNbComponentCurrentSourceDE(){
+		return (getAllComponentCurrentSourceDE()).size();
+	}
+	
+	public int getNbComponentCurrentSinkTDF(){
+		return (getAllComponentCurrentSinkTDF()).size();
+	}
+
+	public int getNbComponentCurrentSourceTDF(){
+		return (getAllComponentCurrentSourceTDF()).size();
+	}
+
+	public int getNbComponentIdealTransformer(){
+		return (getAllComponentIdealTransformer()).size();
+	}
+
+	public int getNbComponentIndependentCurrentSource(){
+		return (getAllComponentIndependentCurrentSource()).size();
+	}
+
+	public int getNbComponentIndependentVoltageSource(){
+		return (getAllComponentIndependentVoltageSource()).size();
+	}
+
+	public int getNbComponentInductor(){
+		return (getAllComponentInductor()).size();
+	}
+
+	public int getNbComponentNodeRef(){
+		return (getAllComponentNodeRef()).size();
+	}
+
+	public int getNbComponentResistor(){
+		return (getAllComponentResistor()).size();
+	}
+
+	public int getNbComponentTransmissionLine(){
+		return (getAllComponentTransmissionLine()).size();
+	}
+
+	public int getNbComponentVoltageControlledCurrentSource(){
+		return (getAllComponentVoltageControlledCurrentSource()).size();
+	}
+
+	public int getNbComponentVoltageControlledVoltageSource(){
+		return (getAllComponentVoltageControlledVoltageSource()).size();
+	}
+
+	public int getNbComponentVoltageSinkDE(){
+		return (getAllComponentVoltageSinkDE()).size();
+	}
+
+	public int getNbComponentVoltageSourceDE(){
+		return (getAllComponentVoltageSourceDE()).size();
+	}
+	
+	public int getNbComponentVoltageSinkTDF(){
+		return (getAllComponentVoltageSinkTDF()).size();
+	}
+
+	public int getNbComponentVoltageSourceTDF(){
+		return (getAllComponentVoltageSourceTDF()).size();
+	}
+
+	public int getNbMidPortTerminal(){
+		return (getAllMidPortTerminal()).size();
+	}
+
+	public int getNbModule(){
+		return (getAllModule()).size();
+	}
+
+	public int getNbModuleTerminal(){
+		return (getAllModuleTerminal()).size();
+	}
+
+	public int getNbModulePortDE(){
+		return (getAllModulePortDE()).size();
+	}
+
+	public int getNbModulePortTDF(){
+		return (getAllModulePortTDF()).size();
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTCluster.java b/src/main/java/elntranslator/ELNTCluster.java
new file mode 100644
index 0000000000000000000000000000000000000000..578e8bab0899d61673c69b3d9c1a27f047b9fb27
--- /dev/null
+++ b/src/main/java/elntranslator/ELNTCluster.java
@@ -0,0 +1,102 @@
+/* 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 elntranslator;
+
+import java.util.LinkedList;
+
+/**
+ * Class ELNTCluster
+ * Parameters of a ELN component : cluster
+ * Creation: 30/07/2018
+ * @version 1.0 30/07/2018
+ * @author Irina Kit Yan LEE
+*/
+
+public class ELNTCluster extends ELNTComponent {
+	private String name;
+	
+	private LinkedList<ELNTClusterTerminal> clusterTerminal;
+	private LinkedList<ELNTClusterPortDE> clusterPortDE;
+	private LinkedList<ELNTClusterPortTDF> clusterPortTDF;
+	private LinkedList<ELNTModule> module;
+	
+	public ELNTCluster(String _name) {
+		name = _name;
+		clusterTerminal = new LinkedList<ELNTClusterTerminal>();
+		clusterPortDE = new LinkedList<ELNTClusterPortDE>();
+		clusterPortTDF = new LinkedList<ELNTClusterPortTDF>();
+		module = new LinkedList<ELNTModule>();
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public LinkedList<ELNTClusterTerminal> getClusterTerminal() {
+		return clusterTerminal;
+	}
+	
+	public void addClusterTerminal(ELNTClusterTerminal _clusterTerminal){
+		clusterTerminal.add(_clusterTerminal);
+	}
+
+	public LinkedList<ELNTClusterPortDE> getClusterPortDE() {
+		return clusterPortDE;
+	}
+
+	public void addClusterPortDE(ELNTClusterPortDE _clusterPortDE){
+		clusterPortDE.add(_clusterPortDE);
+	}
+	
+	public LinkedList<ELNTClusterPortTDF> getClusterPortTDF() {
+		return clusterPortTDF;
+	}
+
+	public void addClusterPortTDF(ELNTClusterPortTDF _clusterPortTDF){
+		clusterPortTDF.add(_clusterPortTDF);
+	}
+	
+	public LinkedList<ELNTModule> getModule() {
+		return module;
+	}
+
+	public void addModule(ELNTModule _module){
+		module.add(_module);
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTClusterPortDE.java b/src/main/java/elntranslator/ELNTClusterPortDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..b98311ec7e3fb88f9479394eddd21ea6ae065d55
--- /dev/null
+++ b/src/main/java/elntranslator/ELNTClusterPortDE.java
@@ -0,0 +1,78 @@
+/* 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 elntranslator;
+
+/**
+ * Class ELNTClusterPortDE
+ * Parameters of a ELN composite component : cluster port DE
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+public class ELNTClusterPortDE extends ELNTComponent {
+	private String name;
+	private String type;
+	private String origin;
+	
+	private ELNTCluster cluster;
+	
+	public ELNTClusterPortDE(String _name, String _type, String _origin, ELNTCluster _cluster) {
+		name = _name;
+		type = _type;
+		origin = _origin;
+		cluster = _cluster;
+	}
+
+	public String getName() {
+		return name;
+	}
+	
+	public String getType() {
+		return type;
+	}
+
+	public String getOrigin() {
+		return origin;
+	}
+
+	public ELNTCluster getCluster() {
+		return cluster;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTClusterPortTDF.java b/src/main/java/elntranslator/ELNTClusterPortTDF.java
new file mode 100644
index 0000000000000000000000000000000000000000..2a9f77a435b58896012dcf458885d68c99e24ff0
--- /dev/null
+++ b/src/main/java/elntranslator/ELNTClusterPortTDF.java
@@ -0,0 +1,78 @@
+/* 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 elntranslator;
+
+/**
+ * Class ELNTClusterPortTDF
+ * Parameters of a ELN composite component : cluster port TDF
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+public class ELNTClusterPortTDF extends ELNTComponent {
+	private String name;
+	private String type;
+	private String origin;
+	
+	private ELNTCluster cluster;
+	
+	public ELNTClusterPortTDF(String _name, String _type, String _origin, ELNTCluster _cluster) {
+		name = _name;
+		type = _type;
+		origin = _origin;
+		cluster = _cluster;
+	}
+
+	public String getName() {
+		return name;
+	}
+	
+	public String getType() {
+		return type;
+	}
+
+	public String getOrigin() {
+		return origin;
+	}
+
+	public ELNTCluster getCluster() {
+		return cluster;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java b/src/main/java/elntranslator/ELNTClusterTerminal.java
old mode 100755
new mode 100644
similarity index 79%
rename from src/main/java/tmltranslator/tmlcp/TMLCPJunction.java
rename to src/main/java/elntranslator/ELNTClusterTerminal.java
index c0ac565fef1b0776f7e1ae37fd10fcc5f66c2971..1f87a6b11a945e641302d089e84d66c7efa4b134
--- a/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java
+++ b/src/main/java/elntranslator/ELNTClusterTerminal.java
@@ -36,21 +36,31 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-package tmltranslator.tmlcp;
+package elntranslator;
 
 /**
-* Class TMLCPJunction
-* Creation: 18/02/2014
-* @version 1.0 18/02/2014
-* @author Ludovic APVRILLE
- */
-public class TMLCPJunction extends TMLCPElement  {
+ * Class ELNTClusterTerminal
+ * Parameters of a ELN composite component : cluster terminal
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+*/
 
-    public TMLCPJunction(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
-    }
+public class ELNTClusterTerminal extends ELNTComponent {
+	private String name;
 	
-}
+	private ELNTCluster cluster;
+	
+	public ELNTClusterTerminal(String _name, ELNTCluster _cluster) {
+		name = _name;
+		cluster = _cluster;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public ELNTCluster getCluster() {
+		return cluster;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTComponentCapacitor.java b/src/main/java/elntranslator/ELNTComponentCapacitor.java
index 6090df53f48928298ee0701ad9b3be47f64a12c8..27932ae8bf848c20a0f416d8923365cf8b9a5167 100644
--- a/src/main/java/elntranslator/ELNTComponentCapacitor.java
+++ b/src/main/java/elntranslator/ELNTComponentCapacitor.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentCapacitor
@@ -48,21 +48,21 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentCapacitor extends ELNTComponent {
+public class ELNTComponentCapacitor extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double val, q0;
 	private String unit0, unit1;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentCapacitor(String _name, double _val, double _q0, String _unit0, String _unit1, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentCapacitor(String _name, double _val, double _q0, String _unit0, String _unit1, ELNTModule _module) {
 		name = _name;
 		val = _val;
 		q0 = _q0;
 		unit0 = _unit0;
 		unit1 = _unit1;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -86,9 +86,13 @@ public class ELNTComponentCapacitor extends ELNTComponent {
 		return unit1;
 	}
 	
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
 
 	public ELNTModule getModule() {
 		return module;
diff --git a/src/main/java/elntranslator/ELNTComponentCurrentSinkDE.java b/src/main/java/elntranslator/ELNTComponentCurrentSinkDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..a76230fcdf34b1c9fa7d2be77104937d02276eec
--- /dev/null
+++ b/src/main/java/elntranslator/ELNTComponentCurrentSinkDE.java
@@ -0,0 +1,84 @@
+/* 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 elntranslator;
+
+import java.util.LinkedList;
+
+/**
+ * Class ELNTComponentCurrentSinkDE
+ * Parameters of a ELN primitive component : DE current sink
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+public class ELNTComponentCurrentSinkDE extends ELNTComponent implements ELNTPrimitiveComponent {
+	private String name;
+	private double scale;
+	private LinkedList<ELNTConnectingPoint> cp;
+	
+	private ELNTModule module;
+	
+	public ELNTComponentCurrentSinkDE(String _name, double _scale, ELNTModule _module) {
+		name = _name;
+		scale = _scale;
+		cp = new LinkedList<ELNTConnectingPoint>();
+		module = _module;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public double getScale() {
+		return scale;
+	}
+
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
+		return cp;
+	}
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
+	public ELNTModule getModule() {
+		return module;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTComponentCurrentSinkTDF.java b/src/main/java/elntranslator/ELNTComponentCurrentSinkTDF.java
index a0ffc2cba466b95be2dd66873c63b860aabb0475..f12685a13252fb5d19b37dc61f7d9cb8bb423678 100644
--- a/src/main/java/elntranslator/ELNTComponentCurrentSinkTDF.java
+++ b/src/main/java/elntranslator/ELNTComponentCurrentSinkTDF.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentCurrentSinkTDF
@@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentCurrentSinkTDF extends ELNTComponent {
+public class ELNTComponentCurrentSinkTDF extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double scale;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentCurrentSinkTDF(String _name, double _scale, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentCurrentSinkTDF(String _name, double _scale, ELNTModule _module) {
 		name = _name;
 		scale = _scale;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -70,10 +70,14 @@ public class ELNTComponentCurrentSinkTDF extends ELNTComponent {
 		return scale;
 	}
 
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
 	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
 	public ELNTModule getModule() {
 		return module;
 	}
diff --git a/src/main/java/elntranslator/ELNTComponentCurrentSourceDE.java b/src/main/java/elntranslator/ELNTComponentCurrentSourceDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..b549553d76b7f9538e6319dec99efd54d4dac1f6
--- /dev/null
+++ b/src/main/java/elntranslator/ELNTComponentCurrentSourceDE.java
@@ -0,0 +1,84 @@
+/* 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 elntranslator;
+
+import java.util.LinkedList;
+
+/**
+ * Class ELNTComponentCurrentSourceDE
+ * Parameters of a ELN primitive component : DE current source
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+public class ELNTComponentCurrentSourceDE extends ELNTComponent implements ELNTPrimitiveComponent {
+	private String name;
+	private double scale;
+	private LinkedList<ELNTConnectingPoint> cp;
+	
+	private ELNTModule module;
+	
+	public ELNTComponentCurrentSourceDE(String _name, double _scale, ELNTModule _module) {
+		name = _name;
+		scale = _scale;
+		cp = new LinkedList<ELNTConnectingPoint>();
+		module = _module;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public double getScale() {
+		return scale;
+	}
+
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
+		return cp;
+	}
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
+	public ELNTModule getModule() {
+		return module;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTComponentCurrentSourceTDF.java b/src/main/java/elntranslator/ELNTComponentCurrentSourceTDF.java
index 464097cd520e59a8af192e98f86b219343cd4fe0..0eb6fb5b3592cf8e36789e235f1189e15424d8d1 100644
--- a/src/main/java/elntranslator/ELNTComponentCurrentSourceTDF.java
+++ b/src/main/java/elntranslator/ELNTComponentCurrentSourceTDF.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentCurrentSourceTDF
@@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentCurrentSourceTDF extends ELNTComponent {
+public class ELNTComponentCurrentSourceTDF extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double scale;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentCurrentSourceTDF(String _name, double _scale, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentCurrentSourceTDF(String _name, double _scale, ELNTModule _module) {
 		name = _name;
 		scale = _scale;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -70,10 +70,14 @@ public class ELNTComponentCurrentSourceTDF extends ELNTComponent {
 		return scale;
 	}
 
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
 	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
 	public ELNTModule getModule() {
 		return module;
 	}
diff --git a/src/main/java/elntranslator/ELNTComponentIdealTransformer.java b/src/main/java/elntranslator/ELNTComponentIdealTransformer.java
index e6e8588bc085b5c0fb58d8b71ea2fbb93f969a6a..e2485fedc3e4d57d331fdfab72cdc1f5f8ed894d 100644
--- a/src/main/java/elntranslator/ELNTComponentIdealTransformer.java
+++ b/src/main/java/elntranslator/ELNTComponentIdealTransformer.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentIdealTransformer
@@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentIdealTransformer extends ELNTComponent {
+public class ELNTComponentIdealTransformer extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double ratio;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentIdealTransformer(String _name, double _ratio, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentIdealTransformer(String _name, double _ratio, ELNTModule _module) {
 		name = _name;
 		ratio = _ratio;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -70,10 +70,14 @@ public class ELNTComponentIdealTransformer extends ELNTComponent {
 		return ratio;
 	}
 	
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
-
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
 	public ELNTModule getModule() {
 		return module;
 	}
diff --git a/src/main/java/elntranslator/ELNTComponentIndependentCurrentSource.java b/src/main/java/elntranslator/ELNTComponentIndependentCurrentSource.java
index 9596a8b4ae9b0bb3379510e7510cbd9d1786fa9f..a5697164fe4e990737da04cfcb138f6ee2f56155 100644
--- a/src/main/java/elntranslator/ELNTComponentIndependentCurrentSource.java
+++ b/src/main/java/elntranslator/ELNTComponentIndependentCurrentSource.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentIndependentCurrentSource
@@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentIndependentCurrentSource extends ELNTComponent {
+public class ELNTComponentIndependentCurrentSource extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmplitude;
 	private String delay;
 	private String unit0;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
 	public ELNTComponentIndependentCurrentSource(String _name, double _initValue, double _offset, double _amplitude, double _frequency, double _phase, 
-			double _acAmplitude, double _acPhase, double _acNoiseAmplitude, String _delay, String _unit0, ELNConnectingPoint[] _cp, ELNTModule _module) {
+			double _acAmplitude, double _acPhase, double _acNoiseAmplitude, String _delay, String _unit0, ELNTModule _module) {
 		name = _name;
 		initValue = _initValue;
 		offset = _offset;
@@ -70,7 +70,7 @@ public class ELNTComponentIndependentCurrentSource extends ELNTComponent {
 		acNoiseAmplitude = _acNoiseAmplitude;
 		delay = _delay;
 		unit0 = _unit0;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -118,9 +118,13 @@ public class ELNTComponentIndependentCurrentSource extends ELNTComponent {
 		return unit0;
 	}
 	
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
 
 	public ELNTModule getModule() {
 		return module;
diff --git a/src/main/java/elntranslator/ELNTComponentIndependentVoltageSource.java b/src/main/java/elntranslator/ELNTComponentIndependentVoltageSource.java
index 9b2c8c944a1fb08636e2897f21f83480a56acd99..4fe9495c7ad3606a91783ed954965e1aecccf03f 100644
--- a/src/main/java/elntranslator/ELNTComponentIndependentVoltageSource.java
+++ b/src/main/java/elntranslator/ELNTComponentIndependentVoltageSource.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentIndependentVoltageSource
@@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentIndependentVoltageSource extends ELNTComponent {
+public class ELNTComponentIndependentVoltageSource extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmplitude;
 	private String delay;
 	private String unit0;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
 	public ELNTComponentIndependentVoltageSource(String _name, double _initValue, double _offset, double _amplitude, double _frequency, double _phase, 
-			double _acAmplitude, double _acPhase, double _acNoiseAmplitude, String _delay, String _unit0, ELNConnectingPoint[] _cp, ELNTModule _module) {
+			double _acAmplitude, double _acPhase, double _acNoiseAmplitude, String _delay, String _unit0, ELNTModule _module) {
 		name = _name;
 		initValue = _initValue;
 		offset = _offset;
@@ -70,7 +70,7 @@ public class ELNTComponentIndependentVoltageSource extends ELNTComponent {
 		acNoiseAmplitude = _acNoiseAmplitude;
 		delay = _delay;
 		unit0 = _unit0;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -118,10 +118,14 @@ public class ELNTComponentIndependentVoltageSource extends ELNTComponent {
 		return unit0;
 	}
 
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
 	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
 	public ELNTModule getModule() {
 		return module;
 	}
diff --git a/src/main/java/elntranslator/ELNTComponentInductor.java b/src/main/java/elntranslator/ELNTComponentInductor.java
index 96020bf0903a5260c292a217c4465f9bf492730a..806cb21c4c680b6c5ec10e8fde3304d31e82d126 100644
--- a/src/main/java/elntranslator/ELNTComponentInductor.java
+++ b/src/main/java/elntranslator/ELNTComponentInductor.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentInductor
@@ -48,21 +48,21 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentInductor extends ELNTComponent {
+public class ELNTComponentInductor extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double val, phi0;
 	private String unit0, unit1;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentInductor(String _name, double _val, double _phi0, String _unit0, String _unit1, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentInductor(String _name, double _val, double _phi0, String _unit0, String _unit1, ELNTModule _module) {
 		name = _name;
 		val = _val;
 		phi0 = _phi0;
 		unit0 = _unit0;
 		unit1 = _unit1;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -86,10 +86,14 @@ public class ELNTComponentInductor extends ELNTComponent {
 		return unit1;
 	}
 
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
 	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
 	public ELNTModule getModule() {
 		return module;
 	}
diff --git a/src/main/java/elntranslator/ELNTComponentResistor.java b/src/main/java/elntranslator/ELNTComponentResistor.java
index fc015176c7978f5fdd9568b3d3955c4cc92a36a1..ab88e0b6f603f8350516a9751d4b722040e78071 100644
--- a/src/main/java/elntranslator/ELNTComponentResistor.java
+++ b/src/main/java/elntranslator/ELNTComponentResistor.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentResistor
@@ -48,19 +48,19 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentResistor extends ELNTComponent {
+public class ELNTComponentResistor extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double val;
 	private String unit;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentResistor(String _name, double _val, String _unit, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentResistor(String _name, double _val, String _unit, ELNTModule _module) {
 		name = _name;
 		val = _val;
 		unit = _unit;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -76,9 +76,13 @@ public class ELNTComponentResistor extends ELNTComponent {
 		return unit;
 	}
 	
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
 
 	public ELNTModule getModule() {
 		return module;
diff --git a/src/main/java/elntranslator/ELNTComponentTransmissionLine.java b/src/main/java/elntranslator/ELNTComponentTransmissionLine.java
index 8211c380ec978c9017db51538d5dba8b4b305dbe..140788fdfcdd201ebc9886acecb3d48dbbdbfa77 100644
--- a/src/main/java/elntranslator/ELNTComponentTransmissionLine.java
+++ b/src/main/java/elntranslator/ELNTComponentTransmissionLine.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentTransmissionLine
@@ -48,23 +48,23 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentTransmissionLine extends ELNTComponent {
+public class ELNTComponentTransmissionLine extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double z0, delta0;
 	private String delay;
 	private String unit0, unit2;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentTransmissionLine(String _name, double _z0, double _delta0, String _delay, String _unit0, String _unit2, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentTransmissionLine(String _name, double _z0, double _delta0, String _delay, String _unit0, String _unit2, ELNTModule _module) {
 		name = _name;
 		z0 = _z0;
 		delta0 = _delta0;
 		delay = _delay;
 		unit0 = _unit0;
 		unit2 = _unit2;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -92,10 +92,14 @@ public class ELNTComponentTransmissionLine extends ELNTComponent {
 		return unit2;
 	}
 
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
 	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
 	public ELNTModule getModule() {
 		return module;
 	}
diff --git a/src/main/java/elntranslator/ELNTComponentVoltageControlledCurrentSource.java b/src/main/java/elntranslator/ELNTComponentVoltageControlledCurrentSource.java
index fa7c19ba104a6788cfaf07b8bdcca40484ae70b5..52015c1427cced2e81c09109ec579b2f1875f724 100644
--- a/src/main/java/elntranslator/ELNTComponentVoltageControlledCurrentSource.java
+++ b/src/main/java/elntranslator/ELNTComponentVoltageControlledCurrentSource.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentVoltageControlledCurrentSource
@@ -48,19 +48,19 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentVoltageControlledCurrentSource extends ELNTComponent {
+public class ELNTComponentVoltageControlledCurrentSource extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double val;
 	private String unit;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentVoltageControlledCurrentSource(String _name, double _val, String _unit, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentVoltageControlledCurrentSource(String _name, double _val, String _unit, ELNTModule _module) {
 		name = _name;
 		val = _val;
 		unit = _unit;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -76,9 +76,13 @@ public class ELNTComponentVoltageControlledCurrentSource extends ELNTComponent {
 		return unit;
 	}
 	
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
 
 	public ELNTModule getModule() {
 		return module;
diff --git a/src/main/java/elntranslator/ELNTComponentVoltageControlledVoltageSource.java b/src/main/java/elntranslator/ELNTComponentVoltageControlledVoltageSource.java
index 7a1e9e28924f03617097debfd9b6c5d7f57f7eae..f6a2d9bc373b4c1748cf1be01321062fbf81194b 100644
--- a/src/main/java/elntranslator/ELNTComponentVoltageControlledVoltageSource.java
+++ b/src/main/java/elntranslator/ELNTComponentVoltageControlledVoltageSource.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentVoltageControlledVoltageSource
@@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentVoltageControlledVoltageSource extends ELNTComponent {
+public class ELNTComponentVoltageControlledVoltageSource extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double val;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentVoltageControlledVoltageSource(String _name, double _val, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentVoltageControlledVoltageSource(String _name, double _val, ELNTModule _module) {
 		name = _name;
 		val = _val;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -70,10 +70,14 @@ public class ELNTComponentVoltageControlledVoltageSource extends ELNTComponent {
 		return val;
 	}
 	
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
-
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
 	public ELNTModule getModule() {
 		return module;
 	}
diff --git a/src/main/java/elntranslator/ELNTComponentVoltageSinkDE.java b/src/main/java/elntranslator/ELNTComponentVoltageSinkDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..cc238400bb0867c088161611ffb0249bc7abe7be
--- /dev/null
+++ b/src/main/java/elntranslator/ELNTComponentVoltageSinkDE.java
@@ -0,0 +1,84 @@
+/* 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 elntranslator;
+
+import java.util.LinkedList;
+
+/**
+ * Class ELNTComponentVoltageSinkDE
+ * Parameters of a ELN primitive component : DE voltage sink
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+public class ELNTComponentVoltageSinkDE extends ELNTComponent implements ELNTPrimitiveComponent {
+	private String name;
+	private double scale;
+	private LinkedList<ELNTConnectingPoint> cp;
+	
+	private ELNTModule module;
+	
+	public ELNTComponentVoltageSinkDE(String _name, double _scale, ELNTModule _module) {
+		name = _name;
+		scale = _scale;
+		cp = new LinkedList<ELNTConnectingPoint>();
+		module = _module;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public double getScale() {
+		return scale;
+	}
+
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
+		return cp;
+	}
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
+	public ELNTModule getModule() {
+		return module;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTComponentVoltageSinkTDF.java b/src/main/java/elntranslator/ELNTComponentVoltageSinkTDF.java
index da0e9c10838da1a6bbdc2a752c1ddcad3346de03..5f2b4c023744068c2b012c601501bc3fa0aefa81 100644
--- a/src/main/java/elntranslator/ELNTComponentVoltageSinkTDF.java
+++ b/src/main/java/elntranslator/ELNTComponentVoltageSinkTDF.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentVoltageSinkTDF
@@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentVoltageSinkTDF extends ELNTComponent {
+public class ELNTComponentVoltageSinkTDF extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double scale;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentVoltageSinkTDF(String _name, double _scale, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentVoltageSinkTDF(String _name, double _scale, ELNTModule _module) {
 		name = _name;
 		scale = _scale;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -70,10 +70,14 @@ public class ELNTComponentVoltageSinkTDF extends ELNTComponent {
 		return scale;
 	}
 
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
 	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+	
 	public ELNTModule getModule() {
 		return module;
 	}
diff --git a/src/main/java/elntranslator/ELNTComponentVoltageSourceDE.java b/src/main/java/elntranslator/ELNTComponentVoltageSourceDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..f36c1465755b1b7dc5279c92a1bd4489485c6ba9
--- /dev/null
+++ b/src/main/java/elntranslator/ELNTComponentVoltageSourceDE.java
@@ -0,0 +1,84 @@
+/* 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 elntranslator;
+
+import java.util.LinkedList;
+
+/**
+ * Class ELNTComponentVoltageSourceDE
+ * Parameters of a ELN primitive component : DE voltage source
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+public class ELNTComponentVoltageSourceDE extends ELNTComponent implements ELNTPrimitiveComponent {
+	private String name;
+	private double scale;
+	private LinkedList<ELNTConnectingPoint> cp;
+	
+	private ELNTModule module;
+	
+	public ELNTComponentVoltageSourceDE(String _name, double _scale, ELNTModule _module) {
+		name = _name;
+		scale = _scale;
+		cp = new LinkedList<ELNTConnectingPoint>();
+		module = _module;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public double getScale() {
+		return scale;
+	}
+	
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
+		return cp;
+	}
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
+
+	public ELNTModule getModule() {
+		return module;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTComponentVoltageSourceTDF.java b/src/main/java/elntranslator/ELNTComponentVoltageSourceTDF.java
index 6f51b41e0e710f5f517a99db9452e8d7e7ccd5fb..4bc0e3781d15d66517b0f946e90ac482dba6d631 100644
--- a/src/main/java/elntranslator/ELNTComponentVoltageSourceTDF.java
+++ b/src/main/java/elntranslator/ELNTComponentVoltageSourceTDF.java
@@ -38,7 +38,7 @@
 
 package elntranslator;
 
-import ui.eln.ELNConnectingPoint;
+import java.util.LinkedList;
 
 /**
  * Class ELNTComponentVoltageSourceTDF
@@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentVoltageSourceTDF extends ELNTComponent {
+public class ELNTComponentVoltageSourceTDF extends ELNTComponent implements ELNTPrimitiveComponent {
 	private String name;
 	private double scale;
-	private ELNConnectingPoint[] cp;
+	private LinkedList<ELNTConnectingPoint> cp;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentVoltageSourceTDF(String _name, double _scale, ELNConnectingPoint[] _cp, ELNTModule _module) {
+	public ELNTComponentVoltageSourceTDF(String _name, double _scale, ELNTModule _module) {
 		name = _name;
 		scale = _scale;
-		cp = _cp;
+		cp = new LinkedList<ELNTConnectingPoint>();
 		module = _module;
 	}
 
@@ -70,9 +70,13 @@ public class ELNTComponentVoltageSourceTDF extends ELNTComponent {
 		return scale;
 	}
 	
-	public ELNConnectingPoint[] getCp() {
+	public LinkedList<ELNTConnectingPoint> getConnectingPoint() {
 		return cp;
 	}
+	
+	public void addConnectingPoint(ELNTConnectingPoint _cp) {
+		cp.add(_cp);
+	}
 
 	public ELNTModule getModule() {
 		return module;
diff --git a/src/main/java/elntranslator/ELNTConnectingPoint.java b/src/main/java/elntranslator/ELNTConnectingPoint.java
index 92c5d1cbccd6bc398ee06d9b9a47d2b0ad37c183..5bb09510b0b472362d09a001085463f91d2626b9 100644
--- a/src/main/java/elntranslator/ELNTConnectingPoint.java
+++ b/src/main/java/elntranslator/ELNTConnectingPoint.java
@@ -46,13 +46,14 @@ package elntranslator;
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTConnectingPoint{
+public class ELNTConnectingPoint {
 	private String name;
 	
-	private ELNTConnector ownerConnector ;
+	private ELNTConnector ownerConnector;
 	private ELNTComponent ownerComponent;
 
-	public ELNTConnectingPoint(ELNTComponent _ownerComponent, String _name) {
+	public ELNTConnectingPoint(String _name, ELNTComponent _ownerComponent) {
+		name = _name;
 		ownerComponent = _ownerComponent;
 	}
 	
@@ -63,6 +64,10 @@ public class ELNTConnectingPoint{
 	public ELNTConnector getConnector() {
 		return ownerConnector;
 	}
+	
+	public void setOwnerConnector(ELNTConnector _ownerConnector) {
+		ownerConnector = _ownerConnector;
+	}
 
 	public ELNTComponent getComponent() {
 		return ownerComponent;
diff --git a/src/main/java/elntranslator/ELNTModule.java b/src/main/java/elntranslator/ELNTModule.java
index b345c68ef8d0c9ab5049c8607568a51a356baa2a..e0c3e970fd61348758d71cd83e45f37ba08812a6 100644
--- a/src/main/java/elntranslator/ELNTModule.java
+++ b/src/main/java/elntranslator/ELNTModule.java
@@ -56,7 +56,7 @@ public class ELNTModule extends ELNTComponent {
 	private LinkedList<ELNTComponentIndependentCurrentSource> isource;
 	private LinkedList<ELNTComponentIndependentVoltageSource> vsource;
 	private LinkedList<ELNTComponentInductor> inductor;
-	private LinkedList<ELNTComponentNodeRef> nodeRef;
+	private LinkedList<ELNTNodeRef> nodeRef;
 	private LinkedList<ELNTComponentResistor> resistor;
 	private LinkedList<ELNTComponentTransmissionLine> transmissionLine;
 	private LinkedList<ELNTComponentVoltageControlledCurrentSource> vccs;
@@ -65,16 +65,24 @@ public class ELNTModule extends ELNTComponent {
 	private LinkedList<ELNTComponentCurrentSourceTDF> TDF_isource;
 	private LinkedList<ELNTComponentVoltageSinkTDF> TDF_vsink;
 	private LinkedList<ELNTComponentVoltageSourceTDF> TDF_vsource;
+	private LinkedList<ELNTComponentCurrentSinkDE> DE_isink;
+	private LinkedList<ELNTComponentCurrentSourceDE> DE_isource;
+	private LinkedList<ELNTComponentVoltageSinkDE> DE_vsink;
+	private LinkedList<ELNTComponentVoltageSourceDE> DE_vsource;
 	private LinkedList<ELNTModuleTerminal> moduleTerminal;
+	private LinkedList<ELNTModulePortDE> modulePortDE;
+	private LinkedList<ELNTModulePortTDF> modulePortTDF;
 	
-	public ELNTModule(String _name) {
+	private ELNTCluster cluster;
+	
+	public ELNTModule(String _name, ELNTCluster _cluster) {
 		name = _name;
 		capacitor = new LinkedList<ELNTComponentCapacitor>();
 		idealTransformer = new LinkedList<ELNTComponentIdealTransformer>();
 		isource = new LinkedList<ELNTComponentIndependentCurrentSource>();
 		vsource = new LinkedList<ELNTComponentIndependentVoltageSource>();
 		inductor = new LinkedList<ELNTComponentInductor>();
-		nodeRef = new LinkedList<ELNTComponentNodeRef>();
+		nodeRef = new LinkedList<ELNTNodeRef>();
 		resistor = new LinkedList<ELNTComponentResistor>();
 		transmissionLine = new LinkedList<ELNTComponentTransmissionLine>();
 		vccs = new LinkedList<ELNTComponentVoltageControlledCurrentSource>();
@@ -83,7 +91,14 @@ public class ELNTModule extends ELNTComponent {
 		TDF_isource = new LinkedList<ELNTComponentCurrentSourceTDF>();
 		TDF_vsink = new LinkedList<ELNTComponentVoltageSinkTDF>();
 		TDF_vsource = new LinkedList<ELNTComponentVoltageSourceTDF>();
+		DE_isink = new LinkedList<ELNTComponentCurrentSinkDE>();
+		DE_isource = new LinkedList<ELNTComponentCurrentSourceDE>();
+		DE_vsink = new LinkedList<ELNTComponentVoltageSinkDE>();
+		DE_vsource = new LinkedList<ELNTComponentVoltageSourceDE>();
 		moduleTerminal = new LinkedList<ELNTModuleTerminal>();
+		modulePortDE = new LinkedList<ELNTModulePortDE>();
+		modulePortTDF = new LinkedList<ELNTModulePortTDF>();
+		cluster = _cluster;
 	}
 
 	public String getName() {
@@ -130,11 +145,11 @@ public class ELNTModule extends ELNTComponent {
 		inductor.add(_inductor);
 	}
 	
-	public LinkedList<ELNTComponentNodeRef> getNodeRef() {
+	public LinkedList<ELNTNodeRef> getNodeRef() {
 		return nodeRef;
 	}
 	
-	public void addNodeRef(ELNTComponentNodeRef _nodeRef){
+	public void addNodeRef(ELNTNodeRef _nodeRef){
 		nodeRef.add(_nodeRef);
 	}
 
@@ -202,6 +217,38 @@ public class ELNTModule extends ELNTComponent {
 		TDF_vsource.add(_TDF_vsource);
 	}
 	
+	public LinkedList<ELNTComponentCurrentSinkDE> getDE_isink() {
+		return DE_isink;
+	}
+	
+	public void addDE_isink(ELNTComponentCurrentSinkDE _DE_isink){
+		DE_isink.add(_DE_isink);
+	}
+
+	public LinkedList<ELNTComponentCurrentSourceDE> getDE_isource() {
+		return DE_isource;
+	}
+	
+	public void addDE_isource(ELNTComponentCurrentSourceDE _DE_isource){
+		DE_isource.add(_DE_isource);
+	}
+
+	public LinkedList<ELNTComponentVoltageSinkDE> getDE_vsink() {
+		return DE_vsink;
+	}
+	
+	public void addDE_vsink(ELNTComponentVoltageSinkDE _DE_vsink){
+		DE_vsink.add(_DE_vsink);
+	}
+
+	public LinkedList<ELNTComponentVoltageSourceDE> getDE_vsource() {
+		return DE_vsource;
+	}
+
+	public void addDE_vsource(ELNTComponentVoltageSourceDE _DE_vsource){
+		DE_vsource.add(_DE_vsource);
+	}
+	
 	public LinkedList<ELNTModuleTerminal> getModuleTerminal() {
 		return moduleTerminal;
 	}
@@ -209,4 +256,24 @@ public class ELNTModule extends ELNTComponent {
 	public void addModuleTerminal(ELNTModuleTerminal _moduleTerminal){
 		moduleTerminal.add(_moduleTerminal);
 	}
+	
+	public LinkedList<ELNTModulePortDE> getModulePortDE() {
+		return modulePortDE;
+	}
+	
+	public void addModulePortDE(ELNTModulePortDE _portDE){
+		modulePortDE.add(_portDE);
+	}
+
+	public LinkedList<ELNTModulePortTDF> getModulePortTDF() {
+		return modulePortTDF;
+	}
+	
+	public void addModulePortTDF(ELNTModulePortTDF _portTDF){
+		modulePortTDF.add(_portTDF);
+	}
+
+	public ELNTCluster getCluster() {
+		return cluster;
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/ui/CanBeDisabled.java b/src/main/java/elntranslator/ELNTModulePortDE.java
old mode 100755
new mode 100644
similarity index 73%
rename from src/main/java/ui/CanBeDisabled.java
rename to src/main/java/elntranslator/ELNTModulePortDE.java
index e7261314e735b085217b52062cf7a791547c3581..6da66413c1821f06698e661e7f2a9cc231dfd0f1
--- a/src/main/java/ui/CanBeDisabled.java
+++ b/src/main/java/elntranslator/ELNTModulePortDE.java
@@ -36,20 +36,43 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package elntranslator;
 
+/**
+ * Class ELNTModulePortDE
+ * Parameters of a ELN primitive component : module port DE
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+*/
 
+public class ELNTModulePortDE extends ELNTComponent {
+	private String name;
+	private String type;
+	private String origin;
+	
+	private ELNTModule module;
+	
+	public ELNTModulePortDE(String _name, String _type, String _origin, ELNTModule _module) {
+		name = _name;
+		type = _type;
+		origin = _origin;
+		module = _module;
+	}
 
+	public String getName() {
+		return name;
+	}
+	
+	public String getType() {
+		return type;
+	}
 
-package ui;
+	public String getOrigin() {
+		return origin;
+	}
 
-/**
- * Class CanBeDisabled
- * Components that can be enabled/disabled with a mouse click
- * Creation: 22/04/2015
- * @version 1.0 22/04/2015
- * @author Ludovic APVRILLE
- */
-public interface CanBeDisabled  {
-    boolean isEnabled();
-    void setEnabled(boolean _enabled);
-}
+	public ELNTModule getModule() {
+		return module;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTModulePortTDF.java b/src/main/java/elntranslator/ELNTModulePortTDF.java
new file mode 100644
index 0000000000000000000000000000000000000000..498fa908db82435adde740b8828b4d7890642a49
--- /dev/null
+++ b/src/main/java/elntranslator/ELNTModulePortTDF.java
@@ -0,0 +1,78 @@
+/* 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 elntranslator;
+
+/**
+ * Class ELNTModulePortTDF
+ * Parameters of a ELN primitive component : module port TDF
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+public class ELNTModulePortTDF extends ELNTComponent {
+	private String name;
+	private String type;
+	private String origin;
+	
+	private ELNTModule module;
+	
+	public ELNTModulePortTDF(String _name, String _type, String _origin, ELNTModule _module) {
+		name = _name;
+		type = _type;
+		origin = _origin;
+		module = _module;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public String getOrigin() {
+		return origin;
+	}
+	
+	public ELNTModule getModule() {
+		return module;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/ELNTComponentNodeRef.java b/src/main/java/elntranslator/ELNTNodeRef.java
similarity index 93%
rename from src/main/java/elntranslator/ELNTComponentNodeRef.java
rename to src/main/java/elntranslator/ELNTNodeRef.java
index 548bc524714a759f7ae1d1fc22f3d35c0e779787..dc6a76fed21a2599ece7870c6470348cedbefc0f 100644
--- a/src/main/java/elntranslator/ELNTComponentNodeRef.java
+++ b/src/main/java/elntranslator/ELNTNodeRef.java
@@ -39,19 +39,19 @@
 package elntranslator;
 
 /**
- * Class ELNTComponentNodeRef
+ * Class ELNTNodeRef
  * Parameters of a ELN primitive component : node ref
  * Creation: 23/07/2018
  * @version 1.0 23/07/2018
  * @author Irina Kit Yan LEE
 */
 
-public class ELNTComponentNodeRef extends ELNTComponent {
+public class ELNTNodeRef extends ELNTComponent {
 	private String name;
 	
 	private ELNTModule module;
 	
-	public ELNTComponentNodeRef(String _name, ELNTModule _module) {
+	public ELNTNodeRef(String _name, ELNTModule _module) {
 		name = _name;
 		module = _module;
 	}
diff --git a/src/main/java/elntranslator/ELNTPrimitiveComponent.java b/src/main/java/elntranslator/ELNTPrimitiveComponent.java
new file mode 100644
index 0000000000000000000000000000000000000000..7c79e07a3c0fa3d0b3ebddc93f01c6c27595211b
--- /dev/null
+++ b/src/main/java/elntranslator/ELNTPrimitiveComponent.java
@@ -0,0 +1,5 @@
+package elntranslator;
+
+public interface ELNTPrimitiveComponent {
+	public ELNTModule getModule();
+}
diff --git a/src/main/java/elntranslator/toELN/ClusterCode.java b/src/main/java/elntranslator/toELN/ClusterCode.java
new file mode 100644
index 0000000000000000000000000000000000000000..6ac4257cdca9f6473ed07ba609a5322352233816
--- /dev/null
+++ b/src/main/java/elntranslator/toELN/ClusterCode.java
@@ -0,0 +1,204 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * Daniela Genius, Lip6, UMR 7606 
+ * 
+ * ludovic.apvrille AT enst.fr
+ * daniela.genius@lip6.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.
+ */
+
+/* this class produces the lines containing essentially the initial #includes; we include all potential components event if they are not used in the deployment diagram*/
+
+/* authors: v1.0 Raja GATGOUT 2014
+            v2.0 Daniela GENIUS, Julien HENON 2015 */
+
+package elntranslator.toELN;
+
+import java.util.LinkedList;
+import elntranslator.*;
+
+/**
+ * Class ClusterCode 
+ * Principal code of a cluster component 
+ * Creation: 31/07/2018
+ * @version 1.0 31/07/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ClusterCode {
+	static private String corpsCluster;
+	private final static String CR = "\n";
+	private final static String CR2 = "\n\n";
+
+	ClusterCode() {
+	}
+
+	public static String getClusterCode(ELNTCluster cluster, LinkedList<ELNTConnector> connectors) {
+		LinkedList<String> ELNnames = new LinkedList<String>();
+
+		if (cluster != null) {
+			LinkedList<ELNTModule> modules = cluster.getModule();
+
+			corpsCluster = "#include <systemc-ams>" + CR;
+
+			for (int i = 0; i < modules.size(); i++) {
+				corpsCluster = corpsCluster + "#include \"" + modules.get(i).getName() + ".h\"" + CR;
+				if (i == modules.size()-1) {
+					corpsCluster = corpsCluster + CR;
+				}
+			}
+			corpsCluster = corpsCluster + "int sc_main(int argc, char *argv[])" + CR + "{" + CR;
+
+			for (int i = 0; i < connectors.size(); i++) {
+				if (connectors.get(i).getName().equals("")) {
+					if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+						corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR;
+						ELNnames.add("n_" + ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterTerminal) {
+						corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterTerminal) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR;
+						ELNnames.add("n_" + ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterTerminal) connectors.get(i).get_p2().getComponent()).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+						corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + ((ELNTClusterTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR;
+						ELNnames.add("n_" + ((ELNTClusterTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortDE && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterPortDE) {
+						corpsCluster = corpsCluster + "\tsc_core::sc_signal<" + ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterPortDE) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR;
+						ELNnames.add("s_" + ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterPortDE) connectors.get(i).get_p2().getComponent()).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterPortDE && connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortDE) {
+						corpsCluster = corpsCluster + "\tsc_core::sc_signal<" + ((ELNTClusterPortDE) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + ((ELNTClusterPortDE) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR;
+						ELNnames.add("s_" + ((ELNTClusterPortDE) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterPortTDF) {
+						corpsCluster = corpsCluster + "\tsca_tdf::sca_signal<" + ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterPortTDF) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR;
+						ELNnames.add("s_" + ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterPortTDF) connectors.get(i).get_p2().getComponent()).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterPortTDF && connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+						corpsCluster = corpsCluster + "\tsca_tdf::sca_signal<" + ((ELNTClusterPortTDF) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + ((ELNTClusterPortTDF) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR;
+						ELNnames.add("s_" + ((ELNTClusterPortTDF) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getName());
+					}
+				} else {
+					if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+						corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + connectors.get(i).getName() + ";" + CR;
+						ELNnames.add("n_" + connectors.get(i).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterTerminal) {
+						corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + connectors.get(i).getName() + ";" + CR;
+						ELNnames.add("n_" + connectors.get(i).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+						corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + connectors.get(i).getName() + ";" + CR;
+						ELNnames.add("n_" + connectors.get(i).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortDE && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterPortDE) {
+						corpsCluster = corpsCluster + "\tsc_core::sc_signal<" + ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + connectors.get(i).getName() + ";" + CR;
+						ELNnames.add("s_" + connectors.get(i).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterPortDE && connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortDE) {
+						corpsCluster = corpsCluster + "\tsc_core::sc_signal<" + ((ELNTClusterPortDE) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + connectors.get(i).getName() + ";" + CR;
+						ELNnames.add("s_" + connectors.get(i).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterPortTDF) {
+						corpsCluster = corpsCluster + "\tsca_tdf::sca_signal<" + ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + connectors.get(i).getName() + ";" + CR;
+						ELNnames.add("s_" + connectors.get(i).getName());
+					} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterPortTDF && connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+						corpsCluster = corpsCluster + "\tsca_tdf::sca_signal<" + ((ELNTClusterPortTDF) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + connectors.get(i).getName() + ";" + CR;
+						ELNnames.add("s_" + connectors.get(i).getName());
+					}
+				}
+				if (i == connectors.size()-1) {
+					corpsCluster = corpsCluster + CR;
+				}
+			}
+
+			for (ELNTModule t : modules) {
+				corpsCluster = corpsCluster + "\t" + t.getName() + " i_" + t.getName() + "(\"i_" + t.getName() + "\");" + CR;
+
+				LinkedList<ELNTModuleTerminal> term = t.getModuleTerminal();
+				LinkedList<ELNTModulePortTDF> portTDF = t.getModulePortTDF();
+				LinkedList<ELNTModulePortDE> portDE = t.getModulePortDE();
+
+				for (ELNTModuleTerminal p : term) {
+					for (int i = 0; i < connectors.size(); i++) {
+						if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+							if (((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName().equals(p.getName()) && ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getModule().getName().equals(t.getName())) {
+								corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR;
+							}
+						}
+						if (connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+							if (((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName().equals(p.getName()) && ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getModule().getName().equals(t.getName())) {
+								corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR;
+							}
+						}
+					}
+				}
+
+				for (ELNTModulePortTDF p : portTDF) {
+					for (int i = 0; i < connectors.size(); i++) {
+						if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+							if (((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getName().equals(p.getName()) && ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getModule().getName().equals(t.getName())) {
+								corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR;
+							}
+						}
+						if (connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+							if (((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getName().equals(p.getName()) && ((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getModule().getName().equals(t.getName())) {
+								corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR;
+							}
+						}
+					}
+				}
+				
+				for (ELNTModulePortDE p : portDE) {
+					for (int i = 0; i < connectors.size(); i++) {
+						if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortDE) {
+							if (((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getName().equals(p.getName()) && ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getModule().getName().equals(t.getName())) {
+								corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR;
+							}
+						}
+						if (connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortDE) {
+							if (((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getName().equals(p.getName()) && ((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getModule().getName().equals(t.getName())) {
+								corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR;
+							}
+						}
+					}
+				}
+				corpsCluster = corpsCluster + CR;
+			}
+
+			corpsCluster = corpsCluster + "\tsca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file(\"" + cluster.getName() + "_tb\");" + CR;
+
+			for (int i = 0; i < connectors.size(); i++) {
+				corpsCluster = corpsCluster + "\tsca_util::sca_trace(tfp, "+ ELNnames.get(i) + ", \"" + ELNnames.get(i) + "\");" + CR;
+			}
+			
+			corpsCluster = corpsCluster + CR + "\tsc_start(100.0, sc_core::SC_MS);" + CR2
+					+ "\tsca_util::sca_close_tabular_trace_file(tfp);" + CR
+					+ "\tsc_core::sc_stop();" + CR + "\treturn 0;" + CR + "}" + CR2;
+		} else {
+			corpsCluster = "";
+		}
+		return corpsCluster;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/toELN/MakefileCode.java b/src/main/java/elntranslator/toELN/MakefileCode.java
new file mode 100644
index 0000000000000000000000000000000000000000..a846679eb7f12895b9386936d585be01cdba3670
--- /dev/null
+++ b/src/main/java/elntranslator/toELN/MakefileCode.java
@@ -0,0 +1,109 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * Daniela Genius, Lip6, UMR 7606 
+ * 
+ * ludovic.apvrille AT enst.fr
+ * daniela.genius@lip6.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.
+ */
+
+/* this class produces the lines containing essentially the initial #includes; we include all potential components event if they are not used in the deployment diagram*/
+
+/* authors: v1.0 Raja GATGOUT 2014
+            v2.0 Daniela GENIUS, Julien HENON 2015 */
+
+package elntranslator.toELN;
+
+import java.util.LinkedList;
+import elntranslator.*;
+
+/**
+ * Class MakefileCode 
+ * Principal code of a makefile 
+ * Creation: 31/07/2018
+ * @version 1.0 31/07/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class MakefileCode {
+	static private String corpsMakefile;
+	private final static String CR = "\n";
+	private final static String CR2 = "\n\n";
+
+	MakefileCode() {
+	}
+
+	public static String getMakefileCode(LinkedList<ELNTCluster> clusters) {
+		if (clusters != null) {
+			corpsMakefile = "# Compiler and linker flags" + CR + "CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS)" + CR
+					+ "LDFLAGS = $(SYSTEMC_LIBRARY_DIRS)" + CR2 + "# List of all ecutables to be compiled" + CR
+					+ "EXECUTABLES = ";
+
+			for (int i = 0; i < clusters.size(); i++) {
+				if (i == 0) {
+					corpsMakefile = corpsMakefile + clusters.get(i).getName() + "_tb";
+				}
+				if (i > 0) {
+					corpsMakefile = corpsMakefile + " " + clusters.get(i).getName() + "_tb";
+				}
+				if (i == clusters.size() - 1) {
+					corpsMakefile = corpsMakefile + CR2;
+				}
+			}
+
+			corpsMakefile = corpsMakefile + "# .PHONY targets don't generate files" + CR + ".PHONY:	all clean" + CR2
+					+ "# Default targets" + CR + "all:	$(EXECUTABLES)" + CR2;
+
+			for (int i = 0; i < clusters.size(); i++) {
+				LinkedList<ELNTModule> modules = clusters.get(i).getModule();
+
+				corpsMakefile = corpsMakefile + clusters.get(i).getName() + "_tb: "
+						+ clusters.get(i).getName() + "_tb.cpp";
+
+				for (ELNTModule t : modules) {
+					corpsMakefile = corpsMakefile + " " + t.getName() + ".h";
+				}
+
+				corpsMakefile = corpsMakefile + CR
+						+ "\t$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt" + CR2;
+			}
+
+			corpsMakefile = corpsMakefile + "# Clean rule to delete temporary and generated files" + CR + "clean:" + CR
+					+ "\trm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES)" + CR;
+		} else {
+			corpsMakefile = "";
+		}
+		return corpsMakefile;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/toELN/ModuleCode.java b/src/main/java/elntranslator/toELN/ModuleCode.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d69feb9f3c0d56b6fa7027b48cd3d0ee1d26c28
--- /dev/null
+++ b/src/main/java/elntranslator/toELN/ModuleCode.java
@@ -0,0 +1,2617 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * Daniela Genius, Lip6, UMR 7606 
+ * 
+ * ludovic.apvrille AT enst.fr
+ * daniela.genius@lip6.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.
+ */
+
+/* this class produces the lines containing essentially the initial #includes; we include all potential components event if they are not used in the deployment diagram*/
+
+/* authors: v1.0 Raja GATGOUT 2014
+            v2.0 Daniela GENIUS, Julien HENON 2015 */
+
+package elntranslator.toELN;
+
+import java.util.*;
+import elntranslator.*;
+
+/**
+ * Class ModuleCode Principal code of a module Creation: 25/07/2018
+ * 
+ * @version 1.0 25/07/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ModuleCode {
+	static private String corpsModule;
+	private final static String CR = "\n";
+	private final static String CR2 = "\n\n";
+
+	ModuleCode() {
+	}
+
+	public static String getModuleCode(ELNTModule module, List<ELNTConnector> connectors) {
+		LinkedList<ELNTConnector> connectorsModule = new LinkedList<ELNTConnector>();
+		
+		for (int i = 0; i < connectors.size(); i++) {
+			if (connectors.get(i).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+				if (((ELNTPrimitiveComponent) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortDE) {
+				if (((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+				if (((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+				if (((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			} else if (connectors.get(i).get_p1().getComponent() instanceof ELNTNodeRef) {
+				if (((ELNTNodeRef) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			} else if (connectors.get(i).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+				if (((ELNTPrimitiveComponent) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			} else if (connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortDE) {
+				if (((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			} else if (connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+				if (((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			} else if (connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+				if (((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			} else if (connectors.get(i).get_p2().getComponent() instanceof ELNTNodeRef) {
+				if (((ELNTNodeRef) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) {
+					connectorsModule.add(connectors.get(i));
+				}
+			}
+		}
+		
+		if (module != null) {
+			corpsModule = "#ifndef " + module.getName().toUpperCase() + "_H" + CR + "#define "
+					+ module.getName().toUpperCase() + "_H" + CR2 + "#include <cmath>" + CR + "#include <iostream>" + CR
+					+ "#include <systemc-ams>" + CR2;
+
+			corpsModule = corpsModule + "SC_MODULE(" + module.getName() + ")" + CR + "{" + CR;
+
+			LinkedList<ELNTModuleTerminal> terms = module.getModuleTerminal();
+			for (int i = 0; i < terms.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_terminal " + terms.get(i).getName() + ";" + CR;
+				if (i == terms.size() - 1) {
+					corpsModule = corpsModule + CR;
+				}
+			}
+
+			LinkedList<ELNTModulePortDE> portsDE = module.getModulePortDE();
+			for (int i = 0; i < portsDE.size(); i++) {
+				corpsModule = corpsModule + "\tsc_core::sc_" + portsDE.get(i).getOrigin() + "<"
+						+ portsDE.get(i).getType() + "> " + portsDE.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTModulePortTDF> portsTDF = module.getModulePortTDF();
+			for (int i = 0; i < portsTDF.size(); i++) {
+				corpsModule = corpsModule + "\tsca_tdf::sca_" + portsTDF.get(i).getOrigin() + "<"
+						+ portsTDF.get(i).getType() + "> " + portsTDF.get(i).getName() + ";" + CR;
+				if (i == portsTDF.size() - 1) {
+					corpsModule = corpsModule + CR;
+				}
+			}
+
+			LinkedList<ELNTComponentCapacitor> capacitors = module.getCapacitor();
+			for (int i = 0; i < capacitors.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_c " + capacitors.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentIdealTransformer> idealTransformers = module.getIdealTransformer();
+			for (int i = 0; i < idealTransformers.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_ideal_transformer " + idealTransformers.get(i).getName()
+						+ ";" + CR;
+			}
+
+			LinkedList<ELNTComponentIndependentCurrentSource> isources = module.getIsource();
+			for (int i = 0; i < isources.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_isource " + isources.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentIndependentVoltageSource> vsources = module.getVsource();
+			for (int i = 0; i < vsources.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_vsource " + vsources.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentInductor> inductors = module.getInductor();
+			for (int i = 0; i < inductors.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_l " + inductors.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentResistor> resistors = module.getResistor();
+			for (int i = 0; i < resistors.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_r " + resistors.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentTransmissionLine> transmissionLines = module.getTransmissionLine();
+			for (int i = 0; i < transmissionLines.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_transmission_line " + transmissionLines.get(i).getName()
+						+ ";" + CR;
+			}
+
+			LinkedList<ELNTComponentVoltageControlledCurrentSource> vccss = module.getVccs();
+			for (int i = 0; i < vccss.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_vccs " + vccss.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentVoltageControlledVoltageSource> vcvss = module.getVcvs();
+			for (int i = 0; i < vcvss.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_vcvs " + vcvss.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentCurrentSinkDE> DE_isinks = module.getDE_isink();
+			for (int i = 0; i < DE_isinks.size(); i++) {
+				// corps = corps + "\tsca_eln::sca_de::sca_isink" + DE_isinks.get(i).getName()
+				// + ";" + CR;
+				corpsModule = corpsModule + "\tsca_eln::sca_de_isink " + DE_isinks.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentCurrentSourceDE> DE_isources = module.getDE_isource();
+			for (int i = 0; i < DE_isources.size(); i++) {
+				// corps = corps + "\tsca_eln::sca_de::sca_isource " +
+				// DE_isources.get(i).getName() + ";" + CR;
+				corpsModule = corpsModule + "\tsca_eln::sca_de_isource " + DE_isources.get(i).getName() + ";" + CR;
+			}
+			
+			LinkedList<ELNTComponentCurrentSinkTDF> TDF_isinks = module.getTDF_isink();
+			for (int i = 0; i < TDF_isinks.size(); i++) {
+				// corps = corps + "\tsca_eln::sca_tdf::sca_isink" + TDF_isinks.get(i).getName()
+				// + ";" + CR;
+				corpsModule = corpsModule + "\tsca_eln::sca_tdf_isink " + TDF_isinks.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentCurrentSourceTDF> TDF_isources = module.getTDF_isource();
+			for (int i = 0; i < TDF_isources.size(); i++) {
+				// corps = corps + "\tsca_eln::sca_tdf::sca_isource " +
+				// TDF_isources.get(i).getName() + ";" + CR;
+				corpsModule = corpsModule + "\tsca_eln::sca_tdf_isource " + TDF_isources.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentVoltageSinkDE> DE_vsinks = module.getDE_vsink();
+			for (int i = 0; i < DE_vsinks.size(); i++) {
+				// corps = corps + "\tsca_eln::sca_de::sca_vsink " +
+				// DE_vsinks.get(i).getName() + ";" + CR;
+				corpsModule = corpsModule + "\tsca_eln::sca_de_vsink " + DE_vsinks.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentVoltageSourceDE> DE_vsources = module.getDE_vsource();
+			for (int i = 0; i < DE_vsources.size(); i++) {
+				// corps = corps + "\tsca_eln::sca_de::sca_vsource " +
+				// DE_vsources.get(i).getName() + ";" + CR;
+				corpsModule = corpsModule + "\tsca_eln::sca_de_vsource " + DE_vsources.get(i).getName() + ";" + CR;
+			}
+			
+			LinkedList<ELNTComponentVoltageSinkTDF> TDF_vsinks = module.getTDF_vsink();
+			for (int i = 0; i < TDF_vsinks.size(); i++) {
+				// corps = corps + "\tsca_eln::sca_tdf::sca_vsink " +
+				// TDF_vsinks.get(i).getName() + ";" + CR;
+				corpsModule = corpsModule + "\tsca_eln::sca_tdf_vsink " + TDF_vsinks.get(i).getName() + ";" + CR;
+			}
+
+			LinkedList<ELNTComponentVoltageSourceTDF> TDF_vsources = module.getTDF_vsource();
+			for (int i = 0; i < TDF_vsources.size(); i++) {
+				// corps = corps + "\tsca_eln::sca_tdf::sca_vsource " +
+				// TDF_vsources.get(i).getName() + ";" + CR;
+				corpsModule = corpsModule + "\tsca_eln::sca_tdf_vsource " + TDF_vsources.get(i).getName() + ";" + CR;
+			}
+
+			corpsModule = corpsModule + CR + "\tSC_CTOR(" + module.getName() + ")" + CR;
+
+			int cpt = 0;
+			for (int i = 0; i < terms.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + terms.get(i).getName() + "(\"" + terms.get(i).getName() + "\")"
+							+ CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + terms.get(i).getName() + "(\"" + terms.get(i).getName() + "\")"
+							+ CR;
+				}
+			}
+			for (int i = 0; i < portsDE.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + portsDE.get(i).getName() + "(\"" + portsDE.get(i).getName() + "\")"
+							+ CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + portsDE.get(i).getName() + "(\"" + portsDE.get(i).getName() + "\")"
+							+ CR;
+				}
+			}
+			for (int i = 0; i < portsTDF.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + portsTDF.get(i).getName() + "(\"" + portsTDF.get(i).getName() + "\")"
+							+ CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + portsTDF.get(i).getName() + "(\"" + portsTDF.get(i).getName() + "\")"
+							+ CR;
+				}
+			}
+			for (int i = 0; i < capacitors.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + capacitors.get(i).getName() + "(\""
+							+ capacitors.get(i).getName() + "\", "
+							+ encode(capacitors.get(i).getVal(), capacitors.get(i).getUnit0()) + ", "
+							+ encode(capacitors.get(i).getQ0(), capacitors.get(i).getUnit1()) + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + capacitors.get(i).getName() + "(\""
+							+ capacitors.get(i).getName() + "\", "
+							+ encode(capacitors.get(i).getVal(), capacitors.get(i).getUnit0()) + ", "
+							+ encode(capacitors.get(i).getQ0(), capacitors.get(i).getUnit1()) + ")" + CR;
+				}
+			}
+			for (int i = 0; i < idealTransformers.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + idealTransformers.get(i).getName() + "(\""
+							+ idealTransformers.get(i).getName() + "\", " + idealTransformers.get(i).getRatio() + ")"
+							+ CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + idealTransformers.get(i).getName() + "(\""
+							+ idealTransformers.get(i).getName() + "\", " + idealTransformers.get(i).getRatio() + ")"
+							+ CR;
+				}
+			}
+			for (int i = 0; i < isources.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + isources.get(i).getName() + "(\"" + isources.get(i).getName()
+							+ "\", " + isources.get(i).getInitValue() + ", " + isources.get(i).getOffset() + ", "
+							+ isources.get(i).getAmplitude() + ", "
+							+ encode(isources.get(i).getFrequency(), isources.get(i).getUnit0()) + ", "
+							+ isources.get(i).getPhase() + ", " + isources.get(i).getDelay() + ", "
+							+ isources.get(i).getAcAmplitude() + ", " + isources.get(i).getAcPhase() + ", "
+							+ isources.get(i).getAcNoiseAmplitude() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + isources.get(i).getName() + "(\"" + isources.get(i).getName()
+							+ "\", " + isources.get(i).getInitValue() + ", " + isources.get(i).getOffset() + ", "
+							+ isources.get(i).getAmplitude() + ", "
+							+ encode(isources.get(i).getFrequency(), isources.get(i).getUnit0()) + ", "
+							+ isources.get(i).getPhase() + ", " + isources.get(i).getDelay() + ", "
+							+ isources.get(i).getAcAmplitude() + ", " + isources.get(i).getAcPhase() + ", "
+							+ isources.get(i).getAcNoiseAmplitude() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < vsources.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + vsources.get(i).getName() + "(\"" + vsources.get(i).getName()
+							+ "\", " + vsources.get(i).getInitValue() + ", " + vsources.get(i).getOffset() + ", "
+							+ vsources.get(i).getAmplitude() + ", "
+							+ encode(vsources.get(i).getFrequency(), vsources.get(i).getUnit0()) + ", "
+							+ vsources.get(i).getPhase() + ", " + vsources.get(i).getDelay() + ", "
+							+ vsources.get(i).getAcAmplitude() + ", " + vsources.get(i).getAcPhase() + ", "
+							+ vsources.get(i).getAcNoiseAmplitude() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + vsources.get(i).getName() + "(\"" + vsources.get(i).getName()
+							+ "\", " + vsources.get(i).getInitValue() + ", " + vsources.get(i).getOffset() + ", "
+							+ vsources.get(i).getAmplitude() + ", "
+							+ encode(vsources.get(i).getFrequency(), vsources.get(i).getUnit0()) + ", "
+							+ vsources.get(i).getPhase() + ", " + vsources.get(i).getDelay() + ", "
+							+ vsources.get(i).getAcAmplitude() + ", " + vsources.get(i).getAcPhase() + ", "
+							+ vsources.get(i).getAcNoiseAmplitude() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < inductors.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + inductors.get(i).getName() + "(\"" + inductors.get(i).getName()
+							+ "\", " + encode(inductors.get(i).getVal(), inductors.get(i).getUnit0()) + ", "
+							+ encode(inductors.get(i).getPhi0(), inductors.get(i).getUnit1()) + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + inductors.get(i).getName() + "(\"" + inductors.get(i).getName()
+							+ "\", " + encode(inductors.get(i).getVal(), inductors.get(i).getUnit0()) + ", "
+							+ encode(inductors.get(i).getPhi0(), inductors.get(i).getUnit1()) + ")" + CR;
+				}
+			}
+			for (int i = 0; i < resistors.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + resistors.get(i).getName() + "(\"" + resistors.get(i).getName()
+							+ "\", " + encode(resistors.get(i).getVal(), resistors.get(i).getUnit()) + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + resistors.get(i).getName() + "(\"" + resistors.get(i).getName()
+							+ "\", " + encode(resistors.get(i).getVal(), resistors.get(i).getUnit()) + ")" + CR;
+				}
+			}
+			for (int i = 0; i < transmissionLines.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + transmissionLines.get(i).getName() + "(\""
+							+ transmissionLines.get(i).getName() + "\", "
+							+ encode(transmissionLines.get(i).getZ0(), transmissionLines.get(i).getUnit0()) + ", "
+							+ transmissionLines.get(i).getDelay() + ", "
+							+ encode(transmissionLines.get(i).getDelta0(), transmissionLines.get(i).getUnit2()) + ")"
+							+ CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + transmissionLines.get(i).getName() + "(\""
+							+ transmissionLines.get(i).getName() + "\", "
+							+ encode(transmissionLines.get(i).getZ0(), transmissionLines.get(i).getUnit0()) + ", "
+							+ transmissionLines.get(i).getDelay() + ", "
+							+ encode(transmissionLines.get(i).getDelta0(), transmissionLines.get(i).getUnit2()) + ")"
+							+ CR;
+				}
+			}
+			for (int i = 0; i < vccss.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + vccss.get(i).getName() + "(\"" + vccss.get(i).getName()
+							+ "\", " + encode(vccss.get(i).getVal(), vccss.get(i).getUnit()) + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + vccss.get(i).getName() + "(\"" + vccss.get(i).getName()
+							+ "\", " + encode(vccss.get(i).getVal(), vccss.get(i).getUnit()) + ")" + CR;
+				}
+			}
+			for (int i = 0; i < vcvss.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + vcvss.get(i).getName() + "(\"" + vcvss.get(i).getName()
+							+ "\", " + vcvss.get(i).getVal() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + vcvss.get(i).getName() + "(\"" + vcvss.get(i).getName()
+							+ "\", " + vcvss.get(i).getVal() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < DE_isinks.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + DE_isinks.get(i).getName() + "(\""
+							+ DE_isinks.get(i).getName() + "\", " + DE_isinks.get(i).getScale() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + DE_isinks.get(i).getName() + "(\""
+							+ DE_isinks.get(i).getName() + "\", " + DE_isinks.get(i).getScale() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < DE_isources.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + DE_isources.get(i).getName() + "(\""
+							+ DE_isources.get(i).getName() + "\", " + DE_isources.get(i).getScale() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + DE_isources.get(i).getName() + "(\""
+							+ DE_isources.get(i).getName() + "\", " + DE_isources.get(i).getScale() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < TDF_isinks.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + TDF_isinks.get(i).getName() + "(\""
+							+ TDF_isinks.get(i).getName() + "\", " + TDF_isinks.get(i).getScale() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + TDF_isinks.get(i).getName() + "(\""
+							+ TDF_isinks.get(i).getName() + "\", " + TDF_isinks.get(i).getScale() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < TDF_isources.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + TDF_isources.get(i).getName() + "(\""
+							+ TDF_isources.get(i).getName() + "\", " + TDF_isources.get(i).getScale() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + TDF_isources.get(i).getName() + "(\""
+							+ TDF_isources.get(i).getName() + "\", " + TDF_isources.get(i).getScale() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < DE_vsinks.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + DE_vsinks.get(i).getName() + "(\""
+							+ DE_vsinks.get(i).getName() + "\", " + DE_vsinks.get(i).getScale() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + DE_vsinks.get(i).getName() + "(\""
+							+ DE_vsinks.get(i).getName() + "\", " + DE_vsinks.get(i).getScale() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < DE_vsources.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + DE_vsources.get(i).getName() + "(\""
+							+ DE_vsources.get(i).getName() + "\", " + DE_vsources.get(i).getScale() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + DE_vsources.get(i).getName() + "(\""
+							+ DE_vsources.get(i).getName() + "\", " + DE_vsources.get(i).getScale() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < TDF_vsinks.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + TDF_vsinks.get(i).getName() + "(\""
+							+ TDF_vsinks.get(i).getName() + "\", " + TDF_vsinks.get(i).getScale() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + TDF_vsinks.get(i).getName() + "(\""
+							+ TDF_vsinks.get(i).getName() + "\", " + TDF_vsinks.get(i).getScale() + ")" + CR;
+				}
+			}
+			for (int i = 0; i < TDF_vsources.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + TDF_vsources.get(i).getName() + "(\""
+							+ TDF_vsources.get(i).getName() + "\", " + TDF_vsources.get(i).getScale() + ")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + TDF_vsources.get(i).getName() + "(\""
+							+ TDF_vsources.get(i).getName() + "\", " + TDF_vsources.get(i).getScale() + ")" + CR;
+				}
+			}
+
+			// List of nodes
+			LinkedList<ELNTConnector> nodes = new LinkedList<ELNTConnector>();
+			for (int i = 0; i < connectorsModule.size(); i++) {
+				if (!connectorsModule.get(i).getName().equals("")) {
+					if (!((connectorsModule.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF 
+							&& (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSourceTDF
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSinkTDF
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSourceTDF
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSinkTDF))
+							|| (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF 
+							&& (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSourceTDF
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSinkTDF
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSourceTDF
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSinkTDF))
+							|| (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF 
+							&& (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSourceTDF
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSinkTDF
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSourceTDF
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSinkTDF))
+							|| (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF 
+							&& (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSourceTDF
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSinkTDF
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSourceTDF
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSinkTDF))
+							|| (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTModulePortDE
+							&& (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSourceDE
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSinkDE
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSourceDE
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSinkDE))
+							|| (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTModulePortDE
+							&& (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSourceDE
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSinkDE
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSourceDE
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSinkDE))
+							|| (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTModulePortDE 
+							&& (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSourceDE
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSinkDE
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSourceDE
+							|| connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSinkDE))
+							|| (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTModulePortDE 
+							&& (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSourceDE
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSinkDE
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSourceDE
+							|| connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSinkDE))
+							|| (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTMidPortTerminal
+							&& connectorsModule.get(i).get_p2().getComponent() instanceof ELNTPrimitiveComponent)
+							|| (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTMidPortTerminal
+							&& connectorsModule.get(i).get_p1().getComponent() instanceof ELNTPrimitiveComponent))) {
+						nodes.add(connectorsModule.get(i));
+					}
+				}
+			}
+
+			for (int i = 0; i < nodes.size(); i++) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + nodes.get(i).getName() + "(\"" + nodes.get(i).getName() + "\")"
+							+ CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + nodes.get(i).getName() + "(\"" + nodes.get(i).getName() + "\")"
+							+ CR;
+				}
+			}
+
+			LinkedList<ELNTNodeRef> nodeRefs = module.getNodeRef();
+			if (nodeRefs.size() >= 1) {
+				if (cpt == 0) {
+					corpsModule = corpsModule + "\t: " + nodeRefs.get(0).getName() + "(\"" + nodeRefs.get(0).getName()
+							+ "\")" + CR;
+					cpt++;
+				} else {
+					corpsModule = corpsModule + "\t, " + nodeRefs.get(0).getName() + "(\"" + nodeRefs.get(0).getName()
+							+ "\")" + CR;
+				}
+			}
+
+			corpsModule = corpsModule + "\t{" + CR;
+
+			for (int i = 0; i < capacitors.size(); i++) {
+				for (int j = 0; j < capacitors.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + capacitors.get(i).getName() + "."
+							+ capacitors.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(capacitors.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(capacitors.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}	
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(capacitors.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(capacitors.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < idealTransformers.size(); i++) {
+				for (int j = 0; j < idealTransformers.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + idealTransformers.get(i).getName() + "."
+							+ idealTransformers.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(idealTransformers.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(idealTransformers.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(idealTransformers.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(idealTransformers.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < isources.size(); i++) {
+				for (int j = 0; j < isources.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + isources.get(i).getName() + "."
+							+ isources.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(isources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(isources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(isources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(isources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < vsources.size(); i++) {
+				for (int j = 0; j < vsources.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + vsources.get(i).getName() + "."
+							+ vsources.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(vsources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(vsources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(vsources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(vsources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < inductors.size(); i++) {
+				for (int j = 0; j < inductors.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + inductors.get(i).getName() + "."
+							+ inductors.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(inductors.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(inductors.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(inductors.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(inductors.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < resistors.size(); i++) {
+				for (int j = 0; j < resistors.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + resistors.get(i).getName() + "."
+							+ resistors.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(resistors.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(resistors.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(resistors.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(resistors.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < transmissionLines.size(); i++) {
+				for (int j = 0; j < transmissionLines.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + transmissionLines.get(i).getName() + "."
+							+ transmissionLines.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(transmissionLines.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(transmissionLines.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(transmissionLines.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(transmissionLines.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < vccss.size(); i++) {
+				for (int j = 0; j < vccss.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + vccss.get(i).getName() + "."
+							+ vccss.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(vccss.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(vccss.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(vccss.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(vccss.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < vcvss.size(); i++) {
+				for (int j = 0; j < vcvss.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + vcvss.get(i).getName() + "."
+							+ vcvss.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(vcvss.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(vcvss.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(vcvss.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(vcvss.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < DE_isinks.size(); i++) {
+				for (int j = 0; j < DE_isinks.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + DE_isinks.get(i).getName() + "."
+							+ DE_isinks.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(DE_isinks.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(DE_isinks.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(DE_isinks.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(DE_isinks.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < DE_isources.size(); i++) {
+				for (int j = 0; j < DE_isources.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + DE_isources.get(i).getName() + "."
+							+ DE_isources.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(DE_isources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(DE_isources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(DE_isources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(DE_isources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+			
+			for (int i = 0; i < TDF_isinks.size(); i++) {
+				for (int j = 0; j < TDF_isinks.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + TDF_isinks.get(i).getName() + "."
+							+ TDF_isinks.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(TDF_isinks.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(TDF_isinks.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(TDF_isinks.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(TDF_isinks.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < TDF_isources.size(); i++) {
+				for (int j = 0; j < TDF_isources.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + TDF_isources.get(i).getName() + "."
+							+ TDF_isources.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(TDF_isources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(TDF_isources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(TDF_isources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(TDF_isources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+			
+			for (int i = 0; i < DE_vsinks.size(); i++) {
+				for (int j = 0; j < DE_vsinks.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + DE_vsinks.get(i).getName() + "."
+							+ DE_vsinks.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(DE_vsinks.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(DE_vsinks.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(DE_vsinks.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(DE_vsinks.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < DE_vsources.size(); i++) {
+				for (int j = 0; j < DE_vsources.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + DE_vsources.get(i).getName() + "."
+							+ DE_vsources.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(DE_vsources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(DE_vsources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(DE_vsources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(DE_vsources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < TDF_vsinks.size(); i++) {
+				for (int j = 0; j < TDF_vsinks.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + TDF_vsinks.get(i).getName() + "."
+							+ TDF_vsinks.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(TDF_vsinks.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(TDF_vsinks.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(TDF_vsinks.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(TDF_vsinks.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			for (int i = 0; i < TDF_vsources.size(); i++) {
+				for (int j = 0; j < TDF_vsources.get(i).getConnectingPoint().size(); j++) {
+					corpsModule = corpsModule + "\t\t" + TDF_vsources.get(i).getName() + "."
+							+ TDF_vsources.get(i).getConnectingPoint().get(j).getName() + "(";
+					for (int k = 0; k < connectorsModule.size(); k++) {
+						if (connectorsModule.get(k).get_p1().getName()
+								.equals(TDF_vsources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p1().getComponent().equals(TDF_vsources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+						if (connectorsModule.get(k).get_p2().getName()
+								.equals(TDF_vsources.get(i).getConnectingPoint().get(j).getName())
+								&& connectorsModule.get(k).get_p2().getComponent().equals(TDF_vsources.get(i))) {
+							if (!connectorsModule.get(k).getName().equals("")) {
+								corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR;
+							} else {
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+									LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal();
+									boolean stop = false;
+									for (ELNTMidPortTerminal mid : mids) {
+										for (int l = 0; l < connectorsModule.size(); l++) {
+											if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											} else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) {
+												if (!searchName(connectorsModule.get(l)).equals("")) {
+													corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR;
+													stop = true;
+													break;
+												}
+											}
+										}
+										if (stop == true) {
+											break;
+										}
+									}
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) {
+									corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName()
+											+ ");" + CR;
+								}
+								if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+									ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2()
+											.getComponent()).getConnector();
+									corpsModule = corpsModule + searchName(connector) + ");" + CR;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			corpsModule = corpsModule + "\t}" + CR2 + "private:" + CR;
+
+			for (int i = 0; i < nodes.size(); i++) {
+				corpsModule = corpsModule + "\tsca_eln::sca_node " + nodes.get(i).getName() + ";" + CR;
+			}
+
+			if (nodeRefs.size() >= 1) {
+				corpsModule = corpsModule + "\tsca_eln::sca_node_ref " + nodeRefs.get(0).getName() + ";" + CR;
+			}
+
+			corpsModule = corpsModule + "};" + CR2 + "#endif" + " // " + module.getName().toUpperCase() + "_H";
+		} else {
+			corpsModule = "";
+		}
+		return corpsModule;
+	}
+
+	private static String encode(double value, String unit) {
+		StringBuffer unit_buf = new StringBuffer(unit);
+		if (unit_buf.length() == 1) {
+			return "" + value;
+		} else if (unit_buf.length() == 2) {
+			char c = unit_buf.charAt(0);
+			switch (c) {
+			case 'G':
+				return value + "e9";
+			case 'M':
+				return value + "e6";
+			case 'k':
+				return value + "e3";
+			case 'm':
+				return value + "e-3";
+			case '\u03BC':
+				return value + "e-6";
+			case 'n':
+				return value + "e-9";
+			case 'p':
+				return value + "e-12";
+			case 'f':
+				return value + "e-15";
+			default:
+				return "" + value;
+			}
+		}
+		return "";
+	}
+
+	private static String searchName(ELNTConnector connector) {
+		if (connector.get_p1().getComponent() instanceof ELNTPrimitiveComponent) {
+			if (connector.get_p2().getComponent() instanceof ELNTModulePortTDF) {
+				return connector.get_p2().getComponent().getName();
+			}
+			if (connector.get_p2().getComponent() instanceof ELNTModulePortDE) {
+				return connector.get_p2().getComponent().getName();
+			}
+			if (connector.get_p2().getComponent() instanceof ELNTModuleTerminal) {
+				return connector.get_p2().getComponent().getName();
+			}
+			if (connector.get_p2().getComponent() instanceof ELNTNodeRef) {
+				return connector.get_p2().getComponent().getName();
+			}
+			if (connector.get_p2().getComponent() instanceof ELNTMidPortTerminal) {
+				ELNTConnector c = ((ELNTMidPortTerminal) connector.get_p2().getComponent()).getConnector();
+				return searchName(c);
+			}
+		}
+		if (connector.get_p1().getComponent() instanceof ELNTModulePortTDF) {
+			return connector.get_p1().getComponent().getName();
+		}
+		if (connector.get_p1().getComponent() instanceof ELNTModulePortDE) {
+			return connector.get_p1().getComponent().getName();
+		}
+		if (connector.get_p1().getComponent() instanceof ELNTModuleTerminal) {
+			return connector.get_p1().getComponent().getName();
+		}
+		if (connector.get_p1().getComponent() instanceof ELNTNodeRef) {
+			return connector.get_p1().getComponent().getName();
+		}
+		if (connector.get_p1().getComponent() instanceof ELNTMidPortTerminal) {
+			if (connector.get_p2().getComponent() instanceof ELNTModulePortTDF) {
+				return connector.get_p2().getComponent().getName();
+			}
+			if (connector.get_p2().getComponent() instanceof ELNTModulePortDE) {
+				return connector.get_p2().getComponent().getName();
+			}
+			if (connector.get_p2().getComponent() instanceof ELNTModuleTerminal) {
+				return connector.get_p2().getComponent().getName();
+			}
+			if (connector.get_p2().getComponent() instanceof ELNTNodeRef) {
+				return connector.get_p2().getComponent().getName();
+			}
+			if (connector.get_p2().getComponent() instanceof ELNTPrimitiveComponent) {
+				ELNTConnector c = ((ELNTMidPortTerminal) connector.get_p1().getComponent()).getConnector();
+				return searchName(c);
+			}
+		}
+		return "";
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/elntranslator/toELN/TopCellGenerator.java b/src/main/java/elntranslator/toELN/TopCellGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..44ccd478c42081d9f2a7725ced74b55d9f67a3d7
--- /dev/null
+++ b/src/main/java/elntranslator/toELN/TopCellGenerator.java
@@ -0,0 +1,134 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+  Daniela Genius, Lip6, UMR 7606 
+
+  ludovic.apvrille AT enst.fr
+  daniela.genius@lip6.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.
+*/
+
+/* Generator of the top cell for simulation with SoCLib virtual component 
+   library */
+
+/* authors: v1.0 Raja GATGOUT 2014
+            v2.0 Daniela GENIUS, Julien HENON 2015 */
+
+package elntranslator.toELN;
+
+import java.io.*;
+import java.util.LinkedList;
+import java.util.List;
+import elntranslator.*;
+
+/**
+ * Class TopCellGenerator
+ * Save the components and connectors in files
+ * Creation: 27/07/2018
+ * @version 1.0 27/07/2018
+ * @author Irina Kit Yan LEE
+*/
+
+public class TopCellGenerator {
+	public static ELNSpecification eln;
+
+	private final static String GENERATED_PATH1 = "generated_CPP" + File.separator;
+	private final static String GENERATED_PATH2 = "generated_H" + File.separator;
+
+	public TopCellGenerator(ELNSpecification _eln) {
+		eln = _eln;
+	}
+
+	public String generateTopCell(ELNTCluster cluster, LinkedList<ELNTConnector> connectors) {
+		if (TopCellGenerator.eln.getCluster() == null) {
+			System.out.println("***Warning: require at least one cluster***");
+		}
+		if (TopCellGenerator.eln.getNbModule() == 0) {
+			System.out.println("***Warning: require at least one module***");
+		}
+		if (TopCellGenerator.eln.getNbComponentCapacitor() + TopCellGenerator.eln.getNbComponentCurrentSinkTDF() + 
+				TopCellGenerator.eln.getNbComponentCurrentSourceTDF() + TopCellGenerator.eln.getNbComponentIdealTransformer() + 
+				TopCellGenerator.eln.getNbComponentIndependentCurrentSource() + TopCellGenerator.eln.getNbComponentIndependentVoltageSource() +
+				TopCellGenerator.eln.getNbComponentInductor() + TopCellGenerator.eln.getNbComponentResistor() + TopCellGenerator.eln.getNbComponentTransmissionLine() +
+				TopCellGenerator.eln.getNbComponentVoltageControlledCurrentSource() + TopCellGenerator.eln.getNbComponentVoltageControlledVoltageSource() + 
+				TopCellGenerator.eln.getNbComponentVoltageSinkTDF() + TopCellGenerator.eln.getNbComponentVoltageSourceTDF() + 
+				TopCellGenerator.eln.getNbComponentVoltageSinkDE() + TopCellGenerator.eln.getNbComponentVoltageSourceDE() + 
+				TopCellGenerator.eln.getNbComponentCurrentSinkDE() + TopCellGenerator.eln.getNbComponentCurrentSourceDE()== 0) {
+			System.out.println("***Warning: require at least one primitive component***");
+		}
+		if (TopCellGenerator.eln.getNbComponentNodeRef() == 0) {
+			System.out.println("***Warning: require at least one node ref***");
+		}
+		String top = ClusterCode.getClusterCode(cluster, connectors);
+		return (top);
+	}
+
+	public void saveFile(String path) {
+		ELNTCluster cluster = TopCellGenerator.eln.getCluster();
+		LinkedList<ELNTConnector> connectorsModule = TopCellGenerator.eln.getAllConnectorsInModule();
+		LinkedList<ELNTConnector> connectorsCluster = TopCellGenerator.eln.getAllConnectorsInCluster();
+
+		String top;
+
+		try {
+			// Save file .cpp
+			System.err.println(path + GENERATED_PATH1 + cluster.getName() + ".cpp");
+			FileWriter fw = new FileWriter(path + GENERATED_PATH1 + "/" + cluster.getName() + "_tb.cpp");
+			top = generateTopCell(cluster, connectorsCluster);
+			fw.write(top);
+			fw.close();
+		} catch (Exception ex) {
+			ex.printStackTrace();
+		}
+		// Save files .h
+		saveFileModule(path, cluster, connectorsModule);
+	}
+
+	public void saveFileModule(String path, ELNTCluster cluster, List<ELNTConnector> connectors) {
+		LinkedList<ELNTModule> modules = cluster.getModule();
+		
+		String code;
+		
+		for (ELNTModule module : modules) {
+			try {
+				System.err.println(path + GENERATED_PATH2 + module.getName() + ".h");
+				FileWriter fw = new FileWriter(path + GENERATED_PATH2 + "/" + module.getName() + ".h");
+				code = ModuleCode.getModuleCode(module, connectors);
+				fw.write(code);
+				fw.close();
+			} catch (Exception ex) {
+				ex.printStackTrace();
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/proverifspec/ProVerifResultTrace.java b/src/main/java/proverifspec/ProVerifResultTrace.java
index 65d43fcb0fa9480003e7963b9ba60be696bdda0e..80cc8c1284f605d2463bd2f0192d0c275ba21910 100644
--- a/src/main/java/proverifspec/ProVerifResultTrace.java
+++ b/src/main/java/proverifspec/ProVerifResultTrace.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package proverifspec;
 
 import avatartranslator.toproverif.AVATAR2ProVerif;
@@ -51,6 +48,8 @@ import java.io.BufferedWriter;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 import java.util.Stack;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -66,10 +65,10 @@ public class ProVerifResultTrace {
     private static Pattern blockNamePattern;
     private static Pattern attrPattern;
 
-    private LinkedList<ProVerifResultTraceStep> trace;
+    private List<ProVerifResultTraceStep> trace;
     private StringBuilder buffer;
-    private LinkedList<String> proverifProcess;
-    private HashMap<String, Integer> attackerNamesMap;
+    private List<String> proverifProcess;
+    private Map<String, Integer> attackerNamesMap;
 
 
     static
@@ -192,7 +191,7 @@ public class ProVerifResultTrace {
         }
     }
 
-    public ProVerifResultTrace(LinkedList<String> proverifProcess)
+    public ProVerifResultTrace(List<String> proverifProcess)
     {
         this.proverifProcess = proverifProcess;
         this.trace = new LinkedList<ProVerifResultTraceStep> ();
@@ -200,7 +199,7 @@ public class ProVerifResultTrace {
         this.buffer = null;
     }
 
-    public LinkedList<ProVerifResultTraceStep> getTrace()
+    public List<ProVerifResultTraceStep> getTrace()
     {
         return this.trace;
     }
@@ -272,7 +271,7 @@ public class ProVerifResultTrace {
                     else
                     {
                         // TODO: is it possible that subtype is itself composed ?
-                        LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(attr.getTypeOther());
+                        List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(attr.getTypeOther());
                         if (types.size() > 1)
                             attrPart = attrName[0] + "." + attrName[1];
                         else
diff --git a/src/main/java/syscamstranslator/SysCAMSTPortDE.java b/src/main/java/syscamstranslator/SysCAMSTPortDE.java
index 3ef0d4c8adc383253d7dc3168419cd8aa2055f9e..961db9e4e08a851feb59bb8e1ac5cc10ec3eba2e 100644
--- a/src/main/java/syscamstranslator/SysCAMSTPortDE.java
+++ b/src/main/java/syscamstranslator/SysCAMSTPortDE.java
@@ -38,6 +38,8 @@
 
 package syscamstranslator;
 
+import elntranslator.*;
+
 /**
  * Class SysCAMSTPortDE
  * Parameters of a SystemC-AMS port DE
@@ -60,6 +62,8 @@ public class SysCAMSTPortDE extends SysCAMSTComponent {
 	
 	private SysCAMSTBlockDE blockDE;
 	private SysCAMSTBlockGPIO2VCI blockGPIO2VCI;
+	private ELNTCluster cluster;
+	private ELNTModule module;
 	
 	public SysCAMSTPortDE(String _name, int _origin, String _DEType, boolean _sensitive, String _sensitiveMethod, SysCAMSTBlockDE _blockDE) {
 		name = _name;
@@ -86,7 +90,33 @@ public class SysCAMSTPortDE extends SysCAMSTComponent {
 		sensitiveMethod = _sensitiveMethod;
 		blockGPIO2VCI = _blockGPIO2VCI;
 	}
+	
+	public SysCAMSTPortDE(String _name, int _origin, String _DEType, boolean _sensitive, String _sensitiveMethod, ELNTCluster _cluster) {
+		name = _name;
+//		period = _period;
+//		time = _time;
+//		rate = _rate;
+//		delay = _delay;ELNTCluster
+		origin = _origin;
+		DEType = _DEType;
+		sensitive = _sensitive;
+		sensitiveMethod = _sensitiveMethod;
+		cluster = _cluster;
+	}
 
+	public SysCAMSTPortDE(String _name, int _origin, String _DEType, boolean _sensitive, String _sensitiveMethod, ELNTModule _module) {
+		name = _name;
+//		period = _period;
+//		time = _time;
+//		rate = _rate;
+//		delay = _delay;ELNTCluster
+		origin = _origin;
+		DEType = _DEType;
+		sensitive = _sensitive;
+		sensitiveMethod = _sensitiveMethod;
+		module = _module;
+	}
+	
 	public String getName() {
 		return name;
 	}
@@ -130,4 +160,12 @@ public class SysCAMSTPortDE extends SysCAMSTComponent {
 	public SysCAMSTBlockGPIO2VCI getBlockGPIO2VCI() {
 		return blockGPIO2VCI;
 	}
+
+	public ELNTCluster getCluster() {
+		return cluster;
+	}
+
+	public ELNTModule getModule() {
+		return module;
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/syscamstranslator/SysCAMSTPortTDF.java b/src/main/java/syscamstranslator/SysCAMSTPortTDF.java
index 0871fd1fd80ac378ff25d81eb0dee7847464edc3..ef12060e8313aa8acdb27fda1f9e783d4bb10a37 100644
--- a/src/main/java/syscamstranslator/SysCAMSTPortTDF.java
+++ b/src/main/java/syscamstranslator/SysCAMSTPortTDF.java
@@ -38,6 +38,9 @@
 
 package syscamstranslator;
 
+import elntranslator.ELNTCluster;
+import elntranslator.ELNTModule;
+
 /**
  * Class SysCAMSTPortTDF
  * Parameters of a SystemC-AMS port TDF
@@ -57,6 +60,8 @@ public class SysCAMSTPortTDF extends SysCAMSTComponent {
 	private String TDFType;
 	
 	private SysCAMSTBlockTDF blockTDF;
+	private ELNTCluster cluster;
+	private ELNTModule module;
 	
 	public SysCAMSTPortTDF(String _name, double _period, String _time, int _rate, int _delay, int _origin, String _TDFType, SysCAMSTBlockTDF _blockTDF) {
 		name = _name;
@@ -68,6 +73,28 @@ public class SysCAMSTPortTDF extends SysCAMSTComponent {
 		TDFType = _TDFType;
 		blockTDF = _blockTDF;
 	}
+	
+	public SysCAMSTPortTDF(String _name, int _period, String _time, int _rate, int _delay, int _origin, String _TDFType, ELNTCluster _cluster) {
+		name = _name;
+		period = _period;
+		time = _time;
+		rate = _rate;
+		delay = _delay;
+		origin = _origin;
+		TDFType = _TDFType;
+		cluster = _cluster;
+	}
+	
+	public SysCAMSTPortTDF(String _name, int _period, String _time, int _rate, int _delay, int _origin, String _TDFType, ELNTModule _module) {
+		name = _name;
+		period = _period;
+		time = _time;
+		rate = _rate;
+		delay = _delay;
+		origin = _origin;
+		TDFType = _TDFType;
+		module = _module;
+	}
 
 	public String getName() {
 		return name;
@@ -112,4 +139,12 @@ public class SysCAMSTPortTDF extends SysCAMSTComponent {
 	public SysCAMSTBlockTDF getBlockTDF() {
 		return blockTDF;
 	}
-}
+
+	public ELNTCluster getCluster() {
+		return cluster;
+	}
+
+	public ELNTModule getModule() {
+		return module;
+	}
+}
diff --git a/src/main/java/tmltranslator/TMLActivity.java b/src/main/java/tmltranslator/TMLActivity.java
index e1fa1378e72668a0417a43339089d70b198d473d..f131566e7ef1c6b2867dec730eb5097fa2c07558 100755
--- a/src/main/java/tmltranslator/TMLActivity.java
+++ b/src/main/java/tmltranslator/TMLActivity.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package tmltranslator;
 
 import myutil.Conversion;
@@ -46,7 +43,6 @@ import myutil.TraceManager;
 
 import java.util.Vector;
 
-
 /**
    * Class TMLActivity
    * Creation: 23/11/2005
@@ -571,13 +567,13 @@ public class TMLActivity extends TMLElement {
     }
 
     public String toXML() {
-	String s = new String("<ACTIVITY first=\"" + elements.indexOf(first) + "\">\n");
-	for(TMLActivityElement elt: elements) {
-	    s += elt.toXML(elements);
-	}
-	s += "</ACTIVITY>\n";
-	return s;
+    	String s = new String("<ACTIVITY first=\"" + elements.indexOf(first) + "\">\n");
+    	
+    	for(TMLActivityElement elt: elements) {
+    		s += elt.toXML(elements);
+    	}
+    	s += "</ACTIVITY>\n";
+    	
+    	return s;
     }
-
-    
 }
diff --git a/src/main/java/tmltranslator/TMLCP.java b/src/main/java/tmltranslator/TMLCP.java
index fc2f87bd8749668a79411490550f44d7d00de29b..f4510692a2f40d1a3cbcbbdbaf10ac3300e8a0d7 100755
--- a/src/main/java/tmltranslator/TMLCP.java
+++ b/src/main/java/tmltranslator/TMLCP.java
@@ -37,7 +37,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package tmltranslator;
 
 import myutil.TraceManager;
@@ -329,15 +328,16 @@ public class TMLCP extends TMLElement {
         }
     }
 
-    public void splitADs() {
-
-        ArrayList<TMLCPActivityDiagram> all = new ArrayList<TMLCPActivityDiagram>();
-        all.addAll(mainCP.splitADs());
-        for (TMLCPActivityDiagram diag : otherCPs) {
-            all.addAll(diag.splitADs());
-        }
-        otherCPs.addAll(all);
-    }
+    // Issue #69; Unused TMLCPJunction
+//    public void splitADs() {
+//
+//        List<TMLCPActivityDiagram> all = new ArrayList<TMLCPActivityDiagram>();
+//        all.addAll(mainCP.splitADs());
+//        for (TMLCPActivityDiagram diag : otherCPs) {
+//            all.addAll(diag.splitADs());
+//        }
+//        otherCPs.addAll(all);
+//    }
 
     public TMLCPElement getNonConnectedElement() {
         TMLCPElement elt;
@@ -378,10 +378,10 @@ public class TMLCP extends TMLElement {
 
         List<TMLCPActivityDiagram> CPlist = new ArrayList<TMLCPActivityDiagram>();
         List<TMLCPSequenceDiagram> SDlist = new ArrayList<TMLCPSequenceDiagram>();
-        List<TMLAttribute> listAttributes = new ArrayList<TMLAttribute>();
+      //  List<TMLAttribute> listAttributes = new ArrayList<TMLAttribute>();
         TMLCPActivityDiagram tempCP;
         TMLCPSequenceDiagram tempSD;
-        TMLAttribute attr;
+    //    TMLAttribute attr;
         int i, j, k;
 
         TraceManager.addDev("The data structure contains " + getNumSections() + " CP sections (AD) and " +
@@ -450,22 +450,22 @@ public class TMLCP extends TMLElement {
             TraceManager.addDev("Sequence Diagram n. " + (i+1) + ": " + tempSD.getName() + "\n");
 
             //Print Variables
-            listAttributes = tempSD.getAttributes();
+            //listAttributes = tempSD.getAttributes();
             //TraceManager.addDevf("\tAttributes:\n");
-            for (j = 0; j < listAttributes.size(); j++) {
-                attr = listAttributes.get(j);
+           // for (j = 0; j < listAttributes.size(); j++) {
+             //   attr = listAttributes.get(j);
                 //TraceManager.addDev("\t\t %s\t%s\t%s\n", attr.getName(), attr.getType(), attr.getInitialValue());
-            }
+            //}
 
             //Print Instances
-            List<TMLSDInstance> listInstances;
-            TMLSDInstance inst;
-            listInstances = tempSD.getInstances();
-            TraceManager.addDev("\tInstances:");
-            for (j = 0; j < listInstances.size(); j++) {
-                inst = listInstances.get(j);
+            //List<TMLSDInstance> listInstances;
+            //TMLSDInstance inst;
+            //listInstances = tempSD.getInstances();
+            //TraceManager.addDev("\tInstances:");
+           // for (j = 0; j < listInstances.size(); j++) {
+             //   inst = listInstances.get(j);
                 //TraceManager.addDev("\t\t" + inst.getName() + "\n");
-            }
+            //}
 
             //Print Messages
             List<TMLSDMessage> listMessages;
diff --git a/src/main/java/tmltranslator/TMLCPSyntaxChecking.java b/src/main/java/tmltranslator/TMLCPSyntaxChecking.java
index ef21bc989f8f434470c23d51e90c0ca8a9f4b9ee..acf7e2bc222c2c996cba9912fe0ea57cf0f107f3 100755
--- a/src/main/java/tmltranslator/TMLCPSyntaxChecking.java
+++ b/src/main/java/tmltranslator/TMLCPSyntaxChecking.java
@@ -586,11 +586,11 @@ public class TMLCPSyntaxChecking {
         }
 
         // Tree analysis: if the tree contains a variable, then, this variable has not been declared
-        ArrayList<String> vars = root.getVariables();
+        List<String> vars = root.getVariables();
 
         //Do not raise a syntax error when variables appear in actions
-        ArrayList<String> boolAttrNamesList = new ArrayList<String>();    //a list of the boolean attribute names
-        ArrayList<String> natAttrNamesList = new ArrayList<String>();    //a list of the natural attribute names
+        List<String> boolAttrNamesList = new ArrayList<String>();    //a list of the boolean attribute names
+        List<String> natAttrNamesList = new ArrayList<String>();    //a list of the natural attribute names
         for (TMLAttribute attr : attributes) {
             if (attr.isNat()) {
                 natAttrNamesList.add(attr.getName());
diff --git a/src/main/java/tmltranslator/TMLChoice.java b/src/main/java/tmltranslator/TMLChoice.java
index b4c8703865807b0c15385f209a79455a1975a234..9a2f7aa31caeb755effb7fcc1dc08faf3de9560e 100755
--- a/src/main/java/tmltranslator/TMLChoice.java
+++ b/src/main/java/tmltranslator/TMLChoice.java
@@ -36,14 +36,12 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package tmltranslator;
 
 import myutil.Conversion;
 
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Class TMLChoice
@@ -52,7 +50,7 @@ import java.util.ArrayList;
  * @author Ludovic APVRILLE
  */
 public class TMLChoice extends TMLActivityElement{
-    private ArrayList<String> guards;
+    private List<String> guards;
 
     public TMLChoice(String _name, Object _referenceObject) {
         super(_name, _referenceObject);
@@ -331,13 +329,11 @@ public class TMLChoice extends TMLActivityElement{
         }
     }
 
-    
     public String customExtraToXML() {
-	String g = "";
-	for(String s: guards) {
-	    g += s + ";";
-	}
-	return " guards=\"" + g + "\" ";
+    	String g = "";
+    	for(String s: guards) {
+    		g += s + ";";
+    	}
+    	return " guards=\"" + g + "\" ";
     }
-
 }
diff --git a/src/main/java/tmltranslator/TMLSyntaxChecking.java b/src/main/java/tmltranslator/TMLSyntaxChecking.java
index c1beb52121a7413ec1daadc682ab8b080d06a21e..0fe1dfd17a0dfd29a5bd8d9575657590219ba9e1 100755
--- a/src/main/java/tmltranslator/TMLSyntaxChecking.java
+++ b/src/main/java/tmltranslator/TMLSyntaxChecking.java
@@ -50,6 +50,7 @@ import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 
 
 /**
@@ -608,7 +609,7 @@ public class TMLSyntaxChecking {
         }
 
         // Tree analysis: if the tree contains a variable, then, this variable has not been declared
-        ArrayList<String> vars = root.getVariables();
+        List<String> vars = root.getVariables();
         for (String s : vars) {
             addError(t, elt, UNDECLARED_VARIABLE + " :" + s + " in expression " + action, TMLError.ERROR_BEHAVIOR);
         }
diff --git a/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java b/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java
index 7cdd59a3c08fb1ae8184191861b4a61705474339..4076aa65b88407bf149640dd1c9a4459c874c1e8 100755
--- a/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java
+++ b/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java
@@ -37,9 +37,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package tmltranslator.tmlcp;
 
 import tmltranslator.TMLCP;
@@ -314,118 +311,119 @@ public class TMLCPActivityDiagram  extends TMLElement {
         }
     }
 
+    // Issue #69; Unused TMLCPJunction
     // The splitting works only if there is no other operations than sequences and references to ADs/SDs
     // between forks and joins
     // The function removes junctions, and creates one new AD per junction
-    public Collection<TMLCPActivityDiagram> splitADs() {
-        int id = 0;
-        TMLCPActivityDiagram diag;
-
-        //TraceManager.addDev("Splitting AD: " + getName());
-
-        // For each junction, we create a new AD
-        ArrayList<TMLCPJunction> junctions = new ArrayList<TMLCPJunction>();
-        ArrayList<TMLCPRefAD> refsAD = new ArrayList<TMLCPRefAD>();
-        ArrayList<TMLCPElement> toBeRemoved = new ArrayList<TMLCPElement>();
-        HashMap<TMLCPJunction, TMLCPActivityDiagram> refs = new HashMap<TMLCPJunction, TMLCPActivityDiagram>();
-        for(TMLCPElement elt: elements)  {
-            if (elt instanceof TMLCPJunction) {
-                junctions.add((TMLCPJunction)elt);
-                diag = new TMLCPActivityDiagram(elt.getName() + "_" + id, referenceObject);
-                TMLCPStart start = new TMLCPStart("StartFrom_" + elt.getName(), elt.getReferenceObject());
-                diag.setStartElement(start);
-                diag.addTMLCPElement(start);
-                refs.put((TMLCPJunction)elt, diag);
-                //TraceManager.addDev("Adding a new diag named: " + diag.getName());
-            }
-        }
-
-        // We replace all elements leading to a junction by a call to the corresponding ref AD, keeping the same nexts
-        for(TMLCPJunction junction: junctions) {
-            TMLCPActivityDiagram toAD = refs.get(junction);
-            //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject());
-            //refsAD.add(ref);
-            elements.remove(junction);
-            //elements.add(ref);
-
-            // Replacing next to junction by new refs
-            int index;
-           // int ID = 0;
-            for(TMLCPElement elt: elements) {
-                while(((index = elt.getNextElements().indexOf(junction)) != -1)) {
-                    //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName() + "_" + ID, junction.getReferenceObject());
-                    //ID ++;
-		    TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject());
-                    //ID ++;
-		    refsAD.add(ref);
-                    //elements.add(ref);
-                    elt.setNextElementAtIndex(ref, index);
-		    /*TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref_" + ID, ref.getReferenceObject());
-		    elements.add(stop);
-		    ref.addNextElement(stop);*/
-                }
-                //ref.setNexts(junction.getNextElements());
-            }
-        }
-
-	// Removing nexts in new refs, and putting a stop
-        for(TMLCPRefAD ref: refsAD) {
-          ref.clearNexts();
-	  elements.add(ref);
-          TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref", ref.getReferenceObject());
-          elements.add(stop);
-          ref.addNextElement(stop);
-         }
-
-        // Moving elements from old AD to split ADs
-        //int cpt = 0;
-        for(TMLCPJunction junction: junctions) {
-            diag = refs.get(junction);
-            //TMLCPRefAD refAD = refsAD.get(cpt);
-            //cpt++;
-
-            // To be modified-> add elements from RefADs
-            // Also, avoid to add already met elements
-            addElementsFromJunction(junction, diag.getStartElement(), diag, refs, toBeRemoved);
-        }
-
-        // Removing elements from main diagram
-        for(TMLCPElement elt: toBeRemoved) {
-            elements.remove(elt);
-        }
-
-        
-
-        // Returns new elements
-        return refs.values();
-    }
-
-    private void addElementsFromJunction(TMLCPElement originInOld, TMLCPElement originInNew, TMLCPActivityDiagram newDiag, Map<TMLCPJunction, TMLCPActivityDiagram> refs, List<TMLCPElement> toBeRemoved) {
-        if (originInOld.getNextElements() == null) {
-            return;
-        }
-
-        for(TMLCPElement elt: originInOld.getNextElements()) {
-            //TraceManager.addDev("Exploring elt (0):" + elt.getName());
-            if (elt instanceof TMLCPJunction) {
-                // Must replace the junction by a ref to an AD
-                TMLCPActivityDiagram toAD = refs.get(elt);
-                TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject());
-                newDiag.addTMLCPElement(ref);
-                originInNew.setNextElement(ref);
-            } else {
-                //TraceManager.addDev("Exploring elt (1):" + elt.getName());
-                if (originInOld != originInNew) {
-                    originInNew.addNextElement(elt);
-                }
-                if (!newDiag.contains(elt)) {
-                    newDiag.addTMLCPElement(elt);
-                    toBeRemoved.add(elt);
-                    addElementsFromJunction(elt, elt, newDiag, refs, toBeRemoved);
-                }
-            }
-        }
-    }
+//    private Collection<TMLCPActivityDiagram> splitADs() {
+//        int id = 0;
+//        TMLCPActivityDiagram diag;
+//
+//        //TraceManager.addDev("Splitting AD: " + getName());
+//
+//        // For each junction, we create a new AD
+////        List<TMLCPJunction> junctions = new ArrayList<TMLCPJunction>();
+//        List<TMLCPRefAD> refsAD = new ArrayList<TMLCPRefAD>();
+//        List<TMLCPElement> toBeRemoved = new ArrayList<TMLCPElement>();
+////        Map<TMLCPJunction, TMLCPActivityDiagram> refs = new HashMap<TMLCPJunction, TMLCPActivityDiagram>();
+//        for(TMLCPElement elt: elements)  {
+//            if (elt instanceof TMLCPJunction) {
+//                junctions.add((TMLCPJunction)elt);
+//                diag = new TMLCPActivityDiagram(elt.getName() + "_" + id, referenceObject);
+//                TMLCPStart start = new TMLCPStart("StartFrom_" + elt.getName(), elt.getReferenceObject());
+//                diag.setStartElement(start);
+//                diag.addTMLCPElement(start);
+//                refs.put((TMLCPJunction)elt, diag);
+//                //TraceManager.addDev("Adding a new diag named: " + diag.getName());
+//            }
+//        }
+//
+//        // We replace all elements leading to a junction by a call to the corresponding ref AD, keeping the same nexts
+//        for(TMLCPJunction junction: junctions) {
+//            TMLCPActivityDiagram toAD = refs.get(junction);
+//            //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject());
+//            //refsAD.add(ref);
+//            elements.remove(junction);
+//            //elements.add(ref);
+//
+//            // Replacing next to junction by new refs
+//            int index;
+//           // int ID = 0;
+//            for(TMLCPElement elt: elements) {
+//                while(((index = elt.getNextElements().indexOf(junction)) != -1)) {
+//                    //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName() + "_" + ID, junction.getReferenceObject());
+//                    //ID ++;
+//                	TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject());
+//                    //ID ++;
+//                	refsAD.add(ref);
+//                    //elements.add(ref);
+//                    elt.setNextElementAtIndex(ref, index);
+//		    /*TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref_" + ID, ref.getReferenceObject());
+//		    elements.add(stop);
+//		    ref.addNextElement(stop);*/
+//                }
+//                //ref.setNexts(junction.getNextElements());
+//            }
+//        }
+//
+//	// Removing nexts in new refs, and putting a stop
+//        for(TMLCPRefAD ref: refsAD) {
+//        	ref.clearNexts();
+//        	elements.add(ref);
+//        	TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref", ref.getReferenceObject());
+//        	elements.add(stop);
+//        	ref.addNextElement(stop);
+//        }
+//
+//        // Moving elements from old AD to split ADs
+//        //int cpt = 0;
+//        for(TMLCPJunction junction: junctions) {
+//            diag = refs.get(junction);
+//            //TMLCPRefAD refAD = refsAD.get(cpt);
+//            //cpt++;
+//
+//            // To be modified-> add elements from RefADs
+//            // Also, avoid to add already met elements
+//            addElementsFromJunction(junction, diag.getStartElement(), diag, refs, toBeRemoved);
+//        }
+//
+//        // Removing elements from main diagram
+//        for(TMLCPElement elt: toBeRemoved) {
+//            elements.remove(elt);
+//        }
+//
+//        
+//
+//        // Returns new elements
+//        return refs.values();
+//    }
+
+//    private void addElementsFromJunction(TMLCPElement originInOld, TMLCPElement originInNew, TMLCPActivityDiagram newDiag, Map<TMLCPJunction, TMLCPActivityDiagram> refs, List<TMLCPElement> toBeRemoved) {
+//        if (originInOld.getNextElements() == null) {
+//            return;
+//        }
+//
+//        for(TMLCPElement elt: originInOld.getNextElements()) {
+//            //TraceManager.addDev("Exploring elt (0):" + elt.getName());
+//            if (elt instanceof TMLCPJunction) {
+//                // Must replace the junction by a ref to an AD
+//                TMLCPActivityDiagram toAD = refs.get(elt);
+//                TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject());
+//                newDiag.addTMLCPElement(ref);
+//                originInNew.setNextElement(ref);
+//            } else {
+//                //TraceManager.addDev("Exploring elt (1):" + elt.getName());
+//                if (originInOld != originInNew) {
+//                    originInNew.addNextElement(elt);
+//                }
+//                if (!newDiag.contains(elt)) {
+//                    newDiag.addTMLCPElement(elt);
+//                    toBeRemoved.add(elt);
+//                    addElementsFromJunction(elt, elt, newDiag, refs, toBeRemoved);
+//                }
+//            }
+//        }
+//    }
 
 
     public TMLCPElement getNonConnectedElement() {
@@ -509,6 +507,7 @@ public class TMLCPActivityDiagram  extends TMLElement {
 		}
     }
 
+    @Override
     public String toString() {
         String s = "*** Activity diagram " + getName() + "\n";
         for(TMLCPElement elt: elements) {
@@ -516,5 +515,4 @@ public class TMLCPActivityDiagram  extends TMLElement {
         }
         return s + "\n";
     }
-
 }       //End of class
diff --git a/src/main/java/ui/AbstractCDElement.java b/src/main/java/ui/AbstractCDElement.java
new file mode 100644
index 0000000000000000000000000000000000000000..afd37aeedc40af60a30811e394202b36c919fa2e
--- /dev/null
+++ b/src/main/java/ui/AbstractCDElement.java
@@ -0,0 +1,79 @@
+package ui;
+
+public abstract class AbstractCDElement implements CDElement {
+	
+	private boolean enabled;
+	
+	protected AbstractCDElement() {
+		enabled = true;
+	}
+    
+    /**
+     * Issue #69
+     * @param _enabled
+     */
+    @Override
+    public void setEnabled( final boolean _enabled ) {
+    	doSetEnabled( _enabled );
+    }
+    
+    /**
+     * Issue #69
+     * @param _enabled
+     */
+    @Override
+    public void doSetEnabled( final boolean _enabled ) {
+    	enabled = _enabled;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    @Override
+    public boolean isEnabled( boolean checkBranch ) {
+        return isEnabled();
+    }
+
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	return false;
+    }
+
+    	/**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canLabelBeDisabled( TGCOneLineText label ) {
+    	return false;
+    }
+    
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.CDElement#acceptForward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptForward( final ICDElementVisitor visitor ) {
+		visitor.visit( this );
+    }
+    
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptBackward( final ICDElementVisitor visitor ) {
+		visitor.visit( this );
+    }
+//    
+//    @Override
+//    public boolean isFullDisabler() {
+//    	return false;
+//    }
+}
diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java
index 824db9d610d07990df7f5ee2423baaf1a8efadc6..efe75185ecb3d7373761ac6e80456567a692b3fa 100644
--- a/src/main/java/ui/ActionPerformer.java
+++ b/src/main/java/ui/ActionPerformer.java
@@ -367,8 +367,8 @@ public class ActionPerformer {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RECEIVE_SIGNAL);
         } else if (command.equals(mgui.actions[TGUIAction.ASMD_LIBRARY_FUNCTION_CALL].getActionCommand())) {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_LIBRARY_FUNCTION_CALL);
-        } else if (command.equals(mgui.actions[TGUIAction.ASMD_PARALLEL].getActionCommand())) {
-            mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_PARALLEL);
+// Issue #69       } else if (command.equals(mgui.actions[TGUIAction.ASMD_PARALLEL].getActionCommand())) {
+//            mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_PARALLEL);
         } else if (command.equals(mgui.actions[TGUIAction.ASMD_STATE].getActionCommand())) {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STATE);
         } else if (command.equals(mgui.actions[TGUIAction.ASMD_CHOICE].getActionCommand())) {
@@ -895,8 +895,9 @@ public class ActionPerformer {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_START_STATE);
         } else if (command.equals(mgui.actions[TGUIAction.TMLCP_STOP].getActionCommand())) {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_STOP_STATE);
-        } else if (command.equals(mgui.actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) {
-            mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION);
+        // Issue #69 Removed unused TMLCPJunction
+//        } else if (command.equals(mgui.actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) {
+//            mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION);
         } else if (command.equals(mgui.actions[TGUIAction.TMLCP_FOR_LOOP].getActionCommand())) {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_FOR_LOOP);
         } else if (command.equals(mgui.actions[TGUIAction.TMLSD_EDIT].getActionCommand())) {
@@ -975,6 +976,26 @@ public class ActionPerformer {
         	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_TDF_CURRENT_SOURCE);
         } else if (command.equals(mgui.actions[TGUIAction.ELN_CLUSTER].getActionCommand())){
         	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_CLUSTER);
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_GENCODE].getActionCommand())){
+            mgui.elnExecutableCodeGeneration();
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_MODULE_PORT_DE].getActionCommand())){
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_MODULE_PORT_DE);
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_MODULE_PORT_TDF].getActionCommand())){
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_MODULE_PORT_TDF);
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_CLUSTER_TERMINAL].getActionCommand())){
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_CLUSTER_TERMINAL);
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_CLUSTER_PORT_DE].getActionCommand())){
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_CLUSTER_PORT_DE);
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_CLUSTER_PORT_TDF].getActionCommand())){
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_CLUSTER_PORT_TDF);
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_DE_CURRENT_SINK].getActionCommand())){
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_DE_CURRENT_SINK);
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_DE_CURRENT_SOURCE].getActionCommand())){
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_DE_CURRENT_SOURCE);
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SINK].getActionCommand())){
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_DE_VOLTAGE_SINK);
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SOURCE].getActionCommand())){
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_DE_VOLTAGE_SOURCE);
 
             // Attack Tree Diagrams
         } else if (command.equals(mgui.actions[TGUIAction.ATD_BLOCK].getActionCommand())) {
diff --git a/src/main/java/ui/ActivityDiagram2TMLTranslator.java b/src/main/java/ui/ActivityDiagram2TMLTranslator.java
new file mode 100644
index 0000000000000000000000000000000000000000..73dacbb477b7a2d03b8c797a0703b7dc2daffb8c
--- /dev/null
+++ b/src/main/java/ui/ActivityDiagram2TMLTranslator.java
@@ -0,0 +1,965 @@
+package ui;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
+
+import myutil.Conversion;
+import myutil.TraceManager;
+import tmltranslator.SecurityPattern;
+import tmltranslator.TMLActionState;
+import tmltranslator.TMLActivity;
+import tmltranslator.TMLActivityElement;
+import tmltranslator.TMLAttribute;
+import tmltranslator.TMLChannel;
+import tmltranslator.TMLCheckingError;
+import tmltranslator.TMLChoice;
+import tmltranslator.TMLDelay;
+import tmltranslator.TMLEvent;
+import tmltranslator.TMLExecC;
+import tmltranslator.TMLExecCInterval;
+import tmltranslator.TMLExecI;
+import tmltranslator.TMLExecIInterval;
+import tmltranslator.TMLForLoop;
+import tmltranslator.TMLJunction;
+import tmltranslator.TMLModeling;
+import tmltranslator.TMLNotifiedEvent;
+import tmltranslator.TMLRandom;
+import tmltranslator.TMLRandomSequence;
+import tmltranslator.TMLReadChannel;
+import tmltranslator.TMLRequest;
+import tmltranslator.TMLSelectEvt;
+import tmltranslator.TMLSendEvent;
+import tmltranslator.TMLSendRequest;
+import tmltranslator.TMLSequence;
+import tmltranslator.TMLStartState;
+import tmltranslator.TMLStopState;
+import tmltranslator.TMLTask;
+import tmltranslator.TMLType;
+import tmltranslator.TMLWaitEvent;
+import tmltranslator.TMLWriteChannel;
+import translator.CheckingError;
+import ui.tmlad.TMLADActionState;
+import ui.tmlad.TMLADChoice;
+import ui.tmlad.TMLADDecrypt;
+import ui.tmlad.TMLADDelay;
+import ui.tmlad.TMLADDelayInterval;
+import ui.tmlad.TMLADEncrypt;
+import ui.tmlad.TMLADExecC;
+import ui.tmlad.TMLADExecCInterval;
+import ui.tmlad.TMLADExecI;
+import ui.tmlad.TMLADExecIInterval;
+import ui.tmlad.TMLADForEverLoop;
+import ui.tmlad.TMLADForLoop;
+import ui.tmlad.TMLADForStaticLoop;
+import ui.tmlad.TMLADNotifiedEvent;
+import ui.tmlad.TMLADRandom;
+import ui.tmlad.TMLADReadChannel;
+import ui.tmlad.TMLADReadRequestArg;
+import ui.tmlad.TMLADSelectEvt;
+import ui.tmlad.TMLADSendEvent;
+import ui.tmlad.TMLADSendRequest;
+import ui.tmlad.TMLADSequence;
+import ui.tmlad.TMLADStartState;
+import ui.tmlad.TMLADStopState;
+import ui.tmlad.TMLADUnorderedSequence;
+import ui.tmlad.TMLADWaitEvent;
+import ui.tmlad.TMLADWriteChannel;
+import ui.tmlad.TMLActivityDiagramPanel;
+
+public class ActivityDiagram2TMLTranslator {
+	
+	public static final ActivityDiagram2TMLTranslator INSTANCE = new ActivityDiagram2TMLTranslator();
+	
+	private ActivityDiagram2TMLTranslator() {
+	}
+    
+	public void generateTaskActivityDiagrams(	final TMLTask tmltask,
+									    		final List<CheckingError> checkingErrors,
+												final List<CheckingError> warnings,
+												final CorrespondanceTGElement corrTgElement,
+												final TMLModeling<TGComponent> tmlm,
+												final Map<String, SecurityPattern> securityPatterns,
+												final Map<String, String> table,
+												final List<String> removedChannels,
+												final List<String> removedEvents,
+												final List<String> removedRequests )
+	throws MalformedTMLDesignException {
+        TMLActivity activity = tmltask.getActivityDiagram();
+        TMLActivityDiagramPanel tadp = (TMLActivityDiagramPanel)(activity.getReferenceObject());
+
+        TraceManager.addDev( "Generating activity diagram of: " + tmltask.getName());
+
+        // search for start state
+        List<TGComponent> list = tadp.getComponentList();
+        Iterator<TGComponent> iterator = list.listIterator();
+        TGComponent tgc;
+        TMLADStartState tss = null;
+        int cptStart = 0;
+        //    boolean rndAdded = false;
+
+        while(iterator.hasNext()) {
+            tgc = iterator.next();
+
+            if (tgc instanceof TMLADStartState) {
+                tss = (TMLADStartState) tgc;
+                cptStart ++;
+            }
+        }
+
+        if (tss == null) {
+            TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "No start state in the TML activity diagram of " + tmltask.getName());
+            ce.setTMLTask(tmltask);
+            checkingErrors.add(ce);
+            return;
+        }
+
+        if (cptStart > 1) {
+            TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in the TML activity diagram of " + tmltask.getName());
+            ce.setTMLTask(tmltask);
+            checkingErrors.add(ce);
+            return;
+        }
+
+        // Adding start state
+        TMLStartState tmlss = new TMLStartState("start", tss);
+        corrTgElement.addCor(tmlss, tss);
+        activity.setFirst(tmlss);
+
+        // Creation of other elements
+        TMLChannel channel;
+        String [] channels;
+        TMLEvent event;
+        TMLRequest request;
+
+        TMLADRandom tmladrandom;
+        TMLRandom tmlrandom;
+        TMLActionState tmlaction;
+        TMLChoice tmlchoice;
+        TMLExecI tmlexeci;
+        TMLExecIInterval tmlexecii;
+        TMLExecC tmlexecc;
+        TMLExecCInterval tmlexecci;
+        TMLForLoop tmlforloop;
+        TMLReadChannel tmlreadchannel;
+        TMLSendEvent tmlsendevent;
+        TMLSendRequest tmlsendrequest;
+        TMLStopState tmlstopstate;
+        TMLWaitEvent tmlwaitevent;
+        TMLNotifiedEvent tmlnotifiedevent;
+        TMLWriteChannel tmlwritechannel;
+        TMLSequence tmlsequence;
+        TMLRandomSequence tmlrsequence;
+        TMLSelectEvt tmlselectevt;
+        TMLDelay tmldelay;
+        int staticLoopIndex = 0;
+        String sl = "", tmp;
+        TMLType tt;
+        TMLAttribute tmlt;
+
+        iterator = list.listIterator();
+        while(iterator.hasNext()) {
+            tgc = iterator.next();
+            // Issue #69: Manage component enablement
+            if ( tgc.isEnabled() ) {
+		        if (tgc.getCheckLatency()){
+		            String name = tmltask.getName() + ":" +  tgc.getName();
+		            name = name.replaceAll(" ","");
+		            //TraceManager.addDev("To check " + name);
+	                if (tgc.getValue().contains("(")) {
+	                    tmlm.addCheckedActivity(tgc, name + ":" + tgc.getValue().split("\\(")[0]);
+	                } else {
+	                    if (tgc instanceof TMLADExecI) {
+	                        tmlm.addCheckedActivity(tgc, ((TMLADExecI) tgc).getDelayValue());
+	                    }
+	                }
+		        }
+		        if (tgc instanceof TMLADActionState) {
+		            tmlaction = new TMLActionState("action", tgc);
+		            tmp = ((TMLADActionState)(tgc)).getAction();
+		            tmp = modifyActionString(tmp);
+		            tmlaction.setAction(tmp);
+		            activity.addElement(tmlaction);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlaction, tgc);
+		
+		        } else if (tgc instanceof TMLADRandom) {
+		            tmladrandom = (TMLADRandom)tgc;
+		            tmlrandom = new TMLRandom("random" + tmladrandom.getValue(), tgc);
+		            tmp = tmladrandom.getVariable();
+		            tmp = modifyActionString(tmp);
+		            tmlrandom.setVariable(tmp);
+		            tmp = tmladrandom.getMinValue();
+		            tmp = modifyActionString(tmp);
+		            tmlrandom.setMinValue(tmp);
+		            tmp = tmladrandom.getMaxValue();
+		            tmp = modifyActionString(tmp);
+		            tmlrandom.setMaxValue(tmp);
+		            tmlrandom.setFunctionId(tmladrandom.getFunctionId());
+		            activity.addElement(tmlrandom);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlrandom, tgc);
+		
+		        } else if (tgc instanceof TMLADChoice) {
+		            tmlchoice = new TMLChoice("choice", tgc);
+		            // Guards are added at the same time as next activities
+		            activity.addElement(tmlchoice);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlchoice, tgc);
+		
+		        } else if (tgc instanceof TMLADSelectEvt) {
+		            tmlselectevt = new TMLSelectEvt("select", tgc);
+		            activity.addElement(tmlselectevt);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlselectevt, tgc);
+		
+		        } else if (tgc instanceof TMLADExecI) {
+		            tmlexeci = new TMLExecI("execi", tgc);
+		            tmlexeci.setAction(modifyString(((TMLADExecI)tgc).getDelayValue()));
+		            tmlexeci.setValue(((TMLADExecI)tgc).getDelayValue());
+		            activity.addElement(tmlexeci);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlexeci, tgc);
+		
+		        } else if (tgc instanceof TMLADExecIInterval) {
+		            tmlexecii = new TMLExecIInterval("execi", tgc);
+		            tmlexecii.setValue(tgc.getValue());
+		            tmlexecii.setMinDelay(modifyString(((TMLADExecIInterval)tgc).getMinDelayValue()));
+		            tmlexecii.setMaxDelay(modifyString(((TMLADExecIInterval)tgc).getMaxDelayValue()));
+		            activity.addElement(tmlexecii);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlexecii, tgc);
+		
+		        } else if (tgc instanceof TMLADEncrypt) {
+		            tmlexecc = new TMLExecC("encrypt_"+((TMLADEncrypt)tgc).securityContext, tgc);
+		            activity.addElement(tmlexecc);
+		            SecurityPattern sp = securityPatterns.get(((TMLADEncrypt)tgc).securityContext);
+		            if (sp ==null){
+		                //Throw error for missing security pattern
+		                UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADEncrypt)tgc).securityContext + " not found");
+		                ce.setTDiagramPanel(tadp);
+		                ce.setTGComponent(tgc);
+		                checkingErrors.add(ce);
+		            }
+		            else {
+		                tmlexecc.securityPattern = sp;
+		                tmlexecc.setAction(Integer.toString(sp.encTime));
+		                ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		                tmlm.securityTaskMap.get(sp).add(tmltask);
+		                corrTgElement.addCor(tmlexecc, tgc);
+		            }
+		        } else if (tgc instanceof TMLADDecrypt) {
+		            tmlexecc = new TMLExecC("decrypt_"+((TMLADDecrypt)tgc).securityContext, tgc);
+		            activity.addElement(tmlexecc);
+		            SecurityPattern sp = securityPatterns.get(((TMLADDecrypt)tgc).securityContext);
+		            if (sp ==null){
+		                //Throw error for missing security pattern
+		                UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADDecrypt)tgc).securityContext + " not found");
+		                ce.setTDiagramPanel(tadp);
+		                ce.setTGComponent(tgc);
+		                checkingErrors.add(ce);
+		            }
+		            else {
+		                tmlexecc.securityPattern = sp;
+		                tmlexecc.setAction(Integer.toString(sp.decTime));
+		                ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		                corrTgElement.addCor(tmlexecc, tgc);
+		                tmlm.securityTaskMap.get(sp).add(tmltask);
+		            }
+		
+		        } else if (tgc instanceof TMLADExecC) {
+		            tmlexecc = new TMLExecC("execc", tgc);
+		            tmlexecc.setValue(((TMLADExecC)tgc).getDelayValue());
+		            tmlexecc.setAction(modifyString(((TMLADExecC)tgc).getDelayValue()));
+		            activity.addElement(tmlexecc);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlexecc, tgc);
+		
+		        } else if (tgc instanceof TMLADExecCInterval) {
+		            tmlexecci = new TMLExecCInterval("execci", tgc);
+		            tmlexecci.setMinDelay(modifyString(((TMLADExecCInterval)tgc).getMinDelayValue()));
+		            tmlexecci.setMaxDelay(modifyString(((TMLADExecCInterval)tgc).getMaxDelayValue()));
+		            activity.addElement(tmlexecci);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlexecci, tgc);
+		
+		        } else if (tgc instanceof TMLADDelay) {
+		            tmldelay = new TMLDelay("d-delay", tgc);
+		            tmldelay.setMinDelay(modifyString(((TMLADDelay)tgc).getDelayValue()));
+		            tmldelay.setMaxDelay(modifyString(((TMLADDelay)tgc).getDelayValue()));
+		            tmldelay.setUnit(((TMLADDelay)tgc).getUnit());
+		            activity.addElement(tmldelay);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmldelay, tgc);
+		
+		        } else if (tgc instanceof TMLADDelayInterval) {
+		            tmldelay = new TMLDelay("nd-delay", tgc);
+		            tmldelay.setMinDelay(modifyString(((TMLADDelayInterval)tgc).getMinDelayValue()));
+		            tmldelay.setMaxDelay(modifyString(((TMLADDelayInterval)tgc).getMaxDelayValue()));
+		            tmldelay.setUnit(((TMLADDelayInterval)tgc).getUnit());
+		            activity.addElement(tmldelay);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmldelay, tgc);
+		
+		        } else if (tgc instanceof TMLADForLoop) {
+		            tmlforloop = new TMLForLoop("loop", tgc);
+		            tmlforloop.setInit(modifyString(((TMLADForLoop)tgc).getInit()));
+		            tmp = ((TMLADForLoop)tgc).getCondition();
+		            /*if (tmp.trim().length() == 0) {
+		              tmp = "true";
+		              }*/
+		            tmlforloop.setCondition(modifyString(tmp));
+		            tmlforloop.setIncrement(modifyActionString(((TMLADForLoop)tgc).getIncrement()));
+		
+		            activity.addElement(tmlforloop);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlforloop, tgc);
+		
+		        } else if (tgc instanceof TMLADForStaticLoop) {
+		            sl = "loop__" + staticLoopIndex;
+		            tt = new TMLType(TMLType.NATURAL);
+		            tmlt = new TMLAttribute(sl, tt);
+		            tmlt.initialValue = "0";
+		            tmltask.addAttribute(tmlt);
+		            tmlforloop = new TMLForLoop(sl, tgc);
+		            tmlforloop.setInit(sl + " = 0");
+		            tmlforloop.setCondition(sl + "<" + modifyString(tgc.getValue()));
+		            tmlforloop.setIncrement(sl + " = " + sl + " + 1");
+		            activity.addElement(tmlforloop);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlforloop, tgc);
+		            staticLoopIndex++;
+		
+		        } else if (tgc instanceof TMLADForEverLoop) {
+		            /*sl = "loop__" + staticLoopIndex;
+		              tt = new TMLType(TMLType.NATURAL);
+		              tmlt = new TMLAttribute(sl, tt);
+		              tmlt.initialValue = "0";
+		              tmltask.addAttribute(tmlt);*/
+		            tmlforloop = new TMLForLoop("infiniteloop", tgc);
+		            tmlforloop.setInit("");
+		            tmlforloop.setCondition("");
+		            tmlforloop.setIncrement("");
+		            tmlforloop.setInfinite(true);
+		            activity.addElement(tmlforloop);
+		            ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		            corrTgElement.addCor(tmlforloop, tgc);
+		            staticLoopIndex++;
+		
+		            tmlstopstate = new TMLStopState("Stop after infinite loop", null);
+		            activity.addElement(tmlstopstate);
+		            tmlforloop.addNext(tmlstopstate);
+		
+		        } else if (tgc instanceof TMLADSequence) {
+		            tmlsequence = new TMLSequence("seq", tgc);
+		            activity.addElement(tmlsequence);
+		            corrTgElement.addCor(tmlsequence, tgc);
+		
+		        } else if (tgc instanceof TMLADUnorderedSequence) {
+		            tmlrsequence = new TMLRandomSequence("rseq", tgc);
+		            activity.addElement(tmlrsequence);
+		            corrTgElement.addCor(tmlrsequence, tgc);
+		
+		        } else if (tgc instanceof TMLADReadChannel) {
+		            // Get the channel
+					//TMLADReadChannel rd = (TMLADReadChannel) tgc;
+		            channel = tmlm.getChannelByName( getFromTable( tmltask, ((TMLADReadChannel)tgc).getChannelName(), table ) );
+					/*if (rd.isAttacker()){
+						channel = tmlm.getChannelByName(getAttackerChannel(((TMLADReadChannel)tgc).getChannelName()));
+					}*/
+		            if (channel == null) {
+		                if (Conversion.containsStringInList(removedChannels, ((TMLADReadChannel)tgc).getChannelName())) {
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADReadChannel)tgc).getChannelName() + " has been removed because the corresponding channel is not taken into account");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    warnings.add(ce);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                    activity.addElement(new TMLJunction("void junction", tgc));
+		                } else {
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADReadChannel)tgc).getChannelName() + " is an unknown channel");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                    checkingErrors.add(ce);
+		                }
+		
+		            } else {
+		                tmlreadchannel = new TMLReadChannel("read channel", tgc);
+		                tmlreadchannel.setNbOfSamples(modifyString(((TMLADReadChannel)tgc).getSamplesValue()));
+	                    tmlreadchannel.setEncForm(((TMLADReadChannel) tgc).getEncForm());               
+		                tmlreadchannel.addChannel(channel);
+		                //security pattern
+		                if (securityPatterns.get(((TMLADReadChannel)tgc).getSecurityContext())!=null){
+		                    tmlreadchannel.securityPattern= securityPatterns.get(((TMLADReadChannel)tgc).getSecurityContext());
+		                    //NbOfSamples will increase due to extra overhead from MAC
+		                    int cur=1;
+		                    try {
+		                        cur = Integer.valueOf(modifyString(((TMLADReadChannel)tgc).getSamplesValue()));
+		                    } catch(NumberFormatException e) {
+		                    } catch(NullPointerException e) {
+		                    }
+		                    int add = Integer.valueOf(tmlreadchannel.securityPattern.overhead);
+		                    if (!tmlreadchannel.securityPattern.nonce.equals("")){
+		                        SecurityPattern nonce = securityPatterns.get(tmlreadchannel.securityPattern.nonce);
+		                        if (nonce!=null){
+		                            add = Integer.valueOf(nonce.overhead);
+		                        }
+		                    }
+		                    cur = cur+ add;
+		                    tmlreadchannel.setNbOfSamples(Integer.toString(cur));
+		                }
+		                else if (!((TMLADReadChannel)tgc).getSecurityContext().isEmpty()){
+		                    //Throw error for missing security pattern
+		                    UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADReadChannel)tgc).getSecurityContext() + " not found");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    checkingErrors.add(ce);
+		                }
+						if (tmltask.isAttacker()){
+							tmlreadchannel.setAttacker(true);						
+						}
+		                activity.addElement(tmlreadchannel);
+		                ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		                corrTgElement.addCor(tmlreadchannel, tgc);
+					}
+		        } else if (tgc instanceof TMLADSendEvent) {
+		            event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADSendEvent)tgc).getEventName(), table ));
+		            if (event == null) {
+		                if (Conversion.containsStringInList(removedEvents, ((TMLADSendEvent)tgc).getEventName())) {
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendEvent)tgc).getEventName() + " has been removed because the corresponding event is not taken into account");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    warnings.add(ce);
+		                    activity.addElement(new TMLJunction("void junction", tgc));
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                } else {
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent)tgc).getEventName() + " is an unknown event");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    checkingErrors.add(ce);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                }
+		            } else {
+		                tmlsendevent = new TMLSendEvent("send event", tgc);
+		                tmlsendevent.setEvent(event);
+		
+		                for(int i=0; i<((TMLADSendEvent)tgc).realNbOfParams(); i++) {
+		                    tmp = modifyString(((TMLADSendEvent)tgc).getRealParamValue(i));
+		                    Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
+		                    if (allVariables.size() > 0) {
+		                        for(int k=0; k<allVariables.size(); k++) {
+		                            //TraceManager.addDev("Adding record: " + allVariables.get(k));
+		                            tmlsendevent.addParam(allVariables.get(k));
+		                        }
+		                    } else {
+		                        //TraceManager.addDev("Adding param: " + tmp);
+		                        tmlsendevent.addParam(tmp);
+		                    }
+		                }
+		                if (event.getNbOfParams() != tmlsendevent.getNbOfParams()) {
+		                    TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " sendevent#:" + tmlsendevent.getNbOfParams());
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent)tgc).getEventName() + ": wrong number of parameters");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    checkingErrors.add(ce);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                } else {
+		                    activity.addElement(tmlsendevent);
+		                    corrTgElement.addCor(tmlsendevent, tgc);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		                }
+		            }
+		
+		        } else if (tgc instanceof TMLADSendRequest) {
+		            request = tmlm.getRequestByName(getFromTable(tmltask, ((TMLADSendRequest)tgc).getRequestName(), table ) );
+		            if (request == null) {
+		                if (Conversion.containsStringInList(removedRequests, ((TMLADSendRequest)tgc).getRequestName())) {
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendRequest)tgc).getRequestName() + " has been removed because the corresponding request is not taken into account");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    warnings.add(ce);
+		                    activity.addElement(new TMLJunction("void junction", tgc));
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                } else {
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest)tgc).getRequestName() + " is an unknown request");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    checkingErrors.add(ce);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                }
+		            } else {
+		                tmlsendrequest = new TMLSendRequest("send request", tgc);
+		                tmlsendrequest.setRequest(request);
+		                for(int i=0; i<((TMLADSendRequest)tgc).realNbOfParams(); i++) {
+		                    tmp = modifyString(((TMLADSendRequest)tgc).getRealParamValue(i));
+		                    Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
+		                    if (allVariables.size() > 0) {
+		                        for(int k=0; k<allVariables.size(); k++) {
+		                            //TraceManager.addDev("Adding record: " + allVariables.get(k));
+		                            tmlsendrequest.addParam(allVariables.get(k));
+		                            request.addParamName(allVariables.get(k));
+		                        }
+		                    } else {
+		                        //TraceManager.addDev("Adding param: " + tmp);
+		                        tmlsendrequest.addParam(tmp);
+		                        request.addParamName(tmp);
+		                    }
+		                }
+		                if (request.getNbOfParams() != tmlsendrequest.getNbOfParams()) {
+		                    TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " sendrequest#:" + tmlsendrequest.getNbOfParams());
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest)tgc).getRequestName() + ": wrong number of parameters");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    checkingErrors.add(ce);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                } else {
+		                    activity.addElement(tmlsendrequest);
+		                    corrTgElement.addCor(tmlsendrequest, tgc);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		                }
+		            }
+		
+		        } else if (tgc instanceof TMLADReadRequestArg) {
+		            request = tmlm.getRequestToMe(tmltask);
+		            if (request == null) {
+		                UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "This task is not requested: cannot use \"reading request arg\" operator");
+		                ce.setTDiagramPanel(tadp);
+		                ce.setTGComponent(tgc);
+		                checkingErrors.add(ce);
+		                ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		            } else {
+		                tmlaction = new TMLActionState("action reading args", tgc);
+		                String act = "";
+		                int cpt = 1;
+		                for(int i=0; i<((TMLADReadRequestArg)tgc).realNbOfParams(); i++) {
+		                    tmp = modifyString(((TMLADReadRequestArg)tgc).getRealParamValue(i));
+		                    Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
+		
+		                    if (allVariables.size() > 0) {
+		                        for(int k=0; k<allVariables.size(); k++) {
+		                            //TraceManager.addDev("Adding record: " + allVariables.get(k));
+		                            if (cpt != 1) {
+		                                act += "$";
+		                            }
+		                            act += allVariables.get(k) + " = arg" + cpt + "__req";
+		                            cpt ++;
+		                        }
+		                    } else {
+		                        //TraceManager.addDev("Adding param: " + tmp);
+		                        if (cpt != 1) {
+		                            act += "$";
+		                        }
+		                        act += tmp + " = arg" + cpt + "__req";
+		                        cpt ++;
+		                    }
+		                }
+		                if (request.getNbOfParams() != (cpt-1)) {
+		                    //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " read request arg#:" + (cpt-1));
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Wrong number of parameters in \"reading request arg\" operator");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    checkingErrors.add(ce);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                } else {
+		                    //TraceManager.addDev("Adding action = " + act);
+		                    tmlaction.setAction(act);
+		                    activity.addElement(tmlaction);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		                    corrTgElement.addCor(tmlaction, tgc);
+		                }
+		            }
+		
+		        } else if (tgc instanceof TMLADStopState) {
+		            tmlstopstate = new TMLStopState("stop state", tgc);
+		            activity.addElement(tmlstopstate);
+		            corrTgElement.addCor(tmlstopstate, tgc);
+		
+		        } else if (tgc instanceof TMLADNotifiedEvent) {
+		            event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADNotifiedEvent)tgc).getEventName(), table ) );
+		            if (event == null) {
+		                if( removedEvents.size() > 0 )      {
+		                    if (Conversion.containsStringInList(removedEvents, ((TMLADNotifiedEvent)tgc).getEventName())) {
+		                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADNotifiedEvent)tgc).getEventName() + " has been removed because the corresponding event is not taken into account");
+		                        ce.setTDiagramPanel(tadp);
+		                        ce.setTGComponent(tgc);
+		                        warnings.add(ce);
+		                        activity.addElement(new TMLJunction("void junction", tgc));
+		                        ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                    } else {
+		                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent)tgc).getEventName() + " is an unknown event");
+		                        ce.setTDiagramPanel(tadp);
+		                        ce.setTGComponent(tgc);
+		                        checkingErrors.add(ce);
+		                        ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                    }
+		                } else {
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent)tgc).getEventName() + " is an unknown event");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    checkingErrors.add(ce);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                }
+		            } else {
+		                event.setNotified(true);
+		                tmlnotifiedevent = new TMLNotifiedEvent("notified event", tgc);
+		                tmlnotifiedevent.setEvent(event);
+		                tmlnotifiedevent.setVariable(modifyString(((TMLADNotifiedEvent)tgc).getVariable()));
+		                activity.addElement(tmlnotifiedevent);
+		                ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		                corrTgElement.addCor(tmlnotifiedevent, tgc);
+		            }
+		
+		        } else if (tgc instanceof TMLADWaitEvent) {
+		            event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADWaitEvent)tgc).getEventName(), table ) );
+		            if (event == null) {
+		                if( removedEvents.size() > 0 )      {
+		                    if (Conversion.containsStringInList(removedEvents, ((TMLADWaitEvent)tgc).getEventName())) {
+		                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWaitEvent)tgc).getEventName() + " has been removed because the corresponding event is not taken into account");
+		                        ce.setTDiagramPanel(tadp);
+		                        ce.setTGComponent(tgc);
+		                        warnings.add(ce);
+		                        ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                        activity.addElement(new TMLJunction("void junction", tgc));
+		                    } else {
+		                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent)tgc).getEventName() + " is an unknown event");
+		                        ce.setTDiagramPanel(tadp);
+		                        ce.setTGComponent(tgc);
+		                        ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                        checkingErrors.add(ce);
+		                    }
+		                } else {
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent)tgc).getEventName() + " is an unknown event");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                    checkingErrors.add(ce);
+		                }
+		            } else {
+		                //TraceManager.addDev("Nb of param of event:" + event.getNbOfParams());
+		                tmlwaitevent = new TMLWaitEvent("wait event", tgc);
+		                tmlwaitevent.setEvent(event);
+		                for(int i=0; i<((TMLADWaitEvent)tgc).realNbOfParams(); i++) {
+		                    tmp = modifyString(((TMLADWaitEvent)tgc).getRealParamValue(i));
+		                    Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
+		                    if (allVariables.size() > 0) {
+		                        for(int k=0; k<allVariables.size(); k++) {
+		                            //TraceManager.addDev("Adding record: " + allVariables.get(k));
+		                            tmlwaitevent.addParam(allVariables.get(k));
+		                        }
+		                    } else {
+		                        //TraceManager.addDev("Adding param: " + tmp);
+		                        tmlwaitevent.addParam(tmp);
+		                    }
+		                }
+		                if (event.getNbOfParams() != tmlwaitevent.getNbOfParams()) {
+		                    //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " waitevent#:" + tmlwaitevent.getNbOfParams());
+		                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent)tgc).getEventName() + ": wrong number of parameters");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    checkingErrors.add(ce);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                } else {
+		                    activity.addElement(tmlwaitevent);
+		                    corrTgElement.addCor(tmlwaitevent, tgc);
+		                    ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		                }
+		
+		            }
+		
+		        } else if (tgc instanceof TMLADWriteChannel) {
+		            // Get channels
+					//TMLADWriteChannel wr = (TMLADWriteChannel) tgc;
+		            channels = ((TMLADWriteChannel)tgc).getChannelsByName();
+		            boolean error = false;
+		            for(int i=0; i<channels.length; i++) {
+		                //TraceManager.addDev("Getting from table " + tmltask.getName() + "/" +channels[i]);
+		                channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i], table ) );
+		                if (channel == null) {
+		                    if (Conversion.containsStringInList(removedChannels, ((TMLADWriteChannel)tgc).getChannelName(i))) {
+		                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWriteChannel)tgc).getChannelName(i) + " has been removed because the corresponding channel is not taken into account");
+		                        ce.setTDiagramPanel(tadp);
+		                        ce.setTGComponent(tgc);
+		                        warnings.add(ce);
+		                        ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                        activity.addElement(new TMLJunction("void junction", tgc));
+		                    } else {
+		                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWriteChannel)tgc).getChannelName(i) + " is an unknown channel");
+		                        ce.setTDiagramPanel(tadp);
+		                        ce.setTGComponent(tgc);
+		                        ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN);
+		                        checkingErrors.add(ce);
+		                    }
+		                    error = true;
+		                
+						}
+		            }
+		            if (!error) {
+		                tmlwritechannel = new TMLWriteChannel("write channel", tgc);
+		                tmlwritechannel.setNbOfSamples(modifyString(((TMLADWriteChannel)tgc).getSamplesValue()));
+	                    tmlwritechannel.setEncForm(((TMLADWriteChannel) tgc).getEncForm());
+
+	                    for(int i=0; i<channels.length; i++) {
+		                    channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i], table ) );
+		                    tmlwritechannel.addChannel(channel);
+		                }
+						//if (wr.isAttacker()){
+							//channel = tmlm.getChannelByName(getAttackerChannel(channels[0]));
+		                    //tmlwritechannel.addChannel(channel);
+						//}
+		                //add sec pattern
+		                if (securityPatterns.get(((TMLADWriteChannel)tgc).getSecurityContext())!=null){
+		                    tmlwritechannel.securityPattern= securityPatterns.get(((TMLADWriteChannel)tgc).getSecurityContext());
+		                    int cur = Integer.valueOf(modifyString(((TMLADWriteChannel)tgc).getSamplesValue()));
+		                    int add = Integer.valueOf(tmlwritechannel.securityPattern.overhead);
+		                    if (!tmlwritechannel.securityPattern.nonce.equals("")){
+		                        SecurityPattern nonce = securityPatterns.get(tmlwritechannel.securityPattern.nonce);
+		                        if (nonce!=null){
+		                            add = Integer.valueOf(nonce.overhead);
+		                        }
+		                    }
+		                    cur = cur+ add;
+		                    tmlwritechannel.setNbOfSamples(Integer.toString(cur));
+		                }
+		                else if (!((TMLADWriteChannel)tgc).getSecurityContext().isEmpty()){
+		                    //Throw error for missing security pattern
+		                    UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADWriteChannel)tgc).getSecurityContext() + " not found");
+		                    ce.setTDiagramPanel(tadp);
+		                    ce.setTGComponent(tgc);
+		                    checkingErrors.add(ce);
+		                }
+						if (tmltask.isAttacker()){
+							tmlwritechannel.setAttacker(true);
+						}
+		                activity.addElement(tmlwritechannel);
+		                ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK);
+		                corrTgElement.addCor(tmlwritechannel, tgc);
+		            }
+				}
+            }
+        }
+
+        // Interconnection between elements
+        //TGConnectorTMLAD tgco;
+        //TGConnectingPoint p1, p2;
+        //TMLActivityElement ae1, ae2;
+        //TGComponent /*tgc1, tgc2,*/ tgc3;
+        //int j, index;
+
+        final List<TGConnector> connectors = tadp.getConnectors();
+        final Set<TGConnector> prunedConectors = new HashSet<TGConnector>();
+        
+        for ( final TGConnector connector : connectors ) {
+        	if ( !prunedConectors.contains( connector ) ) {
+        		FindNextEnabledConnectingPointVisitor visitor = new FindNextEnabledConnectingPointVisitor( prunedConectors );
+        		connector.getTGConnectingPointP1().acceptBackward( visitor );
+		        final TGConnectingPoint conPoint1 = visitor.getEnabledComponentPoint();
+		        
+		        if ( conPoint1 != null ) {
+	            	visitor = new FindNextEnabledConnectingPointVisitor( prunedConectors );
+	        		connector.getTGConnectingPointP2().acceptForward( visitor );
+	            	final TGConnectingPoint conPoint2 = visitor.getEnabledComponentPoint();
+	            	
+	            	if ( conPoint2 != null ) {
+		            	final TGComponent compo1 = (TGComponent) conPoint1.getFather();
+		            	final TGComponent compo2 = (TGComponent) conPoint2.getFather();
+		
+		            	final TMLActivityElement ae1 = activity.findReferenceElement( compo1 );
+		            	final TMLActivityElement ae2 = activity.findReferenceElement( compo2 );
+		
+		                //Special case if "for loop" or if "choice"
+		                if (ae1 instanceof TMLForLoop) {
+		                    final int index = compo1.indexOf( conPoint1 ) - 1;
+		                    
+		                    if (index == 0) {
+		                        ae1.addNext( 0, ae2 );
+		                    }
+		                    else {
+		                        ae1.addNext( ae2 );
+		                    }
+		
+		                }
+		                else if (ae1 instanceof TMLChoice) {
+		                	//final int index = compo1.indexOf( conPoint1 ) - 1;
+		                    //TraceManager.addDev("Adding next:" + ae2);
+		                    ae1.addNext(ae2);
+		                    
+		                    final TMLADChoice choice = (TMLADChoice) compo1;
+		                    final TGCOneLineText guard = choice.getGuardForConnectingPoint( conPoint1 );
+		                    ( (TMLChoice) ae1 ).addGuard( modifyString( choice.getEffectiveCondition( guard ) ) );
+		                }
+		                else if (ae1 instanceof TMLSequence) {
+		                	final int index = compo1.indexOf( conPoint1 ) - 1;
+		                    ((TMLSequence)ae1).addIndex(index);
+		                    ae1.addNext(ae2);
+		                    //TraceManager.addDev("Adding " + ae2 + " at index " + index);
+		
+		                }
+		                else if (ae1 instanceof TMLRandomSequence) {
+		                	final int  index = compo1.indexOf( conPoint1 ) - 1;
+		                    ((TMLRandomSequence)ae1).addIndex(index);
+		                    ae1.addNext(ae2);
+		                }
+		                else {
+		                    ae1.addNext(ae2);
+		                }
+		            }
+		        }
+            }
+        }
+
+        // Check that each "for" has two nexts
+        // Check that TMLChoice have compatible guards
+        // Check TML select evts
+        iterator = list.listIterator();
+        while(iterator.hasNext()) {
+            tgc = iterator.next();
+
+            // Issue #69: Disabling of AD components
+            if ( tgc.isEnabled() ) {
+	            if ((tgc instanceof TMLADForLoop) || (tgc instanceof TMLADForStaticLoop)) {
+	            	final TMLActivityElement ae1 = activity.findReferenceElement(tgc);
+	                
+	            	if (ae1 != null) {
+	                    if (ae1.getNbNext() != 2) {
+	                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted for loop: a loop must have an internal behavior, and an exit behavior ");
+	                        ce.setTDiagramPanel(tadp);
+	                        ce.setTGComponent(tgc);
+	                        checkingErrors.add(ce);
+	                    }
+	                }
+	            }
+	            else if (tgc instanceof TMLADChoice) {
+	                tmlchoice = (TMLChoice)(activity.findReferenceElement(tgc));
+	                tmlchoice.orderGuards();
+	
+	                int nbNonDeter = tmlchoice.nbOfNonDeterministicGuard();
+	                int nbStocha = tmlchoice.nbOfStochasticGuard();
+	                if ((nbNonDeter > 0) && (nbStocha > 0)) {
+	                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic and stochastic guards");
+	                    ce.setTDiagramPanel(tadp);
+	                    ce.setTGComponent(tgc);
+	                    checkingErrors.add(ce);
+	                }
+	                int nb = Math.max(nbNonDeter, nbStocha);
+	                if (nb > 0) {
+	                    nb = nb + tmlchoice.nbOfElseAndAfterGuards();
+	                    if (nb != tmlchoice.getNbGuard()) {
+	                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, UICheckingError.MESSAGE_CHOICE_BOTH_STOCHASTIC_DETERMINISTIC );//"Badly formatted choice: it has both non-determinitic/ stochastic and regular guards");
+	                        ce.setTDiagramPanel(tadp);
+	                        ce.setTGComponent(tgc);
+	                        checkingErrors.add(ce);
+	                    }
+	                }
+	
+	                //if (tmlchoice.nbOfNonDeterministicGuard() > 0) {
+	                    /*if (!rndAdded) {
+	                      TMLAttribute tmlt = new TMLAttribute("rnd__0", new TMLType(TMLType.NATURAL));
+	                      tmlt.initialValue = "";
+	                      tmltask.addAttribute(tmlt);
+	                      rndAdded = true;
+	                      }*/
+	                //}
+	                if (tmlchoice.hasMoreThanOneElse()) {
+	                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [else] guard");
+	                    ce.setTDiagramPanel(tadp);
+	                    ce.setTGComponent(tgc);
+	                    checkingErrors.add(ce);
+	                } else if ( tmlchoice.getElseGuard() > -1 ) {
+	                    final int index = tmlchoice.getElseGuard();
+	                    
+	                    if (index == 0) {
+	                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have a regular guard");
+	                        ce.setTDiagramPanel(tadp);
+	                        ce.setTGComponent(tgc);
+	                        checkingErrors.add(ce);
+	                    }
+	                }
+	                if (tmlchoice.hasMoreThanOneAfter()) {
+	                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [after] guard");
+	                    ce.setTDiagramPanel(tadp);
+	                    ce.setTGComponent(tgc);
+	                    checkingErrors.add(ce);
+	                }
+	            }
+	            else if (tgc instanceof TMLADSelectEvt) {
+	                tmlselectevt = (TMLSelectEvt)(activity.findReferenceElement(tgc));
+	                if (!tmlselectevt.isARealSelectEvt()) {
+	                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "'Select events'  should be followed by only event receiving operators");
+	                    ce.setTDiagramPanel(tadp);
+	                    ce.setTGComponent(tgc);
+	                    checkingErrors.add(ce);
+	                }
+	            }
+        	}
+        }
+
+        // Sorting nexts elements of Sequence
+        for( int j=0; j<activity.nElements(); j++) {
+            final TMLActivityElement ae1 = activity.get(j);
+            
+            if (ae1 instanceof TMLSequence) {
+                ((TMLSequence)ae1).sortNexts();
+            }
+            else if (ae1 instanceof TMLRandomSequence) {
+                ((TMLRandomSequence)ae1).sortNexts();
+            }
+        }
+        
+        TraceManager.addDev( tmltask.getActivityDiagram().toXML() );
+    }
+
+    private String modifyActionString(String _input) {
+        int index = _input.indexOf("++");
+        boolean b1, b2;
+        String tmp;
+
+        if(index > -1) {
+            tmp = _input.substring(0, index).trim();
+
+            b1 = (tmp.substring(0,1)).matches("[a-zA-Z]");
+            b2 = tmp.matches("\\w*");
+            if (b1 && b2) {
+                return tmp + " = " + tmp + " + 1";
+            }
+        }
+
+        index = _input.indexOf("--");
+        if(index > -1) {
+            tmp = _input.substring(0, index).trim();
+
+            b1 = (tmp.substring(0,1)).matches("[a-zA-Z]");
+            b2 = tmp.matches("\\w*");
+            if (b1 && b2) {
+                return tmp + " = " + tmp + " - 1";
+            }
+        }
+
+        return modifyString(_input);
+    }
+
+    private String modifyString(String _input) {
+        return Conversion.replaceAllChar(_input, '.', "__");
+    }
+    
+    private String getFromTable(	final TMLTask task, 
+    								final String s,
+    								final Map<String, String> table ) {
+        //TraceManager.addDev("TABLE GET: Getting from task=" + task.getName() + " element=" + s);
+
+        if (table == null) {
+            return s;
+        }
+
+        String ret = table.get(task.getName() + "/" + s);
+        //TraceManager.addDev("Returning=" + ret);
+
+        if (ret == null) {
+            return s;
+        }
+
+        return ret;
+    }
+}
diff --git a/src/main/java/ui/AttackTreePanelTranslator.java b/src/main/java/ui/AttackTreePanelTranslator.java
index cd1642f8946d72be448665c9879ba65fb6954f3c..b9de2310ee2af9a333011d8bf884fac95ede78e2 100644
--- a/src/main/java/ui/AttackTreePanelTranslator.java
+++ b/src/main/java/ui/AttackTreePanelTranslator.java
@@ -57,10 +57,10 @@ public class AttackTreePanelTranslator {
 
     protected AttackTree at;
     protected AttackTreePanel atp;
-    protected LinkedList<CheckingError> checkingErrors, warnings;
+    protected List<CheckingError> checkingErrors, warnings;
     protected CorrespondanceTGElement listE; // usual list
     //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks
-    protected LinkedList<TDiagramPanel> panels;
+    protected List<TDiagramPanel> panels;
 
 
     public AttackTreePanelTranslator(AttackTreePanel _atp) {
@@ -75,11 +75,11 @@ public class AttackTreePanelTranslator {
         panels = new LinkedList<TDiagramPanel>();
     }
 
-    public LinkedList<CheckingError> getCheckingErrors() {
+    public List<CheckingError> getCheckingErrors() {
         return checkingErrors;
     }
 
-    public LinkedList<CheckingError> getWarnings() {
+    public List<CheckingError> getWarnings() {
         return warnings;
     }
 
diff --git a/src/main/java/ui/AvatarDesignPanel.java b/src/main/java/ui/AvatarDesignPanel.java
index 0b3194ef27d7efe7c20a4d37d372227b87a2b6b8..96febefa9e04545b9707a56a23c3c4ab41737cfb 100644
--- a/src/main/java/ui/AvatarDesignPanel.java
+++ b/src/main/java/ui/AvatarDesignPanel.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import avatartranslator.AvatarAttribute;
@@ -65,8 +62,12 @@ import javax.swing.*;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import java.awt.*;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
+import java.util.Vector;
 
 /**
    * Class AvatarDesignPanel
@@ -77,8 +78,8 @@ import java.util.List;
    * @see MainGUI
  */
 public class AvatarDesignPanel extends TURTLEPanel {
-    public AvatarBDPanel abdp;
-
+    
+	public AvatarBDPanel abdp;
 
     public AvatarDesignPanel(MainGUI _mgui) {
         super(_mgui);
@@ -103,13 +104,13 @@ public class AvatarDesignPanel extends TURTLEPanel {
     }
 
 
-    public void setValidated(LinkedList<AvatarBDStateMachineOwner> _validated) {
+    public void setValidated( List<AvatarBDStateMachineOwner> _validated) {
         if (abdp != null) {
             abdp.setValidated(_validated);
         }
     }
 
-    public void setIgnored(LinkedList<AvatarBDStateMachineOwner> _ignored) {
+    public void setIgnored( List<AvatarBDStateMachineOwner> _ignored) {
         if (abdp != null) {
             abdp.setIgnored(_ignored);
         }
@@ -121,14 +122,14 @@ public class AvatarDesignPanel extends TURTLEPanel {
         }
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getValidated() {
+    public List<AvatarBDStateMachineOwner> getValidated() {
         if (abdp != null) {
             return abdp.getValidated();
         }
         return null;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getIgnored() {
+    public List<AvatarBDStateMachineOwner> getIgnored() {
         if (abdp != null) {
             return abdp.getIgnored();
         }
@@ -179,6 +180,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
         return;
     }
 
+    @Override
     public void init() {
 
         //  Class Diagram toolbar
@@ -209,37 +211,41 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
     }
 
-    public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions(String _name) {
+    public List<AvatarBDLibraryFunction> getAllLibraryFunctions(String _name) {
         return abdp.getAllLibraryFunctionsForBlock (_name);
     }
 
-    public LinkedList<TAttribute> getAllAttributes(String _name) {
+    public List<TAttribute> getAllAttributes(String _name) {
         return abdp.getAllAttributesOfBlock(_name);
     }
 
-    public LinkedList<AvatarMethod> getAllMethods(String _name) {
+    public List<AvatarMethod> getAllMethods(String _name) {
         return abdp.getAllMethodsOfBlock(_name);
     }
 
-    public LinkedList<AvatarSignal> getAllSignals(String _name) {
+    public List<AvatarSignal> getAllSignals(String _name) {
         return abdp.getAllSignalsOfBlock(_name);
     }
 
-    public LinkedList<String> getAllTimers(String _name) {
+    public List<String> getAllTimers(String _name) {
         return abdp.getAllTimersOfBlock(_name);
     }
     
+    @Override
     public String saveHeaderInXml(String extensionToName) {
-	if (extensionToName == null) {
-	    return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n";
-	}
-	return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n";
+		if (extensionToName == null) {
+		    return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n";
+		}
+
+		return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n";
     }
 
+    @Override
     public String saveTailInXml() {
         return "</Modeling>\n\n\n";
     }
 
+    @Override
     public String toString() {
         return mgui.getTitleAt(this) + " (Design)";
     }
@@ -260,13 +266,11 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
     }
 
-
-
-    public LinkedList<TGComponent> getListOfComponentsInMutex() {
+    public List<TGComponent> getListOfComponentsInMutex() {
         TGComponent tgc;
         TDiagramPanel tdp;
 
-        LinkedList<TGComponent> list = new LinkedList<TGComponent>();
+        List<TGComponent> list = new LinkedList<TGComponent>();
 
         for(int i=0; i<panels.size(); i++) {
             tdp = panels.get(i);
@@ -337,8 +341,8 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
     }
 
-    public LinkedList<String> getPropertyPragmas() {
-        LinkedList<String> result = new LinkedList<String> ();
+    public List<String> getPropertyPragmas() {
+        List<String> result = new LinkedList<String> ();
         for (Object tgc: abdp.getComponentList()) {
             if (tgc instanceof AvatarBDPragma) {
                 result.addAll(((AvatarBDPragma) tgc).getProperties());
@@ -348,8 +352,8 @@ public class AvatarDesignPanel extends TURTLEPanel {
         return result;
     }
 
-    public LinkedList<String> getModelPragmas() {
-        LinkedList<String> result = new LinkedList<String> ();
+    public List<String> getModelPragmas() {
+        List<String> result = new LinkedList<String> ();
         for (Object tgc: abdp.getComponentList()) {
             if (tgc instanceof AvatarBDPragma) {
                 result.addAll(((AvatarBDPragma) tgc).getModels());
@@ -359,7 +363,6 @@ public class AvatarDesignPanel extends TURTLEPanel {
         return result;
     }
 
-
     public void resetModelBacktracingProVerif() {
         if (abdp == null) {
             return;
@@ -445,7 +448,6 @@ public class AvatarDesignPanel extends TURTLEPanel {
 		}
 	}
 
-
     public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) {
 
         if (abdp == null) {
@@ -456,8 +458,8 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
         // Confidential attributes
         Map<AvatarPragmaSecret, ProVerifQueryResult> confResults = pvoa.getConfidentialityResults();
-        HashMap<AvatarAttribute, AvatarPragma> secretAttributes = new HashMap<AvatarAttribute, AvatarPragma> ();
-        HashMap<AvatarAttribute, AvatarPragma> nonSecretAttributes = new HashMap<AvatarAttribute, AvatarPragma> ();
+        Map<AvatarAttribute, AvatarPragma> secretAttributes = new HashMap<AvatarAttribute, AvatarPragma> ();
+        Map<AvatarAttribute, AvatarPragma> nonSecretAttributes = new HashMap<AvatarAttribute, AvatarPragma> ();
         for (AvatarPragmaSecret pragma: confResults.keySet())
         {
             ProVerifQueryResult result = confResults.get(pragma);
@@ -473,7 +475,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
         for (AvatarBDBlock bdBlock: abdp.getFullBlockList ())
             for (TAttribute tattr: bdBlock.getAttributeList ()) {
                 if (tattr.getType () == TAttribute.OTHER) {
-                    LinkedList<TAttribute> types = abdp.getAttributesOfDataType (tattr.getTypeOther ());
+                    List<TAttribute> types = abdp.getAttributesOfDataType (tattr.getTypeOther ());
                     int toBeFound = types.size ();
                     boolean ko = false;
                     for (TAttribute type: types) {
@@ -584,7 +586,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
                             if (! tattrA.getTypeOther ().equals (tattrB.getTypeOther ()))
                                 continue;
 
-                            LinkedList<TAttribute> types = abdp.getAttributesOfDataType (tattrA.getTypeOther ());
+                            List<TAttribute> types = abdp.getAttributesOfDataType (tattrA.getTypeOther ());
                             int toBeFound = types.size ();
                             boolean ko = false;
                             boolean weakKo = false;
@@ -711,13 +713,11 @@ public class AvatarDesignPanel extends TURTLEPanel {
             }
     }
 
-    public ArrayList<String> getAllNonMappedAvatarBlockNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) {
+    public List<String> getAllNonMappedAvatarBlockNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) {
         return abdp.getAllNonMappedAvatarBlockNames(_name, _tadp, ref, name);
     }
 
-    public ArrayList<String> getAllNonMappedAvatarChannelNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) {
+    public List<String> getAllNonMappedAvatarChannelNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) {
         return abdp.getAllNonMappedAvatarChannelNames(_name, _tadp);
     }
-
-
 }
diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java
index 879587c3372fcb9e6726c0163b6ff01acb23fd55..19f86b72de68de83f4d875110032d72427d8feb6 100644
--- a/src/main/java/ui/AvatarDesignPanelTranslator.java
+++ b/src/main/java/ui/AvatarDesignPanelTranslator.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import avatartranslator.*;
@@ -57,24 +54,24 @@ import java.util.*;
  */
 public class AvatarDesignPanelTranslator {
 
-    protected AvatarDesignPanel adp;
-    protected List<CheckingError> checkingErrors, warnings;
-    protected CorrespondanceTGElement listE; // usual list
+    private final AvatarDesignPanel adp;
+    private final List<CheckingError> checkingErrors, warnings;
+    private final CorrespondanceTGElement listE; // usual list
     //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks
-    protected List <TDiagramPanel> panels;
-    protected Map<String, List<TAttribute>> typeAttributesMap;
-    protected Map<String, String> nameTypeMap;
+    //protected List <TDiagramPanel> panels;
+    private Map<String, List<TAttribute>> typeAttributesMap;
+    private Map<String, String> nameTypeMap;
     
     public AvatarDesignPanelTranslator(AvatarDesignPanel _adp) {
         adp = _adp;
-        reinit();
-    }
+     //   reinit();
+   // }
 
-    public void reinit() {
+    //public void reinit() {
         checkingErrors = new LinkedList<CheckingError> ();
         warnings = new LinkedList<CheckingError> ();
         listE = new CorrespondanceTGElement();
-        panels = new LinkedList <TDiagramPanel>();
+        //panels = new LinkedList <TDiagramPanel>();
     }
 
     public List<CheckingError> getErrors() {
@@ -130,19 +127,21 @@ public class AvatarDesignPanelTranslator {
     public class ErrorAccumulator extends avatartranslator.ErrorAccumulator {
         private TGComponent tgc;
         private TDiagramPanel tdp;
-        private AvatarBlock ab;
+       // private AvatarBlock ab;
 
-        public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp, AvatarBlock ab) {
-            this.tgc = tgc;
-            this.tdp = tdp;
-            this.ab = ab;
-        }
+//        public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp, AvatarBlock ab) {
+//            this.tgc = tgc;
+//            this.tdp = tdp;
+//            this.ab = ab;
+//        }
 
         public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp) {
-            this (tgc, tdp, null);
+        	this.tgc = tgc;
+        	this.tdp = tdp;
+//            this (tgc, tdp, null);
         }
 
-        public CheckingError createError (String msg) {
+        public CheckingError createError(String msg) {
             UICheckingError ce = new UICheckingError (CheckingError.BEHAVIOR_ERROR, msg);
             ce.setTGComponent (this.tgc);
             ce.setTDiagramPanel (this.tdp);
@@ -167,7 +166,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 
-    public void createPragmas(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
+    private void createPragmas(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
         Iterator<TGComponent> iterator = adp.getAvatarBDPanel().getComponentList().listIterator();
         TGComponent tgc;
         AvatarBDPragma tgcn;
@@ -240,7 +239,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 	
-	public AvatarPragmaLatency checkPerformancePragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){	
+    public AvatarPragmaLatency checkPerformancePragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){	
 		if (_pragma.contains("=") || (!_pragma.contains(">") && !_pragma.contains("<") && !_pragma.contains("?")) || !_pragma.contains("Latency(")){
 			UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "No latency expression found in pragma "+ _pragma);
 		   	ce.setTDiagramPanel(adp.getAvatarBDPanel());
@@ -416,7 +415,8 @@ public class AvatarDesignPanelTranslator {
 
 
 	}
-    public boolean checkSafetyPragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){
+	
+	private boolean checkSafetyPragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){
         //Todo: check types
         //Todo: handle complex types
         _pragma = _pragma.trim();
@@ -466,7 +466,8 @@ public class AvatarDesignPanelTranslator {
         }
         return true;
     }
-    public boolean statementParser(String state, AvatarSpecification as, String _pragma, TGComponent tgc){
+    
+    private boolean statementParser(String state, AvatarSpecification as, String _pragma, TGComponent tgc){
         //check the syntax of a single statement
        
 
@@ -659,243 +660,243 @@ public class AvatarDesignPanelTranslator {
         }
         return true;
     }
-    public String reworkPragma(String _pragma, LinkedList<AvatarBDBlock> _blocks) {
-        String ret = "";
-        int i;
-
-        // Identify first keyword
-        _pragma = _pragma.trim();
-
-        int index = _pragma.indexOf(" ");
-
-        if (index == -1) {
-            return null;
-        }
-
-        String header = _pragma.substring(0, index).trim();
-
-        for(i=0; i<AvatarPragma.PRAGMAS.length; i++) {
-            if (header.compareTo(AvatarPragma.PRAGMAS[i]) == 0) {
-                break;
-            }
-        }
-
-        // Invalid header?
-        if (i == AvatarPragma.PRAGMAS.length) {
-            TraceManager.addDev("Invalid Pragma " + 0);
-            return null;
-        }
-
-
-
-        ret = AvatarPragma.PRAGMAS_TRANSLATION[i] + " ";
-
-        // Checking for arguments
-
-
-        boolean b = ret.startsWith("Authenticity ");
-        boolean b1 = ret.startsWith("PrivatePublicKeys ");
-        String arguments [] = _pragma.substring(index+1, _pragma.length()).trim().split(" ");
-        String tmp;
-        String blockName, stateName, paramName = "";
-        boolean found = false;
-        LinkedList<TAttribute> types;
-        AvatarBDBlock block;
-        TAttribute ta;
-     //   AvatarBlock ab;
-        String myBlockName = "";
-
-
-
-
-        for(i=0; i<arguments.length; i++) {
-            tmp = arguments[i];
-            TraceManager.addDev("arguments #=" + arguments.length + " pragma=" + _pragma + " tmp=" + tmp);
-
-            if (b1) {
-
-                // Private Public keys?
-                if (i == 0) {
-                    // Must be a block name
-                    // Look for at least a block
-                    found = false;
-                    for(Object o: _blocks) {
-                        block = (AvatarBDBlock)o;
-                        //TraceManager.addDev("Comparing " + block.getBlockName() + " with " + tmp);
-                        if (block.getBlockName().compareTo(tmp) ==0) {
-                            myBlockName = block.getBlockName();
-                            found = true;
-                            ret = ret + tmp;
-                            break;
-                        }
-                        /*for(Object oo: block.getAttributeList()) {
-                          ta = (TAttribute)oo;
-                          if (ta.getId().compareTo(tmp) == 0) {
-                          found = true;
-
-                          if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
-                          ret = ret  + tmp + " ";
-                          } else if (ta.getType() == TAttribute.OTHER) {
-                          // Must find all subsequent types
-                          types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
-                          if (types == null) {
-                          TraceManager.addDev("Invalid Pragma " + 1);
-                          return null;
-
-                          } else {
-                          for(int j=0; j<types.size(); j++) {
-                          ret = ret + tmp + "__" + ((TAttribute)(types.elementAt(j))).getId() + " ";
-                          }
-                          }
-                          }
-
-                          }
-                          }*/
-                    }
-                    if (found == false) {
-                        TraceManager.addDev("Invalid Pragma " + 2);
-                        return null;
-                    }
-
-                } else if ((i == 1) || (i == 2)) {
-                    // Shall be an attribute
-                    TraceManager.addDev("i= " + i);
-                    for(Object o: _blocks) {
-                        block = (AvatarBDBlock)o;
-                        TraceManager.addDev("block= " + block.getBlockName() + " my block name=" + myBlockName);
-                        if (block.getBlockName().compareTo(myBlockName) == 0) {
-                            TraceManager.addDev("Found the block " + ret);
-                            for(Object oo: block.getAttributeList()) {
-                                ta = (TAttribute)oo;
-                                TraceManager.addDev("Attribute: " + ta.getId());
-                                if (ta.getId().compareTo(tmp) == 0) {
-                                    paramName = ta.getId();
-                                    found = true;
-                                    TraceManager.addDev("Pragma " + ret + " found=" + found);
-                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
-                                        ret = ret  + " " + paramName + " ";
-                                    } else if (ta.getType() == TAttribute.OTHER) {
-                                        // Must find all subsequent types
-                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
-                                        if (types == null) {
-                                            TraceManager.addDev("Invalid Pragma " + 3);
-                                            return null;
-                                        } else {
-                                            TraceManager.addDev("Pragma " + ret + " types size=" + types.size());
-                                            for (TAttribute type: types)
-                                                ret = ret  + " " + paramName + "__" + type.getId() + " ";
-                                        }
-
-                                    } else {
-                                        TraceManager.addDev("Invalid Pragma " + 4);
-                                        return null;
-                                    }
-
-                                    break;
-                                }
-                            }
-                        }
-                    }
-                } else {
-                    // Badly formatted
-                    TraceManager.addDev("Invalid Pragma " + 5);
-                    return null;
-                }
-
-                // Other than PrivatePublicKeys
-            } else {
-                index = tmp.indexOf(".");
-                if (index == -1) {
-                    return null;
-                }
-                blockName = tmp.substring(0, index);
-
-                //TraceManager.addDev("blockName=" + blockName);
-                // Search for the block
-                for(Object o: _blocks) {
-                    block = (AvatarBDBlock)o;
-                    if (block.getBlockName().compareTo(blockName) == 0) {
-
-                        if (b) {
-                            // Authenticity
-                            stateName = tmp.substring(index+1, tmp.length());
-                            //TraceManager.addDev("stateName=" + stateName);
-                            index = stateName.indexOf(".");
-                            if (index == -1) {
-                                return null;
-                            }
-                            paramName = stateName.substring(index+1, stateName.length());
-                            stateName = stateName.substring(0, index);
-
-                            for(Object oo: block.getAttributeList()) {
-                                ta = (TAttribute)oo;
-                                if (ta.getId().compareTo(paramName) == 0) {
-                                    found = true;
-
-                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
-                                        ret = ret + blockName + "." + stateName + "." + paramName + " ";
-                                    } else if (ta.getType() == TAttribute.OTHER) {
-                                        // Must find all subsequent types
-                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
-                                        if (types == null) {
-                                            return null;
-                                        } else {
-                                            for (TAttribute type: types)
-                                                ret = ret + blockName + "." + stateName + "." + paramName + "__" + type.getId() + " ";
-                                        }
-
-                                    } else {
-                                        return null;
-                                    }
-
-                                    break;
-                                }
-                            }
-
-                        } else {
-                            // Other: confidentiality, initial system knowledge, initial session knowledge, constant
-
-                            paramName = tmp.substring(index+1, tmp.length());
-                            for(Object oo: block.getAttributeList()) {
-                                ta = (TAttribute)oo;
-                                if (ta.getId().compareTo(paramName) == 0) {
-                                    found = true;
-
-                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
-                                        ret = ret + blockName + "." + paramName + " ";
-                                    } else if (ta.getType() == TAttribute.OTHER) {
-                                        // Must find all subsequent types
-                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
-                                        if (types == null) {
-                                            return null;
-                                        } else {
-                                            for (TAttribute type: types)
-                                                ret = ret + blockName + "." + paramName + "__" + type.getId() + " ";
-                                        }
-
-                                    } else {
-                                        return null;
-                                    }
-
-                                    break;
-                                }
-                            }
-
-                        }
-                    }
-                }
-            }
-
-            if (!found) {
-                return null;
-            }
-
-        }
-
-        TraceManager.addDev("Reworked pragma: " + ret);
-
-        return ret.trim();
-    }
+//    public String reworkPragma(String _pragma, LinkedList<AvatarBDBlock> _blocks) {
+//        String ret = "";
+//        int i;
+//
+//        // Identify first keyword
+//        _pragma = _pragma.trim();
+//
+//        int index = _pragma.indexOf(" ");
+//
+//        if (index == -1) {
+//            return null;
+//        }
+//
+//        String header = _pragma.substring(0, index).trim();
+//
+//        for(i=0; i<AvatarPragma.PRAGMAS.length; i++) {
+//            if (header.compareTo(AvatarPragma.PRAGMAS[i]) == 0) {
+//                break;
+//            }
+//        }
+//
+//        // Invalid header?
+//        if (i == AvatarPragma.PRAGMAS.length) {
+//            TraceManager.addDev("Invalid Pragma " + 0);
+//            return null;
+//        }
+//
+//
+//
+//        ret = AvatarPragma.PRAGMAS_TRANSLATION[i] + " ";
+//
+//        // Checking for arguments
+//
+//
+//        boolean b = ret.startsWith("Authenticity ");
+//        boolean b1 = ret.startsWith("PrivatePublicKeys ");
+//        String arguments [] = _pragma.substring(index+1, _pragma.length()).trim().split(" ");
+//        String tmp;
+//        String blockName, stateName, paramName = "";
+//        boolean found = false;
+//        LinkedList<TAttribute> types;
+//        AvatarBDBlock block;
+//        TAttribute ta;
+//     //   AvatarBlock ab;
+//        String myBlockName = "";
+//
+//
+//
+//
+//        for(i=0; i<arguments.length; i++) {
+//            tmp = arguments[i];
+//            TraceManager.addDev("arguments #=" + arguments.length + " pragma=" + _pragma + " tmp=" + tmp);
+//
+//            if (b1) {
+//
+//                // Private Public keys?
+//                if (i == 0) {
+//                    // Must be a block name
+//                    // Look for at least a block
+//                    found = false;
+//                    for(Object o: _blocks) {
+//                        block = (AvatarBDBlock)o;
+//                        //TraceManager.addDev("Comparing " + block.getBlockName() + " with " + tmp);
+//                        if (block.getBlockName().compareTo(tmp) ==0) {
+//                            myBlockName = block.getBlockName();
+//                            found = true;
+//                            ret = ret + tmp;
+//                            break;
+//                        }
+//                        /*for(Object oo: block.getAttributeList()) {
+//                          ta = (TAttribute)oo;
+//                          if (ta.getId().compareTo(tmp) == 0) {
+//                          found = true;
+//
+//                          if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
+//                          ret = ret  + tmp + " ";
+//                          } else if (ta.getType() == TAttribute.OTHER) {
+//                          // Must find all subsequent types
+//                          types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
+//                          if (types == null) {
+//                          TraceManager.addDev("Invalid Pragma " + 1);
+//                          return null;
+//
+//                          } else {
+//                          for(int j=0; j<types.size(); j++) {
+//                          ret = ret + tmp + "__" + ((TAttribute)(types.elementAt(j))).getId() + " ";
+//                          }
+//                          }
+//                          }
+//
+//                          }
+//                          }*/
+//                    }
+//                    if (found == false) {
+//                        TraceManager.addDev("Invalid Pragma " + 2);
+//                        return null;
+//                    }
+//
+//                } else if ((i == 1) || (i == 2)) {
+//                    // Shall be an attribute
+//                    TraceManager.addDev("i= " + i);
+//                    for(Object o: _blocks) {
+//                        block = (AvatarBDBlock)o;
+//                        TraceManager.addDev("block= " + block.getBlockName() + " my block name=" + myBlockName);
+//                        if (block.getBlockName().compareTo(myBlockName) == 0) {
+//                            TraceManager.addDev("Found the block " + ret);
+//                            for(Object oo: block.getAttributeList()) {
+//                                ta = (TAttribute)oo;
+//                                TraceManager.addDev("Attribute: " + ta.getId());
+//                                if (ta.getId().compareTo(tmp) == 0) {
+//                                    paramName = ta.getId();
+//                                    found = true;
+//                                    TraceManager.addDev("Pragma " + ret + " found=" + found);
+//                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
+//                                        ret = ret  + " " + paramName + " ";
+//                                    } else if (ta.getType() == TAttribute.OTHER) {
+//                                        // Must find all subsequent types
+//                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
+//                                        if (types == null) {
+//                                            TraceManager.addDev("Invalid Pragma " + 3);
+//                                            return null;
+//                                        } else {
+//                                            TraceManager.addDev("Pragma " + ret + " types size=" + types.size());
+//                                            for (TAttribute type: types)
+//                                                ret = ret  + " " + paramName + "__" + type.getId() + " ";
+//                                        }
+//
+//                                    } else {
+//                                        TraceManager.addDev("Invalid Pragma " + 4);
+//                                        return null;
+//                                    }
+//
+//                                    break;
+//                                }
+//                            }
+//                        }
+//                    }
+//                } else {
+//                    // Badly formatted
+//                    TraceManager.addDev("Invalid Pragma " + 5);
+//                    return null;
+//                }
+//
+//                // Other than PrivatePublicKeys
+//            } else {
+//                index = tmp.indexOf(".");
+//                if (index == -1) {
+//                    return null;
+//                }
+//                blockName = tmp.substring(0, index);
+//
+//                //TraceManager.addDev("blockName=" + blockName);
+//                // Search for the block
+//                for(Object o: _blocks) {
+//                    block = (AvatarBDBlock)o;
+//                    if (block.getBlockName().compareTo(blockName) == 0) {
+//
+//                        if (b) {
+//                            // Authenticity
+//                            stateName = tmp.substring(index+1, tmp.length());
+//                            //TraceManager.addDev("stateName=" + stateName);
+//                            index = stateName.indexOf(".");
+//                            if (index == -1) {
+//                                return null;
+//                            }
+//                            paramName = stateName.substring(index+1, stateName.length());
+//                            stateName = stateName.substring(0, index);
+//
+//                            for(Object oo: block.getAttributeList()) {
+//                                ta = (TAttribute)oo;
+//                                if (ta.getId().compareTo(paramName) == 0) {
+//                                    found = true;
+//
+//                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
+//                                        ret = ret + blockName + "." + stateName + "." + paramName + " ";
+//                                    } else if (ta.getType() == TAttribute.OTHER) {
+//                                        // Must find all subsequent types
+//                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
+//                                        if (types == null) {
+//                                            return null;
+//                                        } else {
+//                                            for (TAttribute type: types)
+//                                                ret = ret + blockName + "." + stateName + "." + paramName + "__" + type.getId() + " ";
+//                                        }
+//
+//                                    } else {
+//                                        return null;
+//                                    }
+//
+//                                    break;
+//                                }
+//                            }
+//
+//                        } else {
+//                            // Other: confidentiality, initial system knowledge, initial session knowledge, constant
+//
+//                            paramName = tmp.substring(index+1, tmp.length());
+//                            for(Object oo: block.getAttributeList()) {
+//                                ta = (TAttribute)oo;
+//                                if (ta.getId().compareTo(paramName) == 0) {
+//                                    found = true;
+//
+//                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
+//                                        ret = ret + blockName + "." + paramName + " ";
+//                                    } else if (ta.getType() == TAttribute.OTHER) {
+//                                        // Must find all subsequent types
+//                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
+//                                        if (types == null) {
+//                                            return null;
+//                                        } else {
+//                                            for (TAttribute type: types)
+//                                                ret = ret + blockName + "." + paramName + "__" + type.getId() + " ";
+//                                        }
+//
+//                                    } else {
+//                                        return null;
+//                                    }
+//
+//                                    break;
+//                                }
+//                            }
+//
+//                        }
+//                    }
+//                }
+//            }
+//
+//            if (!found) {
+//                return null;
+//            }
+//
+//        }
+//
+//        TraceManager.addDev("Reworked pragma: " + ret);
+//
+//        return ret.trim();
+//    }
 
     private AvatarAttribute createRegularAttribute (AvatarStateMachineOwner _ab, TAttribute _a, String _preName) {
         AvatarType type = AvatarType.UNDEFINED;
@@ -914,11 +915,11 @@ public class AvatarDesignPanelTranslator {
         return aa;
     }
 
-    public void addRegularAttribute(AvatarBlock _ab, TAttribute _a, String _preName) {
+    private void addRegularAttribute(AvatarBlock _ab, TAttribute _a, String _preName) {
         _ab.addAttribute(this.createRegularAttribute (_ab, _a, _preName));
     }
 
-    public void createLibraryFunctions (AvatarSpecification _as, List<AvatarBDLibraryFunction> _libraryFunctions) {
+    private void createLibraryFunctions (AvatarSpecification _as, List<AvatarBDLibraryFunction> _libraryFunctions) {
         for (AvatarBDLibraryFunction libraryFunction: _libraryFunctions) {
             AvatarLibraryFunction alf = new AvatarLibraryFunction (libraryFunction.getFunctionName (), _as, libraryFunction);
             _as.addLibraryFunction (alf);
@@ -934,7 +935,7 @@ public class AvatarDesignPanelTranslator {
                     alf.addParameter (this.createRegularAttribute (alf, attr, ""));
                 else {
                     // other
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
+                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
                     if (types == null) {
                         UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + attr.getTypeOther() + " used in " + alf.getName());
                         // TODO: adapt
@@ -964,7 +965,7 @@ public class AvatarDesignPanelTranslator {
                     alf.addReturnAttribute (this.createRegularAttribute (alf, attr, ""));
                 else {
                     // other
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
+                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
                     if (types == null) {
                         UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + attr.getTypeOther() + " used in " + alf.getName());
                         ce.setTDiagramPanel(adp.getAvatarBDPanel());
@@ -993,7 +994,7 @@ public class AvatarDesignPanelTranslator {
                     alf.addAttribute (this.createRegularAttribute (alf, attr, ""));
                 else {
                     // other
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
+                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
                     if (types == null) {
                         UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + attr.getTypeOther() + " used in " + alf.getName());
                         ce.setTDiagramPanel(adp.getAvatarBDPanel());
@@ -1036,7 +1037,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 
-    public void createBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
+    private void createBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
         for(AvatarBDBlock block: _blocks) {
             AvatarBlock ab = new AvatarBlock(block.getBlockName(), _as, block);
             _as.addBlock(ab);
@@ -1056,7 +1057,7 @@ public class AvatarDesignPanelTranslator {
                 } else {
                     // other
                     // TraceManager.addDev(" -> Other type found: " + a.getTypeOther());
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther());
+                    List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther());
                     if (types == null) {
                         UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + a.getTypeOther() + " used in " + ab.getName());
                         ce.setTDiagramPanel(adp.getAvatarBDPanel());
@@ -1117,7 +1118,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 
-    public void makeBlockStateMachines(AvatarSpecification _as) {
+    private void makeBlockStateMachines(AvatarSpecification _as) {
         // Make state machine of blocks
         for(AvatarBlock block: _as.getListOfBlocks())
             this.makeStateMachine(_as, block);
@@ -1127,7 +1128,7 @@ public class AvatarDesignPanelTranslator {
             this.makeStateMachine (_as, libraryFunction);
     }
 
-    public void makeReturnParameters(AvatarStateMachineOwner _ab, AvatarBDStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) {
+    private void makeReturnParameters(AvatarStateMachineOwner _ab, AvatarBDStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) {
         String rt = _uiam.getReturnType().trim();
         AvatarAttribute aa;
         AvatarType type = AvatarType.UNDEFINED;
@@ -1140,7 +1141,7 @@ public class AvatarDesignPanelTranslator {
             aa = new AvatarAttribute("return__0", AvatarType.getType(rt), _ab, _block);
             _atam.addReturnParameter(aa);
         } else {
-            LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(rt);
+            List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(rt);
             if (types == null) {
                 UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + rt + " declared as a return parameter of a method of " + _block.getOwnerName());
                 // TODO: adapt
@@ -1167,12 +1168,12 @@ public class AvatarDesignPanelTranslator {
 
     }
 
-    public void makeParameters(AvatarStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) {
+    private void makeParameters(AvatarStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) {
         String typeIds[] = _uiam.getTypeIds();
         String types[] = _uiam.getTypes();
 
         for(int i=0; i<types.length; i++) {
-            LinkedList<TAttribute> v = adp.getAvatarBDPanel().getAttributesOfDataType(types[i]);
+            List<TAttribute> v = adp.getAvatarBDPanel().getAttributesOfDataType(types[i]);
             if (v == null) {
                 if (AvatarType.getType(types[i]) == AvatarType.UNDEFINED) {
                     UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  \"" + types[i] + "\" declared in method " + _atam + " of block " + _block.getName());
@@ -1202,7 +1203,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 
-    public void manageAttribute (String _name, AvatarStateMachineOwner _ab, AvatarActionOnSignal _aaos, TDiagramPanel _tdp, TGComponent _tgc, String _idOperator) {
+    private void manageAttribute (String _name, AvatarStateMachineOwner _ab, AvatarActionOnSignal _aaos, TDiagramPanel _tdp, TGComponent _tgc, String _idOperator) {
         TAttribute ta =  adp.getAvatarBDPanel().getAttribute(_name, _ab.getName());
         if (ta == null) {
             UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + _name + " in signal expression: " + _idOperator);
@@ -1217,7 +1218,7 @@ public class AvatarDesignPanelTranslator {
 
         //TraceManager.addDev("Found: " + ta.getId());
 
-        LinkedList<String> v = new LinkedList<String> ();
+        List<String> v = new LinkedList<String> ();
 
         if (ta.getType() == TAttribute.OTHER)
             for (TAttribute tatmp: adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()))
@@ -1236,81 +1237,91 @@ public class AvatarDesignPanelTranslator {
                 ce.setTGComponent(_tgc);
                 addCheckingError(ce);
                 return ;
-            } else {
+            }// else {
                 //TraceManager.addDev("-> Adding attr in action on signal in block " + _ab.getName() + ":" + _name + "__" + tatmp.getId());
-                _aaos.addValue(name);
-            }
+            _aaos.addValue(name);
+            //}
         }
     }
 
     private void translateAvatarSMDSendSignal (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDSendSignal asmdss) throws CheckingError {
-        AvatarStateMachine asm = _ab.getStateMachine ();
-        avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdss.getSignalName ());
-        if (atas == null)
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdss.getSignalName());
-
-        // Get relation of that signal
-        if (_ab instanceof AvatarBlock) {
-            // Note that for library functions, signals are just placeholders so they don't need to be connected to anything
-            AvatarRelation ar = _as.getAvatarRelationWithSignal (atas);
-            if (ar == null) {
-		if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-		    //TraceManager.addDev("Send/ Setting as attached " + atas);
-		    ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false;
-		}
-		//TraceManager.addDev("Spec:" + _as.toString());
-		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for sending in " + asmdss.getValue() + " is not connected to a channel");
-	    }
-	    if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-		//TraceManager.addDev("Send/ Setting as attached " + atas);
-		((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
-	    }
-        }
+    	AvatarStateMachine asm = _ab.getStateMachine ();
+    	avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdss.getSignalName ());
+    	if (atas == null)
+    		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdss.getSignalName());
+
+    	// Get relation of that signal
+    	if (_ab instanceof AvatarBlock) {
+    		// Note that for library functions, signals are just placeholders so they don't need to be connected to anything
+    		AvatarRelation ar = _as.getAvatarRelationWithSignal (atas);
+    		if (ar == null) {
+    			if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    				//TraceManager.addDev("Send/ Setting as attached " + atas);
+    				((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false;
+    			}
+    			//TraceManager.addDev("Spec:" + _as.toString());
+    			throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for sending in " + asmdss.getValue() + " is not connected to a channel");
+    		}
+    		if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    			//TraceManager.addDev("Send/ Setting as attached " + atas);
+    			((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
+    		}
+    	}
+        final AvatarStateMachineElement element;
+        final String name = "action_on_signal";
+        
+        if ( asmdss.isEnabled() ) {
+        	element = new AvatarActionOnSignal( name, atas, asmdss );
+        	
+        	final AvatarActionOnSignal aaos = (AvatarActionOnSignal) element;
+	    	if (asmdss.hasCheckedAccessibility())
+	    		aaos.setCheckable();
 	
-        AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdss);
-        if (asmdss.hasCheckedAccessibility())
-            aaos.setCheckable();
-
-        if (asmdss.hasCheckedAccessibility())
-            aaos.setChecked();
-
-        if (aaos.isReceiving ())
-            throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A receiving signal is used for sending: " + asmdss.getValue());
-
-        if (asmdss.getNbOfValues() == -1)
-            throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdss.getValue());
-
-        for(int i=0; i<asmdss.getNbOfValues(); i++) {
-            String tmp = asmdss.getValue(i);
-            if (tmp.isEmpty ())
-                throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdss.getValue());
-
-            this.manageAttribute (tmp, _ab, aaos, tdp, asmdss, asmdss.getValue());
+	    	if (asmdss.hasCheckedAccessibility())
+	    		aaos.setChecked();
+	
+	    	if (aaos.isReceiving ())
+	    		throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A receiving signal is used for sending: " + asmdss.getValue());
+	
+	    	if (asmdss.getNbOfValues() == -1)
+	    		throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdss.getValue());
+	
+	    	for(int i=0; i<asmdss.getNbOfValues(); i++) {
+	    		String tmp = asmdss.getValue(i);
+	    		if (tmp.isEmpty ())
+	    			throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdss.getValue());
+	
+	    		this.manageAttribute (tmp, _ab, aaos, tdp, asmdss, asmdss.getValue());
+	    	}
+	
+	    	if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ())
+	    		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal sending: " + asmdss.getValue() + " -> nb of parameters does not match definition");
+	
+	    	// Checking expressions passed as parameter
+	    	for (int i=0; i<aaos.getNbOfValues(); i++) {
+	    		String theVal = aaos.getValue(i);
+	    		if (atas.getListOfAttributes ().get (i).isInt ()) {
+	    			if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0)
+	    				throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition");
+	    		} else {
+	    			// We assume it is a bool attribute
+	    			if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0)
+	    				throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition");
+	    		}
+	    	}
+	    	
+	    	if (asmdss.getCheckLatency()){
+	    		aaos.setCheckLatency( true );
+	    		_as.checkedIDs.add(asmdss.getName()+"-"+ asmdss.getSignalName()+":"+aaos.getID());
+	    	}
         }
-
-        if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ())
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal sending: " + asmdss.getValue() + " -> nb of parameters does not match definition");
-
-        // Checking expressions passed as parameter
-        for (int i=0; i<aaos.getNbOfValues(); i++) {
-            String theVal = aaos.getValue(i);
-            if (atas.getListOfAttributes ().get (i).isInt ()) {
-                if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0)
-                    throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition");
-            } else {
-                // We assume it is a bool attribute
-                if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0)
-                    throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition");
-            }
+        else {
+        	element = new AvatarDummyState( name + ":" + atas.getName(), asmdss );
         }
 
-        this.listE.addCor (aaos, asmdss);
-        asmdss.setAVATARID (aaos.getID());
-		if (asmdss.getCheckLatency()){
-			aaos.setCheckLatency(true);
-			_as.checkedIDs.add(asmdss.getName()+"-"+ asmdss.getSignalName()+":"+aaos.getID());
-		}
-        asm.addElement (aaos);
+    	listE.addCor(element, asmdss);
+    	asmdss.setAVATARID (element.getID());
+    	asm.addElement(element);
     }
 
     private void translateAvatarSMDLibraryFunctionCall (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDLibraryFunctionCall asmdlfc) throws CheckingError {
@@ -1327,331 +1338,403 @@ public class AvatarDesignPanelTranslator {
             throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown library function '" + libraryFunction.getFunctionName () + "'");
 
         /* create Avatar representation of the function call */
-        AvatarLibraryFunctionCall alfc = new AvatarLibraryFunctionCall ("library_function_call", aLibraryFunction, asmdlfc);
-
-        /* Get the list of parameters passed to the function */
-        LinkedList<TAttribute> parameters = asmdlfc.getParameters ();
-        /* If the number of parameters does not match raise an error */
-        if (parameters.size () != libraryFunction.getParameters ().size ())
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getParameters ().size () + "parameters (" + parameters.size () + " provided)");
-
-        /* Loop through the parameters */
-        int i=0;
-        for (TAttribute ta: parameters) {
-            i ++;
-            /* If parameter has not be filled in raise an error */
-            if (ta == null)
-                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Missing parameter #" + i + " when calling library function " + libraryFunction.getFunctionName ());
-
-            /* Check if type of parameter matches what's expected */
-            TAttribute returnTA = libraryFunction.getParameters ().get (i-1);
-            if (!ta.hasSameType (returnTA))
-                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of parameter #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match");
-
-            /* Creates all the parameters corresponding to this parameter */
-            LinkedList<String> parameterNames = new LinkedList<String> ();
-            if (ta.getType() == TAttribute.INTEGER
-                || ta.getType() == TAttribute.NATURAL
-                || ta.getType() == TAttribute.BOOLEAN
-                || ta.getType() == TAttribute.TIMER)
-                parameterNames.add (ta.getId ());
-            else {
-                LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ());
-                if (types == null || types.isEmpty ())
-                    throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
-
-                for (TAttribute type: types)
-                    parameterNames.add (ta.getId () + "__" + type.getId ());
-            }
-
-            /* Add flattened parameters */
-            for (String parameterName: parameterNames) {
-                /* Try to get the corresponding attribute */
-                AvatarAttribute attr = _ab.getAvatarAttributeWithName (parameterName);
-                /* If it does not exist raise an error */
-                if (attr == null)
-                    throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Parameter '" + ta.getId () + "' passed when calling library function " + libraryFunction.getFunctionName () + " does not exist");
-                alfc.addParameter (attr);
-            }
+        final AvatarStateMachineElement element;
+        final String name = "library_function_call";
+
+        if ( asmdlfc.isEnabled() ) {
+	        /* create Avatar representation of the function call */
+        	element = new AvatarLibraryFunctionCall( name, aLibraryFunction, asmdlfc );
+        	AvatarLibraryFunctionCall alfc = (AvatarLibraryFunctionCall) element;
+//        AvatarLibraryFunctionCall alfc = new AvatarLibraryFunctionCall ("library_function_call", aLibraryFunction, asmdlfc);
+
+	        /* Get the list of parameters passed to the function */
+	        List<TAttribute> parameters = asmdlfc.getParameters ();
+	        /* If the number of parameters does not match raise an error */
+	        if (parameters.size () != libraryFunction.getParameters ().size ())
+	            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getParameters ().size () + "parameters (" + parameters.size () + " provided)");
+	
+	        /* Loop through the parameters */
+	        int i=0;
+	        for (TAttribute ta: parameters) {
+	            i ++;
+	            /* If parameter has not be filled in raise an error */
+	            if (ta == null)
+	                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Missing parameter #" + i + " when calling library function " + libraryFunction.getFunctionName ());
+	
+	            /* Check if type of parameter matches what's expected */
+	            TAttribute returnTA = libraryFunction.getParameters ().get (i-1);
+	            if (!ta.hasSameType (returnTA))
+	                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of parameter #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match");
+	
+	            /* Creates all the parameters corresponding to this parameter */
+	            List<String> parameterNames = new LinkedList<String> ();
+	            if (ta.getType() == TAttribute.INTEGER
+	                || ta.getType() == TAttribute.NATURAL
+	                || ta.getType() == TAttribute.BOOLEAN
+	                || ta.getType() == TAttribute.TIMER)
+	                parameterNames.add (ta.getId ());
+	            else {
+	                List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ());
+	                if (types == null || types.isEmpty ())
+	                    throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
+	
+	                for (TAttribute type: types)
+	                    parameterNames.add (ta.getId () + "__" + type.getId ());
+	            }
+	
+	            /* Add flattened parameters */
+	            for (String parameterName: parameterNames) {
+	                /* Try to get the corresponding attribute */
+	                AvatarAttribute attr = _ab.getAvatarAttributeWithName (parameterName);
+	                /* If it does not exist raise an error */
+	                if (attr == null)
+	                    throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Parameter '" + ta.getId () + "' passed when calling library function " + libraryFunction.getFunctionName () + " does not exist");
+	                alfc.addParameter (attr);
+	            }
+	        }
+	
+	        /* Get the list of signals mapped to the function's placeholders */
+	        List<ui.AvatarSignal> signals = asmdlfc.getSignals ();
+	        /* If the number of signals does not match raise an error */
+	        if (signals.size () != libraryFunction.getSignals ().size ())
+	            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getSignals ().size () + " signals (" + signals.size () + " mapped)");
+	
+	        /* Loop through the signals */
+	        i=0;
+	        for (ui.AvatarSignal uias: signals) {
+	            i ++;
+	            /* If signal has not be filled in raise an error */
+	            if (uias == null)
+	                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Missing mapping for signal #" + i + " when calling library function " + libraryFunction.getFunctionName ());
+	
+	            /* Check if prototype of signal matches what's expected */
+	            ui.AvatarSignal expectedSig = libraryFunction.getSignals ().get (i-1);
+	            if (!expectedSig.hasSamePrototype (uias))
+	                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Prototype of signal #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match");
+	
+	            /* Try to get the corresponding signal */
+	            avatartranslator.AvatarSignal sig = _ab.getAvatarSignalWithName (uias.getId ());
+	            /* If it does not exist raise an error */
+	            if (sig == null)
+	                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal '" + uias.getId () + "' mapped when calling library function " + libraryFunction.getFunctionName () + " does not exist");
+	            alfc.addSignal (sig);
+	        }
+	
+	        /* Get the list of return attributes passed to the function */
+	        List<TAttribute> returnAttributes = asmdlfc.getReturnAttributes ();
+	        /* If the number of return attributes is greater that what the function can return raise an error */
+	        if (returnAttributes.size () > libraryFunction.getReturnAttributes ().size ())
+	            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " can only return " + libraryFunction.getReturnAttributes ().size () + " values (" + returnAttributes.size () + " expected)");
+	
+	        /* Loop through the return attributes */
+	        i=0;
+	        for (TAttribute ta: returnAttributes) {
+	            List<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> ();
+	            /* If return attribute has not be filled in, add a dummy one */
+	            if (ta == null) {
+	                TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i);
+	                String dummyName = "__dummy_return_attribute_" + returnTA.getId ();
+	
+	                /* Creates all the attributes corresponding to this return attribute */
+	                if (returnTA.getType() == TAttribute.INTEGER
+	                    || returnTA.getType() == TAttribute.NATURAL
+	                    || returnTA.getType() == TAttribute.BOOLEAN
+	                    || returnTA.getType() == TAttribute.TIMER) {
+	                    AvatarAttribute attr = _ab.getAvatarAttributeWithName (dummyName);
+	                    if (attr == null) {
+	                        attr = this.createRegularAttribute (_ab, returnTA, "__dummy_return_attribute_");
+	                        _ab.addAttribute (attr);
+	                    }
+	                    attrs.add (attr);
+	                } else {
+	                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ());
+	                    if (types == null || types.isEmpty ())
+	                        throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
+	
+	                    for (TAttribute type: types) {
+	                        String attributeName = dummyName + "__" + type.getId ();
+	                        AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName);
+	                        if (attr == null) {
+	                            attr = this.createRegularAttribute (_ab, type, dummyName + "__");
+	                            _ab.addAttribute (attr);
+	                        }
+	                        attrs.add (attr);
+	                    }
+	                }
+	            } else {
+	                /* Check if type of return attribute matches what's expected */
+	                TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i);
+	                if (!ta.hasSameType (returnTA))
+	                    throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of return attribute #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not match");
+	
+	                /* Creates all the attributes corresponding to this return attribute */
+	                List<String> attributeNames = new LinkedList<String> ();
+	                if (ta.getType() == TAttribute.INTEGER
+	                    || ta.getType() == TAttribute.NATURAL
+	                    || ta.getType() == TAttribute.BOOLEAN
+	                    || ta.getType() == TAttribute.TIMER)
+	                    attributeNames.add (ta.getId ());
+	                else {
+	                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ());
+	                    if (types == null || types.isEmpty ())
+	                        throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
+	
+	                    for (TAttribute type: types)
+	                        attributeNames.add (ta.getId () + "__" + type.getId ());
+	                }
+	
+	                /* Add flattened parameters */
+	                for (String attributeName: attributeNames) {
+	                    AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName);
+	                    /* If a return attribute was given but we can't find the corresponding one raise an error */
+	                    if (attr == null)
+	                        throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Attribute '" + ta.getId () + "' expected to hold return value #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not exist");
+	                    attrs.add (attr);
+	                }
+	            }
+	
+	            for (AvatarAttribute attr: attrs)
+	                alfc.addReturnAttribute (attr);
+	            i ++;
+	        }
+	
+	        /* If there were missing return attributes, add dummies ones */
+	        for (; i<libraryFunction.getReturnAttributes ().size (); i++) {
+	            TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i);
+	            String dummyName = "__dummy_return_attribute_" + returnTA.getId ();
+	
+	            List<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> ();
+	            /* Creates all the attributes corresponding to this return attribute */
+	            if (returnTA.getType() == TAttribute.INTEGER
+	                || returnTA.getType() == TAttribute.NATURAL
+	                || returnTA.getType() == TAttribute.BOOLEAN
+	                || returnTA.getType() == TAttribute.TIMER) {
+	                AvatarAttribute attr = _ab.getAvatarAttributeWithName (dummyName);
+	                if (attr == null) {
+	                    attr = this.createRegularAttribute (_ab, returnTA, "__dummy_return_attribute_");
+	                    _ab.addAttribute (attr);
+	                }
+	                attrs.add (attr);
+	            } else {
+	                List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ());
+	                if (types == null || types.isEmpty ())
+	                    throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
+	
+	                for (TAttribute type: types) {
+	                    String attributeName = dummyName + "__" + type.getId ();
+	                    AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName);
+	                    if (attr == null) {
+	                        attr = this.createRegularAttribute (_ab, type, dummyName + "__");
+	                        _ab.addAttribute (attr);
+	                    }
+	                    attrs.add (attr);
+	                }
+	            }
+	
+	            for (AvatarAttribute attr: attrs)
+	                alfc.addReturnAttribute (attr);
+	        }
         }
-
-        /* Get the list of signals mapped to the function's placeholders */
-        LinkedList<ui.AvatarSignal> signals = asmdlfc.getSignals ();
-        /* If the number of signals does not match raise an error */
-        if (signals.size () != libraryFunction.getSignals ().size ())
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getSignals ().size () + " signals (" + signals.size () + " mapped)");
-
-        /* Loop through the signals */
-        i=0;
-        for (ui.AvatarSignal uias: signals) {
-            i ++;
-            /* If signal has not be filled in raise an error */
-            if (uias == null)
-                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Missing mapping for signal #" + i + " when calling library function " + libraryFunction.getFunctionName ());
-
-            /* Check if prototype of signal matches what's expected */
-            ui.AvatarSignal expectedSig = libraryFunction.getSignals ().get (i-1);
-            if (!expectedSig.hasSamePrototype (uias))
-                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Prototype of signal #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match");
-
-            /* Try to get the corresponding signal */
-            avatartranslator.AvatarSignal sig = _ab.getAvatarSignalWithName (uias.getId ());
-            /* If it does not exist raise an error */
-            if (sig == null)
-                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal '" + uias.getId () + "' mapped when calling library function " + libraryFunction.getFunctionName () + " does not exist");
-            alfc.addSignal (sig);
-        }
-
-        /* Get the list of return attributes passed to the function */
-        LinkedList<TAttribute> returnAttributes = asmdlfc.getReturnAttributes ();
-        /* If the number of return attributes is greater that what the function can return raise an error */
-        if (returnAttributes.size () > libraryFunction.getReturnAttributes ().size ())
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " can only return " + libraryFunction.getReturnAttributes ().size () + " values (" + returnAttributes.size () + " expected)");
-
-        /* Loop through the return attributes */
-        i=0;
-        for (TAttribute ta: returnAttributes) {
-            LinkedList<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> ();
-            /* If return attribute has not be filled in, add a dummy one */
-            if (ta == null) {
-                TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i);
-                String dummyName = "__dummy_return_attribute_" + returnTA.getId ();
-
-                /* Creates all the attributes corresponding to this return attribute */
-                if (returnTA.getType() == TAttribute.INTEGER
-                    || returnTA.getType() == TAttribute.NATURAL
-                    || returnTA.getType() == TAttribute.BOOLEAN
-                    || returnTA.getType() == TAttribute.TIMER) {
-                    AvatarAttribute attr = _ab.getAvatarAttributeWithName (dummyName);
-                    if (attr == null) {
-                        attr = this.createRegularAttribute (_ab, returnTA, "__dummy_return_attribute_");
-                        _ab.addAttribute (attr);
-                    }
-                    attrs.add (attr);
-                } else {
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ());
-                    if (types == null || types.isEmpty ())
-                        throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
-
-                    for (TAttribute type: types) {
-                        String attributeName = dummyName + "__" + type.getId ();
-                        AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName);
-                        if (attr == null) {
-                            attr = this.createRegularAttribute (_ab, type, dummyName + "__");
-                            _ab.addAttribute (attr);
-                        }
-                        attrs.add (attr);
-                    }
-                }
-            } else {
-                /* Check if type of return attribute matches what's expected */
-                TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i);
-                if (!ta.hasSameType (returnTA))
-                    throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of return attribute #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not match");
-
-                /* Creates all the attributes corresponding to this return attribute */
-                LinkedList<String> attributeNames = new LinkedList<String> ();
-                if (ta.getType() == TAttribute.INTEGER
-                    || ta.getType() == TAttribute.NATURAL
-                    || ta.getType() == TAttribute.BOOLEAN
-                    || ta.getType() == TAttribute.TIMER)
-                    attributeNames.add (ta.getId ());
-                else {
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ());
-                    if (types == null || types.isEmpty ())
-                        throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
-
-                    for (TAttribute type: types)
-                        attributeNames.add (ta.getId () + "__" + type.getId ());
-                }
-
-                /* Add flattened parameters */
-                for (String attributeName: attributeNames) {
-                    AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName);
-                    /* If a return attribute was given but we can't find the corresponding one raise an error */
-                    if (attr == null)
-                        throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Attribute '" + ta.getId () + "' expected to hold return value #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not exist");
-                    attrs.add (attr);
-                }
-            }
-
-            for (AvatarAttribute attr: attrs)
-                alfc.addReturnAttribute (attr);
-            i ++;
-        }
-
-        /* If there were missing return attributes, add dummies ones */
-        for (; i<libraryFunction.getReturnAttributes ().size (); i++) {
-            TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i);
-            String dummyName = "__dummy_return_attribute_" + returnTA.getId ();
-
-            LinkedList<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> ();
-            /* Creates all the attributes corresponding to this return attribute */
-            if (returnTA.getType() == TAttribute.INTEGER
-                || returnTA.getType() == TAttribute.NATURAL
-                || returnTA.getType() == TAttribute.BOOLEAN
-                || returnTA.getType() == TAttribute.TIMER) {
-                AvatarAttribute attr = _ab.getAvatarAttributeWithName (dummyName);
-                if (attr == null) {
-                    attr = this.createRegularAttribute (_ab, returnTA, "__dummy_return_attribute_");
-                    _ab.addAttribute (attr);
-                }
-                attrs.add (attr);
-            } else {
-                LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ());
-                if (types == null || types.isEmpty ())
-                    throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
-
-                for (TAttribute type: types) {
-                    String attributeName = dummyName + "__" + type.getId ();
-                    AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName);
-                    if (attr == null) {
-                        attr = this.createRegularAttribute (_ab, type, dummyName + "__");
-                        _ab.addAttribute (attr);
-                    }
-                    attrs.add (attr);
-                }
-            }
-
-            for (AvatarAttribute attr: attrs)
-                alfc.addReturnAttribute (attr);
+        else {
+        	element = new AvatarDummyState( name + ":" + aLibraryFunction.getName(), asmdlfc );
         }
 
-        this.listE.addCor (alfc, asmdlfc);
-        asmdlfc.setAVATARID (alfc.getID());
-        asm.addElement (alfc);
+        listE.addCor( element, asmdlfc );
+        asmdlfc.setAVATARID( element.getID() );
+        asm.addElement( element );
     }
 
-
     private void translateAvatarSMDReceiveSignal (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDReceiveSignal asmdrs) throws CheckingError {
-        AvatarStateMachine asm = _ab.getStateMachine ();
-        avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdrs.getSignalName ());
-        if (atas == null)
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdrs.getSignalName());
-
-        // Get relation of that signal
-        if (_ab instanceof AvatarBlock) {
-            // Note that for library functions, signals are just placeholders so they don't need to be connected to anything
-            AvatarRelation ar = _as.getAvatarRelationWithSignal (atas);
-            if (ar == null) {
-		if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-		    //TraceManager.addDev("Receive/ Setting as attached " + atas);
-		    ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false;
-		}
-                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for receiving in " + asmdrs.getValue() + " is not connected to a channel");
-	    }
-	    if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-		//TraceManager.addDev("Receive/ Setting as attached " + atas);
-		((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
-	    }
-        }
-	if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-	    ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
-	}
-	
-        AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdrs);
-        if (asmdrs.hasCheckableAccessibility())
-            aaos.setCheckable();
-
-        if (asmdrs.hasCheckedAccessibility())
-            aaos.setChecked();
-
-        if (aaos.isSending())
-            throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A sending signal is used for receiving: " + asmdrs.getValue());
-
-        if (asmdrs.getNbOfValues() == -1)
-            throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdrs.getValue());
-
-        for(int i=0; i<asmdrs.getNbOfValues(); i++) {
-            String tmp = asmdrs.getValue(i);
-            if (tmp.isEmpty ())
-                throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdrs.getValue());
+    	AvatarStateMachine asm = _ab.getStateMachine ();
+    	avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdrs.getSignalName ());
+    	if (atas == null)
+    		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdrs.getSignalName());
+
+    	// Get relation of that signal
+    	if (_ab instanceof AvatarBlock) {
+    		// Note that for library functions, signals are just placeholders so they don't need to be connected to anything
+    		AvatarRelation ar = _as.getAvatarRelationWithSignal (atas);
+    		if (ar == null) {
+    			if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    				//TraceManager.addDev("Receive/ Setting as attached " + atas);
+    				((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false;
+    			}
+    			throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for receiving in " + asmdrs.getValue() + " is not connected to a channel");
+    		}
+    		if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    			//TraceManager.addDev("Receive/ Setting as attached " + atas);
+    			((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
+    		}
+    	}
+    	if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    		((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
+    	}
+        
+    	final AvatarStateMachineElement element;
+        final String name = "action_on_signal";
+        
+        if ( asmdrs.isEnabled() ) {
+        	element = new AvatarActionOnSignal( name, atas, asmdrs );
+        	
+        	final AvatarActionOnSignal aaos = (AvatarActionOnSignal) element;
 
-            this.manageAttribute (tmp, _ab, aaos, tdp, asmdrs, asmdrs.getValue());
+	    	if (asmdrs.hasCheckableAccessibility())
+	    		aaos.setCheckable();
+	
+	    	if (asmdrs.hasCheckedAccessibility())
+	    		aaos.setChecked();
+	
+	    	if (aaos.isSending())
+	    		throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A sending signal is used for receiving: " + asmdrs.getValue());
+	
+	    	if (asmdrs.getNbOfValues() == -1)
+	    		throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdrs.getValue());
+	
+	    	for(int i=0; i<asmdrs.getNbOfValues(); i++) {
+	    		String tmp = asmdrs.getValue(i);
+	    		if (tmp.isEmpty ())
+	    			throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdrs.getValue());
+	
+	    		this.manageAttribute (tmp, _ab, aaos, tdp, asmdrs, asmdrs.getValue());
+	    	}
+	
+	    	if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ())
+	    		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> nb of parameters does not match definition");
+	
+	    	// Checking expressions passed as parameter
+	    	for (int i=0; i<aaos.getNbOfValues(); i++) {
+	    		String theVal = aaos.getValue(i);
+	    		if (atas.getListOfAttributes ().get (i).isInt ()) {
+	    			if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0)
+	    				throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition");
+	    		} else {
+	    			// We assume it is a bool attribute
+	    			if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0)
+	    				throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition");
+	    		}
+	    	}
+
+	    	if (asmdrs.getCheckLatency()){
+	    		aaos.setCheckLatency(true);
+	    		_as.checkedIDs.add(asmdrs.getName()+"-"+asmdrs.getSignalName()+":"+aaos.getID());
+	    	}
         }
-
-        if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ())
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> nb of parameters does not match definition");
-
-        // Checking expressions passed as parameter
-        for (int i=0; i<aaos.getNbOfValues(); i++) {
-            String theVal = aaos.getValue(i);
-            if (atas.getListOfAttributes ().get (i).isInt ()) {
-                if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0)
-                    throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition");
-            } else {
-                // We assume it is a bool attribute
-                if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0)
-                    throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition");
-            }
+        else {
+        	element = new AvatarDummyState( name + ":" + atas.getName(), asmdrs );
         }
 
-        this.listE.addCor (aaos, asmdrs);
-        asmdrs.setAVATARID (aaos.getID());
-        asm.addElement (aaos);
-		if (asmdrs.getCheckLatency()){
-			aaos.setCheckLatency(true);
-			_as.checkedIDs.add(asmdrs.getName()+"-"+asmdrs.getSignalName()+":"+aaos.getID());
-		}
+        this.listE.addCor( element, asmdrs );
+        asmdrs.setAVATARID( element.getID() );
+        asm.addElement( element );
     }
 
     private void translateAvatarSMDState (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDState tgc) throws CheckingError {
-        AvatarStateMachine asm = _ab.getStateMachine ();
-        AvatarState astate = asm.getStateWithName(tgc.getValue());
-        if (astate == null) {
-            astate = new AvatarState (tgc.getValue(), tgc);
-            astate.setAsVerifiable(true);
-            asm.addElement (astate);
-        }
+        AvatarStateMachine stateMachine = _ab.getStateMachine ();
+        AvatarStateElement stateElement = createState( stateMachine, tgc );
+        //AvatarState astate = asm.getStateWithName(tgc.getValue());
+//        if (astate == null) {
+//            astate = new AvatarState (tgc.getValue(), tgc);
+//            astate.setAsVerifiable(true);
+//            asm.addElement (astate);
+//        }
 
         if (tgc.hasCheckableAccessibility ())
-            astate.setCheckable ();
+        	stateElement.setCheckable ();
 
         if (tgc.hasCheckedAccessibility())
-            astate.setChecked();
-
-        // Executable code
-        astate.addEntryCode(tgc.getEntryCode());
+        	stateElement.setChecked();
+    	
+        // Issue #69
+    	if ( tgc.isEnabled() ) {
+       		final AvatarState state =  (AvatarState) stateElement;
+
+	        // Executable code
+       		state.addEntryCode(tgc.getEntryCode());
+	
+			if (tgc.getCheckLatency()){
+				state.setCheckLatency(true);
+				_as.checkedIDs.add(tgc.getName()+"-"+tgc.getValue()+":"+state.getID());
+			}
+    	}
 
-        this.listE.addCor (astate, tgc);
-        astate.addReferenceObject (tgc);
-        tgc.setAVATARID (astate.getID());
-		if (tgc.getCheckLatency()){
-			astate.setCheckLatency(true);
-			_as.checkedIDs.add(tgc.getName()+"-"+tgc.getValue()+":"+astate.getID());
-		}
+    	listE.addCor(stateElement, tgc);
+    	stateElement.addReferenceObject (tgc);
+        tgc.setAVATARID(stateElement.getID());
+    }
+    
+    private AvatarStateElement createState( final AvatarStateMachine stateMachine,
+    										final AvatarSMDState diagramState ) {
+    	AvatarStateElement stateElement = stateMachine.getStateWithName( diagramState.getValue() );
+        
+        if ( stateElement == null ) {
+        	final String name = diagramState.getValue();
+        	
+        	// Issue #69
+        	if ( diagramState.isEnabled() ) {
+        		stateElement = new AvatarState( name, diagramState );
+                stateElement.setAsVerifiable( true );
+        	}
+        	else {
+        		if ( diagramState.getOutputConnectors().isEmpty() ) {
+        			stateElement = new AvatarStopState( name + "_state_converted_to_stop", diagramState );
+        		}
+        		else {
+        			stateElement = new AvatarDummyState( name, diagramState );
+        		}
+        	}
+        	
+            stateMachine.addElement( stateElement );
+        }
+        
+        return stateElement;
     }
 
     private void translateAvatarSMDRandom (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDRandom asmdrand) throws CheckingError {
         AvatarStateMachine asm = _ab.getStateMachine ();
-        AvatarRandom arandom = new AvatarRandom ("random", asmdrand);
-        String tmp1 = modifyString (asmdrand.getMinValue());
-        int error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp1);
-        if (error < 0)
-            this.makeError (error, tdp, _ab, asmdrand, "min value of random", tmp1);
-
-        String tmp2 = modifyString(asmdrand.getMaxValue());
-        error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2);
-        if (error < 0)
-            this.makeError (error, tdp, _ab, asmdrand, "max value of random", tmp2);
 
-        arandom.setValues (tmp1, tmp2);
-        arandom.setFunctionId (asmdrand.getFunctionId());
+        final AvatarStateMachineElement element;
+        final String name = "random";
+        
+        if ( asmdrand.isEnabled() ) {
+        	element = new AvatarRandom( name, asmdrand );
+        	
+        	final AvatarRandom arandom =  (AvatarRandom) element;
 
-        tmp1 = modifyString(asmdrand.getVariable());
-        AvatarAttribute aa = _ab.getAvatarAttributeWithName (tmp1);
+        	String tmp1 = modifyString (asmdrand.getMinValue());
+        	int error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp1);
+        
+        	if (error < 0) {
+        		makeError (error, tdp, _ab, asmdrand, "min value of random", tmp1);
+        	}
 
-        if (aa == null)
-            this.makeError (-3, tdp, _ab, asmdrand, "random", tmp1);
-        // Checking type of variable -> must be an int
-        else if (!(aa.isInt()))
-            this.makeError (error, tdp, _ab, asmdrand, ": variable of random must be of type \"int\"", tmp2);
+        	String tmp2 = modifyString(asmdrand.getMaxValue());
+        	error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2);
+        	
+        	if (error < 0) {
+        		makeError (error, tdp, _ab, asmdrand, "max value of random", tmp2);
+        	}
 
-        arandom.setVariable (tmp1);
+	        arandom.setValues (tmp1, tmp2);
+	        arandom.setFunctionId (asmdrand.getFunctionId());
+	
+	        tmp1 = modifyString(asmdrand.getVariable());
+	        AvatarAttribute aa = _ab.getAvatarAttributeWithName (tmp1);
+	
+	        if (aa == null)
+	            this.makeError (-3, tdp, _ab, asmdrand, "random", tmp1);
+	        // Checking type of variable -> must be an int
+	        else if (!(aa.isInt()))
+	            this.makeError (error, tdp, _ab, asmdrand, ": variable of random must be of type \"int\"", tmp2);
+	
+	        arandom.setVariable(tmp1);
+        }
+        else {
+        	element = new AvatarDummyState( name, asmdrand );
+        }
 
-        asm.addElement (arandom);
-        listE.addCor (arandom, asmdrand);
-        asmdrand.setAVATARID (arandom.getID());
+        asm.addElement (element);
+        listE.addCor( element, asmdrand );
+        asmdrand.setAVATARID( element.getID() );
     }
 
     private void translateAvatarSMDSetTimer (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDSetTimer asmdst) throws CheckingError {
@@ -1669,12 +1752,23 @@ public class AvatarDesignPanelTranslator {
         if (error < 0)
             this.makeError(error, tdp, _ab, asmdst, "value of the timer setting", tmp);
 
-        AvatarSetTimer asettimer = new AvatarSetTimer("settimer__" + aa.getName(), asmdst);
-        asettimer.setTimer (aa);
-        asettimer.setTimerValue (tmp);
-        asm.addElement (asettimer);
-        this.listE.addCor (asettimer, asmdst);
-        asmdst.setAVATARID (asettimer.getID());
+        final AvatarStateMachineElement element;
+        final String name = "settimer__" + aa.getName();
+        
+        if ( asmdst.isEnabled() ) {
+        	element = new AvatarSetTimer( name, asmdst );
+        	
+        	final AvatarSetTimer asettimer = (AvatarSetTimer) element;
+	        asettimer.setTimer( aa );
+	        asettimer.setTimerValue( tmp );
+        }
+        else {
+        	element = new AvatarDummyState( name, asmdst );
+        }
+
+        asm.addElement(element);
+        listE.addCor(element, asmdst);
+        asmdst.setAVATARID(element.getID());
     }
 
     private void translateAvatarSMDResetTimer (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDResetTimer asmdrt) throws CheckingError {
@@ -1687,11 +1781,20 @@ public class AvatarDesignPanelTranslator {
         if (aa.getType() != AvatarType.TIMER)
             throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + tmp + " in timer reset: shall be a parameter of type \"Timer\"");
 
-        AvatarResetTimer aresettimer = new AvatarResetTimer("resettimer__" + aa.getName(), asmdrt);
-        aresettimer.setTimer (aa);
-        asm.addElement(aresettimer);
-        this.listE.addCor (aresettimer, asmdrt);
-        asmdrt.setAVATARID (aresettimer.getID());
+        final AvatarStateMachineElement element;
+        final String name = "resettimer__" + aa.getName();
+        
+        if ( asmdrt.isEnabled() ) {
+        	element= new AvatarResetTimer( name, asmdrt );
+        	( (AvatarResetTimer) element ).setTimer( aa );
+        }
+        else {
+        	element = new AvatarDummyState( name, asmdrt );
+        }
+        
+        asm.addElement( element );
+        listE.addCor( element, asmdrt );
+        asmdrt.setAVATARID( element.getID() );
     }
 
     private void translateAvatarSMDExpireTimer (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDExpireTimer asmdet) throws CheckingError {
@@ -1704,14 +1807,178 @@ public class AvatarDesignPanelTranslator {
         if (aa.getType() != AvatarType.TIMER)
             throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + tmp + " in timer expiration: shall be a parameter of type \"Timer\"");
 
-        AvatarExpireTimer aexpiretimer = new AvatarExpireTimer("expiretimer__" + aa.getName(), asmdet);
-        aexpiretimer.setTimer(aa);
-        asm.addElement(aexpiretimer);
-        this.listE.addCor(aexpiretimer, asmdet);
-        asmdet.setAVATARID(aexpiretimer.getID());
+        final AvatarStateMachineElement avatarElement;
+        final String name = "expiretimer__" + aa.getName();
+        
+        if ( asmdet.isEnabled() ) {
+        	avatarElement = new AvatarExpireTimer( name, asmdet );
+            ( ( AvatarExpireTimer) avatarElement ).setTimer(aa);
+        }
+        else {
+        	avatarElement = new AvatarDummyState( name, asmdet );
+        }
+
+        asm.addElement( avatarElement );
+        this.listE.addCor( avatarElement, asmdet );
+        asmdet.setAVATARID( avatarElement.getID() );
+//        AvatarExpireTimer aexpiretimer = new AvatarExpireTimer("expiretimer__" + aa.getName(), asmdet);
+//        aexpiretimer.setTimer(aa);
+//        asm.addElement(aexpiretimer);
+//        this.listE.addCor(aexpiretimer, asmdet);
+//        asmdet.setAVATARID(aexpiretimer.getID());
     }
+    
+    private void createGuard( 	final AvatarTransition transition,
+    							final AvatarSMDConnector connector ) {
+    	final AvatarStateMachineOwner block = transition.getBlock();
+    	final String guardStr = modifyString( connector.getEffectiveGuard() );
+        final AvatarGuard guard = AvatarGuard.createFromString( block, guardStr );
+        final int error;
+        
+        if ( guard.isElseGuard() ) {
+        	error = 0;
+        }
+        else {
+        	error = AvatarSyntaxChecker.isAValidGuard( block.getAvatarSpecification(), block, guardStr );
+        }
+        
+        if ( error < 0 ) {
+            makeError( error, connector.tdp, block, connector, "transition guard", guardStr );
+        }
+        else {
+        	transition.setGuard( guard );
+        }
+    }
+    
+    private void createAfterDelay( 	final AvatarTransition transition,
+	    							final AvatarSMDConnector connector ) {
+    	final AvatarStateMachineOwner block = transition.getBlock();
+    	final AvatarSpecification spec = block.getAvatarSpecification();
+    	
+    	String afterMinDelayStr = modifyString( connector.getEffectiveAfterMinDelay() );
+        int error = AvatarSyntaxChecker.isAValidIntExpr( spec, block, afterMinDelayStr );
+        
+        if ( error < 0 ) {
+            makeError( error, connector.tdp, block, connector, "after min delay", afterMinDelayStr );
+            afterMinDelayStr = null;
+        }
+        
+    	String afterMaxDelayStr = modifyString( connector.getEffectiveAfterMaxDelay() );
+        error = AvatarSyntaxChecker.isAValidIntExpr( spec, block, afterMaxDelayStr );
+        
+        if ( error < 0 ) {
+            makeError(error, connector.tdp, block, connector, "after max delay", afterMaxDelayStr );
+            afterMaxDelayStr = null;
+        }
+
+        if ( afterMinDelayStr != null && afterMaxDelayStr != null ) {
+        	transition.setDelays( afterMinDelayStr, afterMaxDelayStr );
+        }
+    }
+    
+    private void createComputeDelay( 	final AvatarTransition transition,
+		    							final AvatarSMDConnector connector ) {
+    	final AvatarStateMachineOwner block = transition.getBlock();
+    	final AvatarSpecification spec = block.getAvatarSpecification();
+
+    	String computeMinDelayStr = modifyString( connector.getEffectiveComputeMinDelay() );
+    	int error = AvatarSyntaxChecker.isAValidIntExpr( spec, block, computeMinDelayStr );
+        
+        if (error < 0) {
+            makeError( error, connector.tdp, block, connector, "compute min ", computeMinDelayStr );
+            computeMinDelayStr = null;
+        }
+        
+    	String computeMaxDelayStr = modifyString( connector.getEffectiveComputeMaxDelay() );
+        error = AvatarSyntaxChecker.isAValidIntExpr( spec, block, computeMaxDelayStr );
+        
+        if (error < 0) {
+            makeError( error, connector.tdp, block, connector, "compute max ", computeMaxDelayStr );
+            computeMaxDelayStr = null;
+        }
 
-    public void makeStateMachine (AvatarSpecification _as, AvatarStateMachineOwner _ab) {
+        if ( computeMinDelayStr != null && computeMaxDelayStr != null) {
+        	transition.setComputes( computeMinDelayStr, computeMaxDelayStr );
+        }
+    }
+    
+    private void createProbability( final AvatarTransition transition,
+    								final AvatarSMDConnector connector ) {
+    	final AvatarStateMachineOwner block = transition.getBlock();
+    	final AvatarSpecification spec = block.getAvatarSpecification();
+    	final String probabilityStr = modifyString( connector.getEffectiveProbability() );
+        final int error = AvatarSyntaxChecker.isAValidProbabilityExpr( spec, block, probabilityStr );
+        
+        if ( error < 0 ) {
+            makeError( error, connector.tdp, block, connector, "probability ", probabilityStr );
+        }
+
+        if ( probabilityStr != null && !probabilityStr.isEmpty() ) {
+        	transition.setProbability( Double.parseDouble( probabilityStr ) );
+        }
+    }
+    
+    private void createActions( final AvatarTransition transition,
+					    		final AvatarSMDConnector connector ) {
+    	final AvatarStateMachineOwner block = transition.getBlock();
+    	int error = 0;
+
+    	for( String actionText : connector.getEffectiveActions() ) {
+    		if ( actionText.trim().length() > 0 ) {
+    			actionText = modifyString( actionText.trim() );
+
+    			// Variable assignment or method call?
+    			if ( !isAVariableAssignation( actionText ) ) {
+    				// Method call
+    				int index2 = actionText.indexOf( ";" );
+
+    				if ( index2 != -1 ) {
+    					makeError( error, connector.tdp, block, connector, "transition action", actionText );
+    				}
+
+    				actionText = modifyStringMethodCall( actionText, block.getName() );
+
+    				if ( !AvatarBlock.isAValidMethodCall( block, actionText ) ) {
+    					UICheckingError ce = new UICheckingError( CheckingError.BEHAVIOR_ERROR, "Badly formed transition method call: " + actionText );
+    					// TODO: adapt
+    					// ce.setAvatarBlock(_ab);
+    					ce.setTDiagramPanel( connector.tdp );
+    					ce.setTGComponent( connector );
+    					addCheckingError(ce);
+    				}
+    				else {
+    					transition.addAction( actionText );
+    				}
+    			}
+    			else {
+    				// Variable assignment
+    				error = AvatarSyntaxChecker.isAValidVariableExpr( block.getAvatarSpecification(), block, actionText);
+
+    				if ( error < 0 ) {
+    					makeError( error, connector.tdp, block, connector, "transition action", actionText );
+    				}
+    				else {
+    					transition.addAction( actionText );
+    				}
+    			}
+    		}
+    	}
+    }
+    
+    private void createTransitionInfo( 	final AvatarTransition transition,
+    									final AvatarSMDConnector connector ) {
+        createGuard( transition,connector );
+
+        createAfterDelay( transition, connector);
+
+        createComputeDelay( transition, connector );
+        
+        createProbability( transition, connector );
+
+        createActions( transition, connector );
+    }
+
+    private void makeStateMachine (AvatarSpecification _as, AvatarStateMachineOwner _ab) {
         AvatarBDStateMachineOwner block = (AvatarBDStateMachineOwner) listE.getTG (_ab);
         AvatarStateMachine asm = _ab.getStateMachine ();
 
@@ -1732,7 +1999,7 @@ public class AvatarDesignPanelTranslator {
 
         int size = checkingErrors.size();
 
-        TDiagramPanel tdp = asmdp;
+        //TDiagramPanel tdp = asmdp;
 
         // search for start state
         AvatarSMDStartState tss = null;
@@ -1742,7 +2009,7 @@ public class AvatarDesignPanelTranslator {
                     tss = (AvatarSMDStartState) tgc;
                 else {
                     UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in the state machine diagram of " + name);
-                    ce.setTDiagramPanel(tdp);
+                    ce.setTDiagramPanel( asmdp );
                     addCheckingError(ce);
                     return;
                 }
@@ -1750,7 +2017,7 @@ public class AvatarDesignPanelTranslator {
 
         if (tss == null) {
             UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "No start state in the state machine diagram of " + name);
-            ce.setTDiagramPanel(tdp);
+            ce.setTDiagramPanel( asmdp );
             addCheckingError(ce);
             return;
         }
@@ -1758,27 +2025,32 @@ public class AvatarDesignPanelTranslator {
         // This shall also be true for all composite state: at most one start state!
         if (checkForStartStateOfCompositeStates (asmdp) != null) {
             UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in composite state");
-            ce.setTDiagramPanel(tdp);
+            ce.setTDiagramPanel( asmdp );
             addCheckingError(ce);
             return;
         }
 
         int choiceID = 0;
         // First pass: creating AVATAR components, but no interconnection between them
-        for (TGComponent tgc: asmdp.getAllComponentList ())
+    	// Issue #69:
+        final FindAvatarSMDComponentsToBeTranslatedVisitor componentsToBeTranslatedVisitor = new FindAvatarSMDComponentsToBeTranslatedVisitor();
+        tss.acceptForward( componentsToBeTranslatedVisitor );
+        final Set<TGComponent> componentsToBeTranslated = componentsToBeTranslatedVisitor.getComponentsToBeTranslated();
+
+        for (TGComponent tgc: componentsToBeTranslated/*asmdp.getAllComponentList ()*/)
             try {
                 // Receive signal
                 if (tgc instanceof AvatarSMDReceiveSignal)
-                    this.translateAvatarSMDReceiveSignal (tdp, _as, _ab, (AvatarSMDReceiveSignal) tgc);
+                    this.translateAvatarSMDReceiveSignal ( asmdp, _as, _ab, (AvatarSMDReceiveSignal) tgc);
                 // Send signals
                 else if (tgc instanceof AvatarSMDSendSignal)
-                    this.translateAvatarSMDSendSignal (tdp, _as, _ab, (AvatarSMDSendSignal) tgc);
+                    this.translateAvatarSMDSendSignal ( asmdp, _as, _ab, (AvatarSMDSendSignal) tgc);
                 // Library Function Call
                 else if (tgc instanceof AvatarSMDLibraryFunctionCall)
-                    this.translateAvatarSMDLibraryFunctionCall (tdp, _as, _ab, (AvatarSMDLibraryFunctionCall) tgc);
+                    this.translateAvatarSMDLibraryFunctionCall ( asmdp, _as, _ab, (AvatarSMDLibraryFunctionCall) tgc);
                 // State
                 else if (tgc instanceof AvatarSMDState)
-                    this.translateAvatarSMDState (tdp, _as, _ab, (AvatarSMDState) tgc);
+                    this.translateAvatarSMDState ( asmdp, _as, _ab, (AvatarSMDState) tgc);
                 // Choice
                 else if (tgc instanceof AvatarSMDChoice) {
                     AvatarState astate = new AvatarState ("choice__" + choiceID, tgc);
@@ -1789,16 +2061,16 @@ public class AvatarDesignPanelTranslator {
                 }
                 // Random
                 else if (tgc instanceof AvatarSMDRandom)
-                    this.translateAvatarSMDRandom (tdp, _as, _ab, (AvatarSMDRandom) tgc);
+                    this.translateAvatarSMDRandom ( asmdp, _as, _ab, (AvatarSMDRandom) tgc);
                 // Set timer
                 else if (tgc instanceof AvatarSMDSetTimer)
-                    this.translateAvatarSMDSetTimer (tdp, _as, _ab, (AvatarSMDSetTimer) tgc);
+                    this.translateAvatarSMDSetTimer ( asmdp, _as, _ab, (AvatarSMDSetTimer) tgc);
                 // Reset timer
                 else if (tgc instanceof AvatarSMDResetTimer)
-                    this.translateAvatarSMDResetTimer (tdp, _as, _ab, (AvatarSMDResetTimer) tgc);
+                    this.translateAvatarSMDResetTimer ( asmdp, _as, _ab, (AvatarSMDResetTimer) tgc);
                 // Expire timer
                 else if (tgc instanceof AvatarSMDExpireTimer)
-                    this.translateAvatarSMDExpireTimer (tdp, _as, _ab, (AvatarSMDExpireTimer) tgc);
+                    this.translateAvatarSMDExpireTimer ( asmdp, _as, _ab, (AvatarSMDExpireTimer) tgc);
                 // Start state
                 else if (tgc instanceof AvatarSMDStartState) {
                     AvatarStartState astart = new AvatarStartState("start", tgc);
@@ -1820,7 +2092,7 @@ public class AvatarDesignPanelTranslator {
                 // TODO: adapt
                 // ce.setAvatarBlock (_ab);
                 UICheckingError uice = new UICheckingError(ce);
-                uice.setTDiagramPanel (tdp);
+                uice.setTDiagramPanel ( asmdp );
                 uice.setTGComponent (tgc);
                 uice.addMessagePrefix ("State Machine of " + name + ": ");
                 this.addCheckingError (uice);
@@ -1833,152 +2105,184 @@ public class AvatarDesignPanelTranslator {
         asm.removeAllInternalStartStates();
 
         // Make hierachy between states and elements
-        for (TGComponent tgc: asmdp.getAllComponentList ())
+        for (TGComponent tgc: componentsToBeTranslated/*asmdp.getAllComponentList ()*/) {
             if (tgc != null && tgc.getFather() != null) {
                 AvatarStateMachineElement element1 = (AvatarStateMachineElement)(listE.getObject(tgc));
                 AvatarStateMachineElement element2 = (AvatarStateMachineElement)(listE.getObject(tgc.getFather()));
-                if (element1 != null && element2 != null && element2 instanceof AvatarState)
+                
+                if (element1 != null && /*element2 != null && */element2 instanceof AvatarState) {
                     element1.setState ((AvatarState) element2);
+                }
             }
+        }
 
         // Make next: handle transitions
-        for (TGComponent tgc: asmdp.getAllComponentList ())
-            if (tgc instanceof AvatarSMDConnector) {
-                AvatarSMDConnector asmdco = (AvatarSMDConnector) tgc;
-                TGComponent tgc1 = tdp.getComponentToWhichBelongs (asmdco.getTGConnectingPointP1());
-                TGComponent tgc2 = tdp.getComponentToWhichBelongs (asmdco.getTGConnectingPointP2());
-                if (tgc1 == null || tgc2 == null)
-                    TraceManager.addDev("Tgcs null in Avatar translation");
-                else {
-                    AvatarStateMachineElement element1 = (AvatarStateMachineElement)(listE.getObject(tgc1));
-                    AvatarStateMachineElement element2 = (AvatarStateMachineElement)(listE.getObject(tgc2));
-                    if (element1 != null && element2 != null) {
-                        AvatarTransition at = new AvatarTransition (_ab, "avatar transition", tgc);
-
-                        // Guard
-                        String tmp = modifyString (asmdco.getGuard());
-                        AvatarGuard guard = AvatarGuard.createFromString (_ab, tmp);
-                        if (guard.isElseGuard())
-                            at.setGuard(guard);
-                        else {
-                            int error = AvatarSyntaxChecker.isAValidGuard (_as, _ab, tmp);
-                            if (error < 0)
-                                this.makeError (error, tdp, _ab, tgc, "transition guard", tmp);
-                            else
-                                at.setGuard (guard);
-                        }
-
-                        // Delays
-                        String tmp1 = modifyString (asmdco.getAfterMinDelay ());
-                        int error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1);
-                        if (error < 0) {
-                            this.makeError (error, tdp, _ab, tgc, "after min delay", tmp1);
-                            tmp1 = null;
-                        }
-                        String tmp2 = modifyString (asmdco.getAfterMaxDelay ());
-                        error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp2);
-                        if (error < 0) {
-                            this.makeError(error, tdp, _ab, tgc, "after max delay", tmp2);
-                            tmp2 = null;
-                        }
-
-                        if (tmp1 != null && tmp2 != null)
-                            at.setDelays(tmp1, tmp2);
-
-                        // Compute min and max
-                        tmp1 = modifyString (asmdco.getComputeMinDelay ());
-                        error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1);
-                        if (error < 0) {
-                            this.makeError (error, tdp, _ab, tgc, "compute min ", tmp1);
-                            tmp1 = null;
-                        }
-                        tmp2 = modifyString(asmdco.getComputeMaxDelay());
-                        error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2);
-                        if (error < 0) {
-                            this.makeError (error, tdp, _ab, tgc, "compute max ", tmp2);
-                            tmp2 = null;
-                        }
-
-                        if (tmp1 != null && tmp2 != null)
-                            at.setComputes(tmp1, tmp2);
-
-                        // Probability
-                        tmp1 = asmdco.getProbability ();
-                        if ((tmp1 != null) && (tmp1.length()>0)) {
-                            error = AvatarSyntaxChecker.isAValidProbabilityExpr(_as, _ab, tmp1);
-                            if (error < 0) {
-                                this.makeError(error, tdp, _ab, tgc, "probability ", tmp1);
-                                tmp1 = null;
-                            }
-                            if (tmp1 != null) {
-                                at.setProbability(new Double(tmp1).doubleValue());
-                            }
-                        }
-
-                        // Actions
-                        for(String s: asmdco.getActions())
-                            if (s.trim().length() > 0) {
-                                s = modifyString(s.trim());
-
-                                // Variable assignation or method call?
-                                if (!isAVariableAssignation(s)) {
-                                    // Method call
-                                    int index2 = s.indexOf(";");
-                                    if (index2 != -1)
-                                        this.makeError(error, tdp, _ab, tgc, "transition action", s);
-
-                                    s = modifyStringMethodCall(s, _ab.getName());
-                                    if (!AvatarBlock.isAValidMethodCall (_ab, s)) {
-                                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed transition method call: " + s);
-                                        // TODO: adapt
-                                        // ce.setAvatarBlock(_ab);
-                                        ce.setTDiagramPanel(tdp);
-                                        ce.setTGComponent(tgc);
-                                        addCheckingError(ce);
-                                    } else
-                                        at.addAction(s);
-                                } else {
-                                    // Variable assignation
-                                    error = AvatarSyntaxChecker.isAValidVariableExpr (_as, _ab, s);
-                                    if (error < 0)
-                                        this.makeError (error, tdp, _ab, tgc, "transition action", s);
-                                    else
-                                        at.addAction (s);
-                                }
-                            }
-
-                        element1.addNext (at);
-                        at.addNext (element2);
-                        this.listE.addCor (at, tgc);
-                        tgc.setAVATARID (at.getID());
-                        asm.addElement (at);
-
-                        // Check for after on composite transitions
-                        if (at.hasDelay() && element1 instanceof AvatarState && asm.isACompositeTransition(at)) {
-                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "After clause cannot be used on composite transitions. Use timers instead.");
-                            // TODO: adapt
-                            // ce.setAvatarBlock(_ab);
-                            ce.setTDiagramPanel(tdp);
-                            ce.setTGComponent(tgc);
-                            addCheckingError(ce);
-                        }
-                    }
-                }
-            }
+        final Set<TGConnector> prunedConectors = componentsToBeTranslatedVisitor.getPrunedConnectors();
+
+        for ( final TGConnector connector : asmdp.getConnectors() ) {
+        	//        for (TGComponent tgc: asmdp.getAllComponentList ()) {
+        	//            if (tgc instanceof AvatarSMDConnector) {
+        	//                AvatarSMDConnector asmdco = (AvatarSMDConnector) tgc;
+        	// Issue #69
+        	if ( !prunedConectors.contains( connector ) ) {
+        		FindNextEnabledAvatarSMDConnectingPointVisitor visitor = new FindNextEnabledAvatarSMDConnectingPointVisitor( prunedConectors, componentsToBeTranslated );
+        		connector.getTGConnectingPointP1().acceptBackward( visitor );
+        		final TGConnectingPoint conPoint1 = visitor.getEnabledComponentPoint();
+
+        		if ( conPoint1 != null ) {
+        			visitor = new FindNextEnabledAvatarSMDConnectingPointVisitor( prunedConectors, componentsToBeTranslated );
+        			connector.getTGConnectingPointP2().acceptForward( visitor );
+        			final TGConnectingPoint conPoint2 = visitor.getEnabledComponentPoint();
+
+        			if ( conPoint2 != null ) {
+        				final TGComponent tgc1 = (TGComponent) conPoint1.getFather();//tdp.getComponentToWhichBelongs( connector.getTGConnectingPointP1() );
+        				final TGComponent tgc2 = (TGComponent) conPoint2.getFather();//tdp.getComponentToWhichBelongs( connector.getTGConnectingPointP2() );
+        				//                TGComponent tgc1 = asmdp.getComponentToWhichBelongs (asmdco.getTGConnectingPointP1());
+        				//                TGComponent tgc2 = asmdp.getComponentToWhichBelongs (asmdco.getTGConnectingPointP2());
+        				if (tgc1 == null || tgc2 == null) {
+        					TraceManager.addDev("Tgcs null in Avatar translation");
+        				}
+        				else {
+        					final AvatarStateMachineElement element1 = (AvatarStateMachineElement)(listE.getObject(tgc1));
+        					final AvatarStateMachineElement element2 = (AvatarStateMachineElement)(listE.getObject(tgc2));
+
+        					if ( element1 != null && element2 != null ) {
+        						final AvatarSMDConnector avatarSmdConnector = (AvatarSMDConnector) connector;
+
+        						if ( asm.findEmptyTransition( element1, element2 ) == null ) {
+        							final AvatarTransition at = new AvatarTransition( _ab, "avatar transition", connector );
+        							createTransitionInfo( at, avatarSmdConnector );
+        							//                        AvatarTransition at = new AvatarTransition (_ab, "avatar transition", tgc);
+        							//
+        							//                        // Guard
+        							//                        String tmp = modifyString (asmdco.getGuard());
+        							//                        AvatarGuard guard = AvatarGuard.createFromString (_ab, tmp);
+        							//                        if (guard.isElseGuard())
+        							//                            at.setGuard(guard);
+        							//                        else {
+        							//                            int error = AvatarSyntaxChecker.isAValidGuard (_as, _ab, tmp);
+        							//                            if (error < 0)
+        							//                                this.makeError (error, tdp, _ab, tgc, "transition guard", tmp);
+        							//                            else
+        							//                                at.setGuard (guard);
+        							//                        }
+        							//
+        							//                        // Delays
+        							//                        String tmp1 = modifyString (asmdco.getAfterMinDelay ());
+        							//                        int error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1);
+        							//                        if (error < 0) {
+        							//                            this.makeError (error, tdp, _ab, tgc, "after min delay", tmp1);
+        							//                            tmp1 = null;
+        							//                        }
+        							//                        String tmp2 = modifyString (asmdco.getAfterMaxDelay ());
+        							//                        error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp2);
+        							//                        if (error < 0) {
+        							//                            this.makeError(error, tdp, _ab, tgc, "after max delay", tmp2);
+        							//                            tmp2 = null;
+        							//                        }
+        							//
+        							//                        if (tmp1 != null && tmp2 != null)
+        							//                            at.setDelays(tmp1, tmp2);
+
+        							// Compute min and max
+        							//                        tmp1 = modifyString (asmdco.getComputeMinDelay ());
+        							//                        error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1);
+        							//                        if (error < 0) {
+        							//                            this.makeError (error, tdp, _ab, tgc, "compute min ", tmp1);
+        							//                            tmp1 = null;
+        							//                        }
+        							//                        tmp2 = modifyString(asmdco.getComputeMaxDelay());
+        							//                        error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2);
+        							//                        if (error < 0) {
+        							//                            this.makeError (error, tdp, _ab, tgc, "compute max ", tmp2);
+        							//                            tmp2 = null;
+        							//                        }
+        							//
+        							//                        if (tmp1 != null && tmp2 != null)
+        							//                            at.setComputes(tmp1, tmp2);
+
+        							// Probability
+        							//                        tmp1 = asmdco.getProbability ();
+        							//                        if ((tmp1 != null) && (tmp1.length()>0)) {
+        							//                            error = AvatarSyntaxChecker.isAValidProbabilityExpr(_as, _ab, tmp1);
+        							//                            if (error < 0) {
+        							//                                this.makeError(error, tdp, _ab, tgc, "probability ", tmp1);
+        							//                                tmp1 = null;
+        							//                            }
+        							//                            if (tmp1 != null) {
+        							//                                at.setProbability(new Double(tmp1).doubleValue());
+        							//                            }
+        							//                        }
+        							//
+        							//                        // Actions
+        							//                        for(String s: asmdco.getActions())
+        							//                            if (s.trim().length() > 0) {
+        							//                                s = modifyString(s.trim());
+        							//
+        							//                                // Variable assignation or method call?
+        							//                                if (!isAVariableAssignation(s)) {
+        							//                                    // Method call
+        							//                                    int index2 = s.indexOf(";");
+        							//                                    if (index2 != -1)
+        							//                                        this.makeError(error, tdp, _ab, tgc, "transition action", s);
+        							//
+        							//                                    s = modifyStringMethodCall(s, _ab.getName());
+        							//                                    if (!AvatarBlock.isAValidMethodCall (_ab, s)) {
+        							//                                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed transition method call: " + s);
+        							//                                        // TODO: adapt
+        							//                                        // ce.setAvatarBlock(_ab);
+        							//                                        ce.setTDiagramPanel(tdp);
+        							//                                        ce.setTGComponent(tgc);
+        							//                                        addCheckingError(ce);
+        							//                                    } else
+        							//                                        at.addAction(s);
+        							//                                } else {
+        							//                                    // Variable assignation
+        							//                                    error = AvatarSyntaxChecker.isAValidVariableExpr (_as, _ab, s);
+        							//                                    if (error < 0)
+        							//                                        this.makeError (error, tdp, _ab, tgc, "transition action", s);
+        							//                                    else
+        							//                                        at.addAction (s);
+        							//                                }
+        							//                            }
+
+        							element1.addNext( at );
+        							at.addNext( element2 );
+        							listE.addCor( at, connector );
+        							connector.setAVATARID( at.getID() );
+        							asm.addElement( at );
+
+        							// Check for after on composite transitions
+        							if (at.hasDelay() && element1 instanceof AvatarState && asm.isACompositeTransition(at)) {
+        								UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "After clause cannot be used on composite transitions. Use timers instead.");
+        								// TODO: adapt
+        								// ce.setAvatarBlock(_ab);
+        								ce.setTDiagramPanel( asmdp );
+        								ce.setTGComponent( connector );
+        								addCheckingError( ce );
+        							}
+        						}
+        					}
+        				}
+        			}
+        		}
+        	}
+        }
 
         asm.handleUnfollowedStartState(_ab);
 
         // Investigate all states -> put warnings for all empty transitions from a state to the same one (infinite loop)
       //  int nb;
-        for (AvatarStateMachineElement asmee: asm.getListOfElements())
+        for (AvatarStateMachineElement asmee: asm.getListOfElements()) {
             if (asmee instanceof AvatarState && ((AvatarState)asmee).hasEmptyTransitionsOnItself(asm) > 0) {
                 UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "State(s) " + asmee.getName() + " has empty transitions on itself");
                 // TODO: adapt
                 // ce.setAvatarBlock(_ab);
-                ce.setTDiagramPanel(tdp);
+                ce.setTDiagramPanel( asmdp );
                 ce.setTGComponent((TGComponent)(asmee.getReferenceObject()));
                 addWarning(ce);
             }
+        }
     }
 
     private void makeError(int _error, TDiagramPanel _tdp, AvatarStateMachineOwner _ab, TGComponent _tgc, String _info, String _element) {
@@ -2018,15 +2322,14 @@ public class AvatarDesignPanelTranslator {
         return null;
     }
 
-
-    public void createRelationsBetweenBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
+    private void createRelationsBetweenBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
         adp.getAvatarBDPanel().updateAllSignalsOnConnectors();
         Iterator<TGComponent> iterator = adp.getAvatarBDPanel().getComponentList().listIterator();
 
         TGComponent tgc;
         AvatarBDPortConnector port;
         AvatarBDBlock block1, block2;
-        LinkedList<String> l1, l2;
+        List<String> l1, l2;
         int i;
         String name1, name2;
         AvatarRelation r;
@@ -2058,23 +2361,23 @@ public class AvatarDesignPanelTranslator {
                         //TraceManager.addDev("Searching signal with name " + name1 +  " in block " + b1.getName());
                         atas1 = b1.getAvatarSignalWithName(name1);
                         atas2 = b2.getAvatarSignalWithName(name2);
-			if ((atas1 != null) && (atas2 != null)) {
-			    if(atas1.isCompatibleWith(atas2)) {
-				//TraceManager.addDev("Signals " + atas1 + " and " + atas2 + " are compatible");
-				r.addSignals(atas1, atas2);
-			    } else {
-				//TraceManager.addDev("Signals " + atas1 + " and " + atas2 + " are NOT compatible");
-				UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Wrong signal association betwen " + atas1 + " and " + atas2);
-			    // TODO: adapt
-			    // ce.setAvatarBlock(_ab);
-				ce.setTDiagramPanel(tgc.getTDiagramPanel());
-			    ce.setTGComponent(tgc);
-			    addCheckingError(ce);
-			    }
-			} else {
-			    TraceManager.addDev("Null signals in AVATAR relation: " + name1 + " " + name2);
-			}
-			
+
+                        if ((atas1 != null) && (atas2 != null)) {
+						    if(atas1.isCompatibleWith(atas2)) {
+							//TraceManager.addDev("Signals " + atas1 + " and " + atas2 + " are compatible");
+							r.addSignals(atas1, atas2);
+						    } else {
+							//TraceManager.addDev("Signals " + atas1 + " and " + atas2 + " are NOT compatible");
+							UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Wrong signal association betwen " + atas1 + " and " + atas2);
+						    // TODO: adapt
+						    // ce.setAvatarBlock(_ab);
+							ce.setTDiagramPanel(tgc.getTDiagramPanel());
+						    ce.setTGComponent(tgc);
+						    addCheckingError(ce);
+						    }
+						} else {
+						    TraceManager.addDev("Null signals in AVATAR relation: " + name1 + " " + name2);
+						}
                     }
 		    
                     // Attribute of the relation
@@ -2094,16 +2397,16 @@ public class AvatarDesignPanelTranslator {
     }
 
     private void addCheckingError(CheckingError ce) {
-        if (checkingErrors == null) {
-            checkingErrors = new LinkedList<CheckingError> ();
-        }
+//        if (checkingErrors == null) {
+//            checkingErrors = new LinkedList<CheckingError> ();
+//        }
         checkingErrors.add (ce);
     }
 
     private void addWarning(CheckingError ce) {
-        if (warnings == null) {
-            warnings = new LinkedList<CheckingError> ();
-        }
+//        if (warnings == null) {
+//            warnings = new LinkedList<CheckingError> ();
+//        }
         warnings.add (ce);
     }
 
@@ -2190,7 +2493,7 @@ public class AvatarDesignPanelTranslator {
         return s;
     }
 
-    public boolean isAVariableAssignation (String _input) {
+   private boolean isAVariableAssignation (String _input) {
         int index = _input.indexOf('=');
         if (index == -1) {
             return false;
@@ -2216,11 +2519,8 @@ public class AvatarDesignPanelTranslator {
 
         return !(TAttribute.isAValidId(tmp, false, false));
     }
-
-    public void checkForAfterOnCompositeTransition() {
-
-    }
-
-
-
+//
+//    public void checkForAfterOnCompositeTransition() {
+//
+//    }
 }
diff --git a/src/main/java/ui/CDElement.java b/src/main/java/ui/CDElement.java
index 3458d8766a22a52c778f04c4e06f6fe06b835cfc..d87b8033e0a203ce347271d39e454bf9fd48a259 100755
--- a/src/main/java/ui/CDElement.java
+++ b/src/main/java/ui/CDElement.java
@@ -35,14 +35,9 @@
  * 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 ui;
 
-
 /**
  * Interface CDElement
  * Creation : 22/12/2003
@@ -55,4 +50,21 @@ public interface CDElement {
 	int getWidth();
 	int getHeight();
 	String getName();
+
+	// Issue #69
+	void acceptForward( ICDElementVisitor visitor );
+	
+	void acceptBackward( ICDElementVisitor visitor );
+
+	boolean canBeDisabled();
+
+	void setEnabled( boolean _enabled );
+
+	void doSetEnabled( boolean _enabled );
+
+    boolean isEnabled();
+
+    boolean isEnabled( boolean checkBranch );
+
+    boolean canLabelBeDisabled( TGCOneLineText label );
 }
diff --git a/src/main/java/ui/ColorManager.java b/src/main/java/ui/ColorManager.java
index a454f3a88d285700308620b3a398088dd8810e39..e4a49c55fa04d4265c5ecb3b32b6733c6ef4138c 100755
--- a/src/main/java/ui/ColorManager.java
+++ b/src/main/java/ui/ColorManager.java
@@ -36,16 +36,12 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import myutil.GraphicLib;
 
 import java.awt.*;
 
-
 /**
  * Class IconManager
  * Creation: 15/12/2003
@@ -56,6 +52,11 @@ public class ColorManager {
     public static final Color DEFAULT = Color.black;
 
     public static final Color NORMAL_0 = Color.black;
+
+    // Issue #69: Disabling components in diagram
+    public static  Color DISABLED = new Color(214, 206, 198);
+    public static  Color DISABLED_FILLING = Color.WHITE;
+    
     public static final Color POINTER_ON_ME_0 = Color.red;
     public static final Color ACCESSIBILITY = Color.red;
     public static final Color ACCESSIBILITY_UNKNOWN = Color.DARK_GRAY;
@@ -149,14 +150,20 @@ public class ColorManager {
     //public static  Color ATD_BLOCK = new Color(196, 232, 195);
     public static  Color ATD_BLOCK = new Color(218, 218, 218);
     public static  Color ATD_ATTACK = new Color(214, 187, 158);
-    public static  Color ATD_ATTACK_DISABLED = new Color(214, 206, 198);
+
+    // Issue # 69: Using default disabled color
+    //public static  Color ATD_ATTACK_DISABLED = new Color(214, 206, 198);
+    
     public static  Color ATD_ROOT_ATTACK = new Color(243, 131, 10);
     public static  Color ATD_CONSTRAINT = new Color(191, 153, 161);
     public static  Color ATD_COUNTERMEASURE = new Color(209, 218, 174);
 
     public static  Color FTD_BLOCK = new Color(218, 218, 218);
     public static  Color FTD_FAULT = new Color(214, 187, 158);
-    public static  Color FTD_FAULT_DISABLED = new Color(214, 206, 198);
+
+    // Issue # 69: Using default disabled color
+    // public static  Color FTD_FAULT_DISABLED = new Color(214, 206, 198);
+    
     public static  Color FTD_ROOT_FAULT = new Color(243, 131, 10);
     public static  Color FTD_CONSTRAINT = new Color(191, 153, 161);
     public static  Color FTD_COUNTERMEASURE = new Color(209, 218, 174);
@@ -222,37 +229,52 @@ 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 final static void setColor(Graphics g, int state, int type) {
+    // Issue #69: Managing color for disabled diagram components
+    public final static void setColor( 	Graphics g,
+    									int state,
+    									int type ) {
+    	setColor( g, state, type, true );
+    }
+
+    public final static void setColor(	Graphics g, 
+    									int state,
+    									int type,
+    									boolean enabled ) {
         if (type == 0) {
-            switch(state) {
-            case 0:
-                g.setColor(NORMAL_0);
-                break;
-            case 1:
-                g.setColor(POINTER_ON_ME_0);
-                GraphicLib.setMediumStroke(g);
-                break;
-            case 2:
-                g.setColor(SELECTED_0);
-                break;
-            case 3:
-                g.setColor(MOVING_0);
-                break;
-            case 4:
-                g.setColor(ADDING_0);
-                break;
-            case 5:
-                g.setColor(POINTED_0);
-                break;
-            case 6:
-                g.setColor(RESIZE_POINTED);
-                break;
-            case 7:
-                g.setColor(RESIZE_POINTED);
-                break;
-            default:
-                g.setColor(DEFAULT);
-            }
+        	if ( !enabled ) {
+                g.setColor( DISABLED );
+        	}
+        	else {
+	            switch(state) {
+	            case 0:
+	                g.setColor(NORMAL_0);
+	                break;
+	            case 1:
+	                g.setColor(POINTER_ON_ME_0);
+	                GraphicLib.setMediumStroke(g);
+	                break;
+	            case 2:
+	                g.setColor(SELECTED_0);
+	                break;
+	            case 3:
+	                g.setColor(MOVING_0);
+	                break;
+	            case 4:
+	                g.setColor(ADDING_0);
+	                break;
+	            case 5:
+	                g.setColor(POINTED_0);
+	                break;
+	            case 6:
+	                g.setColor(RESIZE_POINTED);
+	                break;
+	            case 7:
+	                g.setColor(RESIZE_POINTED);
+	                break;
+	            default:
+	                g.setColor(DEFAULT);
+	            }
+        	}
         }
     }
 
@@ -298,10 +320,8 @@ public class ColorManager {
         AVATAR_RECEIVE_SIGNAL = Color.white;
         AVATAR_ASSUMPTION_ATTRIBUTES = Color.white;
         AVATAR_ASSUMPTION_TOP = Color.white;
-	SYSMLSEC_PARTITIONING = Color.white;
-	SYSMLSEC_SWDESIGN = Color.white;
-	SYSMLSEC_REQ = Color.white;
-
+		SYSMLSEC_PARTITIONING = Color.white;
+		SYSMLSEC_SWDESIGN = Color.white;
+		SYSMLSEC_REQ = Color.white;
     }
-
 } // Class Color
diff --git a/src/main/java/ui/DesignPanelTranslator.java b/src/main/java/ui/DesignPanelTranslator.java
index 82c6fef4c4de012a47df3b7e3043e1c3e8b5b527..ec674a54c8217801c8b6d1e02715a62b176d6698 100755
--- a/src/main/java/ui/DesignPanelTranslator.java
+++ b/src/main/java/ui/DesignPanelTranslator.java
@@ -60,11 +60,11 @@ import java.util.Vector;
  */
 public class DesignPanelTranslator {
     protected TURTLEDesignPanelInterface dp;
-    protected LinkedList<CheckingError> checkingErrors, warnings;
+    protected List<CheckingError> checkingErrors, warnings;
     protected CorrespondanceTGElement listE; // usual list
     protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks
-    protected LinkedList <TDiagramPanel> panels;
-    protected LinkedList <ActivityDiagram> activities;
+    protected List <TDiagramPanel> panels;
+    protected List <ActivityDiagram> activities;
 
     public DesignPanelTranslator(TURTLEDesignPanelInterface _dp) {
         dp = _dp;
@@ -80,11 +80,11 @@ public class DesignPanelTranslator {
         activities = new LinkedList <ActivityDiagram>();
     }
 
-    public LinkedList<CheckingError> getErrors() {
+    public List<CheckingError> getErrors() {
         return checkingErrors;
     }
 
-    public LinkedList<CheckingError> getWarnings() {
+    public List<CheckingError> getWarnings() {
         return warnings;
     }
 
@@ -93,7 +93,7 @@ public class DesignPanelTranslator {
     }
 
     public TURTLEModeling generateTURTLEModeling() {
-        LinkedList<TClassInterface> tclasses = new LinkedList<TClassInterface>();
+        List<TClassInterface> tclasses = new LinkedList<TClassInterface>();
 
         for (Object tgc: dp.getStructurePanel ().getComponentList ())
             if (tgc instanceof TClassInterface)
@@ -102,7 +102,7 @@ public class DesignPanelTranslator {
         return generateTURTLEModeling(tclasses, "");
     }
 
-    public TURTLEModeling generateTURTLEModeling(LinkedList<TClassInterface> tclasses, String preName) {
+    public TURTLEModeling generateTURTLEModeling(List<TClassInterface> tclasses, String preName) {
         TURTLEModeling tmodel = new TURTLEModeling();
         addTClasses(dp, tclasses, preName, tmodel);
         addRelations(dp, tmodel);
@@ -124,7 +124,7 @@ public class DesignPanelTranslator {
     }
 
 
-    public void addTClasses(TURTLEDesignPanelInterface dp, LinkedList<TClassInterface> tclasses, String preName, TURTLEModeling tm) {
+    public void addTClasses(TURTLEDesignPanelInterface dp, List<TClassInterface> tclasses, String preName, TURTLEModeling tm) {
         TDiagramPanel tdp;
         // search for class diagram panels
         tdp = dp.panelAt(0);
@@ -135,8 +135,8 @@ public class DesignPanelTranslator {
             addTClassesFromPanel(tdp, (ClassDiagramPanelInterface)tdp, tclasses, preName, tm);
     }
 
-    private void addTClassesFromPanel(TDiagramPanel diag, ClassDiagramPanelInterface tdp, LinkedList<TClassInterface> tclasses, String preName, TURTLEModeling tm) {
-       // LinkedList list = tdp.getComponentList();
+    private void addTClassesFromPanel(TDiagramPanel diag, ClassDiagramPanelInterface tdp, List<TClassInterface> tclasses, String preName, TURTLEModeling tm) {
+       // List list = tdp.getComponentList();
 
         // search for tclasses
         for (Object tgc: tdp.getComponentList ())
@@ -1156,7 +1156,7 @@ public class DesignPanelTranslator {
         return -1;
     }
 
-    private void setGatesOf(Relation r, LinkedList<TTwoAttributes> gates, TClass tc1, TClass tc2) {
+    private void setGatesOf(Relation r, List<TTwoAttributes> gates, TClass tc1, TClass tc2) {
         Gate g1, g2;
 
         for (TTwoAttributes tt: gates) {
@@ -1174,7 +1174,7 @@ public class DesignPanelTranslator {
      * Seems like we can't instantiate TCDWatchdogOperator
      * and the setWatchdogGatesOf function is buggy: it uses
      * TTwoAttributes as if they were TAttribute.
-    private void setWatchdogGatesOf(Relation r, LinkedList<TTwoAttributes> gates, TClass tc1, TClass tc2) {
+    private void setWatchdogGatesOf(Relation r, List<TTwoAttributes> gates, TClass tc1, TClass tc2) {
 
         for (TTwoAttributes t: gates) {
             Gate g1 = tc1.getGateByName(((TAttribute) t).getId());
diff --git a/src/main/java/ui/ELNDesignPanel.java b/src/main/java/ui/ELNDesignPanel.java
index 3296df2d18a159a6808bc2ff8bbab3b587ad128b..a0534af0d944571917311f429559ec466e372adf 100644
--- a/src/main/java/ui/ELNDesignPanel.java
+++ b/src/main/java/ui/ELNDesignPanel.java
@@ -43,7 +43,6 @@ import myutil.GraphicLib;
 import ui.eln.ELNDiagramPanel;
 import ui.eln.ELNDiagramToolBar;
 import ui.util.IconManager;
-
 import javax.swing.*;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
@@ -87,31 +86,7 @@ public class ELNDesignPanel extends TURTLEPanel {
 	}
 
 	public void init() {
-
-		// Toolbar
-		ELNDiagramToolBar toolBarELN = new ELNDiagramToolBar(mgui);
-		toolbars.add(toolBarELN);
-
-		toolBarPanel = new JPanel();
-		toolBarPanel.setLayout(new BorderLayout());
-
-		// Diagram
-		elndp = new ELNDiagramPanel(mgui, toolBarELN);
-		elndp.setName("ELN Diagram");
-		elndp.tp = this;
-		tdp = elndp;
-		panels.add(elndp); // Always first in list
-		JScrollDiagramPanel jsp = new JScrollDiagramPanel(elndp);
-		elndp.jsp = jsp;
-		jsp.setWheelScrollingEnabled(true);
-		jsp.getVerticalScrollBar().setUnitIncrement(MainGUI.INCREMENT);
-		toolBarPanel.add(toolBarELN, BorderLayout.NORTH);
-		toolBarPanel.add(jsp, BorderLayout.CENTER);
-		tabbedPane.addTab("ELN Diagram", IconManager.imgic1208, toolBarPanel,
-				"Opens ELN diagram");
-		tabbedPane.setSelectedIndex(0);
-
-		mgui.changeMade(elndp, TDiagramPanel.NEW_COMPONENT);
+		mgui.changeMade(null, TDiagramPanel.NEW_COMPONENT);
 	}
 
 	public String saveHeaderInXml(String extensionToName) {
@@ -128,6 +103,51 @@ public class ELNDesignPanel extends TURTLEPanel {
 	public String toString() {
 		return mgui.getTitleAt(this) + "(ELN Application diagram)";
 	}
+	
+	public boolean canFirstDiagramBeMoved() {
+		return true;
+	}
+
+	public boolean removeEnabled(int index) {
+		return panels.size() > 1;
+	}
+
+	public boolean renameEnabled(int index) {
+		if (panels.size() == 0) {
+			return false;
+		}
+		return (panels.elementAt(index) instanceof ELNDiagramPanel);
+	}
+
+	public boolean isELNEnabled() {
+		return true;
+	}
+
+	public boolean addELN(String s) {
+		ELNDiagramToolBar elntb = new ELNDiagramToolBar(mgui);
+		toolbars.add(elntb);
+
+		toolBarPanel = new JPanel();
+		toolBarPanel.setLayout(new BorderLayout());
+
+		elndp = new ELNDiagramPanel(mgui, elntb);
+		elndp.setName(s);
+		elndp.tp = this;
+		tdp = elndp;
+		panels.add(elndp);
+		JScrollDiagramPanel jsp = new JScrollDiagramPanel(elndp);
+		elndp.jsp = jsp;
+		jsp.setWheelScrollingEnabled(true);
+		jsp.getVerticalScrollBar().setUnitIncrement(MainGUI.INCREMENT);
+		toolBarPanel.add(elntb, BorderLayout.NORTH);
+		toolBarPanel.add(jsp, BorderLayout.CENTER);
+		tabbedPane.addTab(s, IconManager.imgic1208, toolBarPanel, "Opens ELN component diagram");
+		tabbedPane.setSelectedIndex(0);
+		JPanel toolBarPanel = new JPanel();
+		toolBarPanel.setLayout(new BorderLayout());
+
+		return true;
+	}
 
 //	public SysCAMSBlockTDF getBlockTDFComponentByName(String _name) {
 //		return elndp.getBlockTDFComponentByName(_name);
diff --git a/src/main/java/ui/ELNPanelTranslator.java b/src/main/java/ui/ELNPanelTranslator.java
index 451f67658ab263b6bf75bfdf88c0104437042d1b..b6bd1ff9f9f5e37effc4cdd040303cb09f379b44 100644
--- a/src/main/java/ui/ELNPanelTranslator.java
+++ b/src/main/java/ui/ELNPanelTranslator.java
@@ -40,6 +40,7 @@ package ui;
 
 import ui.eln.*;
 import ui.eln.sca_eln.*;
+import ui.eln.sca_eln_sca_de.*;
 import ui.eln.sca_eln_sca_tdf.*;
 import java.util.*;
 import elntranslator.*;
@@ -73,6 +74,7 @@ public class ELNPanelTranslator {
 		TGComponent tgc;
 		Iterator<TGComponent> iterator1 = tgcComponents.listIterator();
 		Iterator<TGComponent> iterator2 = tgcComponents.listIterator();
+		Iterator<TGComponent> iterator3 = tgcComponents.listIterator();
 		List<TGComponent> list = new ArrayList<TGComponent>();
 
 		while (iterator1.hasNext()) {
@@ -85,256 +87,570 @@ public class ELNPanelTranslator {
 		while (iterator2.hasNext()) {
 			tgc = iterator2.next();
 			if (tgc instanceof TGConnector) {
-				list.add(tgc);
+				if (!(((TGConnector) tgc).getTGConnectingPointP1().getFather() instanceof ELNMidPortTerminal || ((TGConnector) tgc).getTGConnectingPointP2().getFather() instanceof ELNMidPortTerminal)) {
+					list.add(tgc);
+				}
 			}
 		}	
 
+		while (iterator3.hasNext()) {
+			tgc = iterator3.next();
+			if (tgc instanceof TGConnector) {
+				if (((TGConnector) tgc).getTGConnectingPointP1().getFather() instanceof ELNMidPortTerminal || ((TGConnector) tgc).getTGConnectingPointP2().getFather() instanceof ELNMidPortTerminal) {
+					list.add(tgc);
+				}
+			}
+		}
+		
 		for (TGComponent dp : list) {
-			if (dp instanceof ELNModule) {
-				ELNModule module = (ELNModule) dp;
-
-				String moduleName = module.getValue();
+			if (dp instanceof ELNCluster) {
+				ELNCluster cluster = (ELNCluster) dp;
 				
-				ELNTModule elnModule = new ELNTModule(moduleName);
-
-				List<ELNComponentCapacitor> capacitors = module.getAllComponentCapacitor();
-				for (int i = 0; i < capacitors.size(); i++) {
-					ELNComponentCapacitor capacitor = capacitors.get(i);
-
-					String name = capacitor.getValue();
-					double val = capacitor.getVal();
-					double q0 = capacitor.getQ0();
-					String unit0 = capacitor.getUnit0();
-					String unit1 = capacitor.getUnit1();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) capacitor.connectingPoint;
-
-					ELNTComponentCapacitor elnCapacitor = new ELNTComponentCapacitor(name, val, q0, unit0, unit1, cp, elnModule);
-
-					elnMap.put(capacitor, elnCapacitor);
-					elnModule.addCapacitor(elnCapacitor);
-					elnComponents.add(elnCapacitor);
-				}	
-				List<ELNComponentCurrentSinkTDF> TDF_isinks = module.getAllComponentCurrentSinkTDF();
-				for (int i = 0; i < TDF_isinks.size(); i++) {
-					ELNComponentCurrentSinkTDF TDF_isink = TDF_isinks.get(i);
-
-					String name = TDF_isink.getValue();
-					double scale = TDF_isink.getScale();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) TDF_isink.connectingPoint;
-
-					ELNTComponentCurrentSinkTDF elnTDF_isink = new ELNTComponentCurrentSinkTDF(name, scale, cp, elnModule);
-
-					elnMap.put(TDF_isink, elnTDF_isink);
-					elnModule.addTDF_isink(elnTDF_isink);
-					elnComponents.add(elnTDF_isink);
-				}	
-				List<ELNComponentCurrentSourceTDF> TDF_isources = module.getAllComponentCurrentSourceTDF();
-				for (int i = 0; i < TDF_isources.size(); i++) {
-					ELNComponentCurrentSourceTDF TDF_isource = TDF_isources.get(i);
-
-					String name = TDF_isource.getValue();
-					double scale = TDF_isource.getScale();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) TDF_isource.connectingPoint;
-
-					ELNTComponentCurrentSourceTDF elnTDF_isource = new ELNTComponentCurrentSourceTDF(name, scale, cp, elnModule);
-
-					elnMap.put(TDF_isource, elnTDF_isource);
-					elnModule.addTDF_isource(elnTDF_isource);
-					elnComponents.add(elnTDF_isource);
-				}	
-				List<ELNComponentIdealTransformer> idealTransformers = module.getAllComponentIdealTransformer();
-				for (int i = 0; i < idealTransformers.size(); i++) {
-					ELNComponentIdealTransformer idealTransformer = idealTransformers.get(i);
+				String clusterName = cluster.getValue();
+				
+				ELNTCluster elnCluster = new ELNTCluster(clusterName);
+				
+				List<ELNClusterTerminal> clusterTerminals = cluster.getAllClusterTerminal();
+				for (int i = 0; i < clusterTerminals.size(); i++) {
+					ELNClusterTerminal clusterTerminal = clusterTerminals.get(i);
 
-					String name = idealTransformer.getValue();
-					double ratio = idealTransformer.getRatio();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) idealTransformer.connectingPoint;
+					String termName = clusterTerminal.getValue();
 
-					ELNTComponentIdealTransformer elnIdealTransformer = new ELNTComponentIdealTransformer(name, ratio, cp, elnModule);
+					ELNTClusterTerminal elnClusterTerminal = new ELNTClusterTerminal(termName, elnCluster);
 
-					elnMap.put(idealTransformer, elnIdealTransformer);
-					elnModule.addIdealTransformer(elnIdealTransformer);
-					elnComponents.add(elnIdealTransformer);
-				}	
-				List<ELNComponentIndependentCurrentSource> isources = module.getAllComponentIndependentCurrentSource();
-				for (int i = 0; i < isources.size(); i++) {
-					ELNComponentIndependentCurrentSource isource = isources.get(i);
-
-					String name = isource.getValue();
-					double initValue = isource.getInitValue();
-					double offset = isource.getOffset();
-					double amplitude = isource.getAmplitude();
-					double frequency = isource.getFrequency();
-					double phase = isource.getPhase();
-					double acAmplitude = isource.getAcAmplitude();
-					double acPhase = isource.getAcPhase();
-					double acNoiseAmpliture = isource.getAcNoiseAmplitude();
-					String delay = isource.getDelay();
-					String unit0 = isource.getUnit0();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) isource.connectingPoint;
-
-					ELNTComponentIndependentCurrentSource elnISource = new ELNTComponentIndependentCurrentSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, cp, elnModule);
-
-					elnMap.put(isource, elnISource);
-					elnModule.addIsource(elnISource);
-					elnComponents.add(elnISource);
-				}	
-				List<ELNComponentIndependentVoltageSource> vsources = module.getAllComponentIndependentVoltageSource();
-				for (int i = 0; i < vsources.size(); i++) {
-					ELNComponentIndependentVoltageSource vsource = vsources.get(i);
-
-					String name = vsource.getValue();
-					double initValue = vsource.getInitValue();
-					double offset = vsource.getOffset();
-					double amplitude = vsource.getAmplitude();
-					double frequency = vsource.getFrequency();
-					double phase = vsource.getPhase();
-					double acAmplitude = vsource.getAcAmplitude();
-					double acPhase = vsource.getAcPhase();
-					double acNoiseAmpliture = vsource.getAcNoiseAmplitude();
-					String delay = vsource.getDelay();
-					String unit0 = vsource.getUnit0();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) vsource.connectingPoint;
-
-					ELNTComponentIndependentVoltageSource elnVSource = new ELNTComponentIndependentVoltageSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, cp, elnModule);
-
-					elnMap.put(vsource, elnVSource);
-					elnModule.addVsource(elnVSource);
-					elnComponents.add(elnVSource);
-				}
-				List<ELNComponentInductor> inductors = module.getAllComponentInductor();
-				for (int i = 0; i < inductors.size(); i++) {
-					ELNComponentInductor inductor = inductors.get(i);
-
-					String name = inductor.getValue();
-					double val = inductor.getVal();
-					double phi0 = inductor.getPhi0();
-					String unit0 = inductor.getUnit0();
-					String unit1 = inductor.getUnit1();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) inductor.connectingPoint;
-
-					ELNTComponentInductor elnInductor = new ELNTComponentInductor(name, val, phi0, unit0, unit1, cp, elnModule);
-
-					elnMap.put(inductor, elnInductor);
-					elnModule.addInductor(elnInductor);
-					elnComponents.add(elnInductor);
+					elnMap.put(clusterTerminal, elnClusterTerminal);
+					elnCluster.addClusterTerminal(elnClusterTerminal);
+					elnComponents.add(elnClusterTerminal);
 				}
-				List<ELNComponentNodeRef> nodeRefs = module.getAllComponentNodeRef();
-				for (int i = 0; i < nodeRefs.size(); i++) {
-					ELNComponentNodeRef nodeRef = nodeRefs.get(i);
+				List<ELNClusterPortDE> clusterPortsDE = cluster.getAllClusterPortDE();
+				for (int i = 0; i < clusterPortsDE.size(); i++) {
+					ELNClusterPortDE clusterPortDE = clusterPortsDE.get(i);
 
-					String name = nodeRef.getValue();
-
-					ELNTComponentNodeRef elnNodeRef = new ELNTComponentNodeRef(name, elnModule);
-
-					elnMap.put(nodeRef, elnNodeRef);
-					elnModule.addNodeRef(elnNodeRef);
-					elnComponents.add(elnNodeRef);
-				}	
-				List<ELNComponentResistor> resistors = module.getAllComponentResistor();
-				for (int i = 0; i < resistors.size(); i++) {
-					ELNComponentResistor resistor = resistors.get(i);
+					String portName = clusterPortDE.getValue();
+					String type = clusterPortDE.getPortType();
+					String origin = clusterPortDE.getOrigin();
 
-					String name = resistor.getValue();
-					double val = resistor.getVal();
-					String unit = resistor.getUnit();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) resistor.connectingPoint;
+					ELNTClusterPortDE elnClusterPortDE = new ELNTClusterPortDE(portName, type, origin, elnCluster);
 
-					ELNTComponentResistor elnResistor = new ELNTComponentResistor(name, val, unit, cp, elnModule);
-
-					elnMap.put(resistor, elnResistor);
-					elnModule.addResistor(elnResistor);
-					elnComponents.add(elnResistor);
-				}
-				List<ELNComponentTransmissionLine> transmissionLines = module.getAllComponentTransmissionLine();
-				for (int i = 0; i < transmissionLines.size(); i++) {
-					ELNComponentTransmissionLine transmissionLine = transmissionLines.get(i);
-
-					String name = transmissionLine.getValue();
-					double z0 = transmissionLine.getZ0();
-					double delta0 = transmissionLine.getDelta0();
-					String delay = transmissionLine.getDelay();
-					String unit0 = transmissionLine.getUnit0();
-					String unit2 = transmissionLine.getUnit2();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) transmissionLine.connectingPoint;
-
-					ELNTComponentTransmissionLine elnTransmissionLine = new ELNTComponentTransmissionLine(name, z0, delta0, delay, unit0, unit2, cp, elnModule);
-
-					elnMap.put(transmissionLine, elnTransmissionLine);
-					elnModule.addTransmissionLine(elnTransmissionLine);
-					elnComponents.add(elnTransmissionLine);
+					elnMap.put(clusterPortDE, elnClusterPortDE);
+					elnCluster.addClusterPortDE(elnClusterPortDE);
+					elnComponents.add(elnClusterPortDE);
 				}
-				List<ELNComponentVoltageControlledCurrentSource> vccss = module.getAllComponentVoltageControlledCurrentSource();
-				for (int i = 0; i < vccss.size(); i++) {
-					ELNComponentVoltageControlledCurrentSource vccs = vccss.get(i);
+				List<ELNClusterPortTDF> clusterPortsTDF = cluster.getAllClusterPortTDF();
+				for (int i = 0; i < clusterPortsTDF.size(); i++) {
+					ELNClusterPortTDF clusterPortTDF = clusterPortsTDF.get(i);
 
-					String name = vccs.getValue();
-					double val = vccs.getVal();
-					String unit = vccs.getUnit();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) vccs.connectingPoint;
+					String portName = clusterPortTDF.getValue();
+					String type = clusterPortTDF.getPortType();
+					String origin = clusterPortTDF.getOrigin();
 
-					ELNTComponentVoltageControlledCurrentSource elnVCCS = new ELNTComponentVoltageControlledCurrentSource(name, val, unit, cp, elnModule);
+					ELNTClusterPortTDF elnClusterPortTDF = new ELNTClusterPortTDF(portName, type, origin, elnCluster);
 
-					elnMap.put(vccs, elnVCCS);
-					elnModule.addVccs(elnVCCS);
-					elnComponents.add(elnVCCS);
-				}
-				List<ELNComponentVoltageControlledVoltageSource> vcvss = module.getAllComponentVoltageControlledVoltageSource();
-				for (int i = 0; i < vcvss.size(); i++) {
-					ELNComponentVoltageControlledVoltageSource vcvs = vcvss.get(i);
-
-					String name = vcvs.getValue();
-					double val = vcvs.getVal();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) vcvs.connectingPoint;
-					
-					ELNTComponentVoltageControlledVoltageSource elnVCVS = new ELNTComponentVoltageControlledVoltageSource(name, val, cp, elnModule);
-
-					elnMap.put(vcvs, elnVCVS);
-					elnModule.addVcvs(elnVCVS);
-					elnComponents.add(elnVCVS);
+					elnMap.put(clusterPortTDF, elnClusterPortTDF);
+					elnCluster.addClusterPortTDF(elnClusterPortTDF);
+					elnComponents.add(elnClusterPortTDF);
 				}
-				List<ELNComponentVoltageSinkTDF> TDF_vsinks = module.getAllComponentVoltageSinkTDF();
-				for (int i = 0; i < TDF_vsinks.size(); i++) {
-					ELNComponentVoltageSinkTDF TDF_vsink = TDF_vsinks.get(i);
-
-					String name = TDF_vsink.getValue();
-					double scale = TDF_vsink.getScale();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) TDF_vsink.connectingPoint;
-
-					ELNTComponentVoltageSinkTDF elnTDF_vsink = new ELNTComponentVoltageSinkTDF(name, scale, cp, elnModule);
+				List<ELNModule> modules = cluster.getAllModule();
+				for (int i = 0; i < modules.size(); i++) {
+					ELNModule module = modules.get(i);
 
-					elnMap.put(TDF_vsink, elnTDF_vsink);
-					elnModule.addTDF_vsink(elnTDF_vsink);
-					elnComponents.add(elnTDF_vsink);
-				}	
-				List<ELNComponentVoltageSourceTDF> TDF_vsources = module.getAllComponentVoltageSourceTDF();
-				for (int i = 0; i < TDF_vsources.size(); i++) {
-					ELNComponentVoltageSourceTDF TDF_vsource = TDF_vsources.get(i);
-
-					String name = TDF_vsource.getValue();
-					double scale = TDF_vsource.getScale();
-					ELNConnectingPoint[] cp = (ELNConnectingPoint[]) TDF_vsource.connectingPoint;
-
-					ELNTComponentVoltageSourceTDF elnTDF_vsource = new ELNTComponentVoltageSourceTDF(name, scale, cp, elnModule);
-
-					elnMap.put(TDF_vsource, elnTDF_vsource);
-					elnModule.addTDF_vsource(elnTDF_vsource);
-					elnComponents.add(elnTDF_vsource);
-				}	
-				List<ELNModuleTerminal> moduleTerminals = module.getAllModuleTerminal();
-				for (int i = 0; i < moduleTerminals.size(); i++) {
-					ELNModuleTerminal moduleTerminal = moduleTerminals.get(i);
-
-					String name = moduleTerminal.getValue();
-
-					ELNTModuleTerminal elnModuleTerminal = new ELNTModuleTerminal(name, elnModule);
-
-					elnMap.put(moduleTerminal, elnModuleTerminal);
-					elnModule.addModuleTerminal(elnModuleTerminal);
-					elnComponents.add(elnModuleTerminal);
-				}	
-				elnMap.put(module, elnModule);
-				elnComponents.add(elnModule);
+					String moduleName = module.getValue();
+				
+					ELNTModule elnModule = new ELNTModule(moduleName, elnCluster);
+
+					List<ELNComponentCapacitor> capacitors = module.getAllComponentCapacitor();
+					for (int j = 0; j < capacitors.size(); j++) {
+						ELNComponentCapacitor capacitor = capacitors.get(j);
+	
+						String name = capacitor.getValue();
+						double val = capacitor.getVal();
+						double q0 = capacitor.getQ0();
+						String unit0 = capacitor.getUnit0();
+						String unit1 = capacitor.getUnit1();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) capacitor.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) capacitor.getTGConnectingPointAtIndex(1); 
+	
+						ELNTComponentCapacitor elnCapacitor = new ELNTComponentCapacitor(name, val, q0, unit0, unit1, elnModule);
+						
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnCapacitor);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnCapacitor);
+						
+						elnCapacitor.addConnectingPoint(elncp0);
+						elnCapacitor.addConnectingPoint(elncp1);
+						
+						elnMap.put(capacitor, elnCapacitor);
+						elnModule.addCapacitor(elnCapacitor);
+						elnComponents.add(elnCapacitor);
+					}	
+					List<ELNComponentCurrentSinkDE> DE_isinks = module.getAllComponentCurrentSinkDE();
+					for (int j = 0; j < DE_isinks.size(); j++) {
+						ELNComponentCurrentSinkDE DE_isink = DE_isinks.get(j);
+	
+						String name = DE_isink.getValue();
+						double scale = DE_isink.getScale();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_isink.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_isink.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_isink.getTGConnectingPointAtIndex(2);
+	
+						ELNTComponentCurrentSinkDE elnDE_isink = new ELNTComponentCurrentSinkDE(name, scale,elnModule);
+						
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_isink);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_isink);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_isink);
+						
+						elnDE_isink.addConnectingPoint(elncp0);
+						elnDE_isink.addConnectingPoint(elncp1);
+						elnDE_isink.addConnectingPoint(elncp2);
+	
+						elnMap.put(DE_isink, elnDE_isink);
+						elnModule.addDE_isink(elnDE_isink);
+						elnComponents.add(elnDE_isink);
+					}	
+					List<ELNComponentCurrentSourceDE> DE_isources = module.getAllComponentCurrentSourceDE();
+					for (int j = 0; j < DE_isources.size(); j++) {
+						ELNComponentCurrentSourceDE DE_isource = DE_isources.get(j);
+	
+						String name = DE_isource.getValue();
+						double scale = DE_isource.getScale();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_isource.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_isource.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_isource.getTGConnectingPointAtIndex(2);
+						
+						ELNTComponentCurrentSourceDE elnDE_isource = new ELNTComponentCurrentSourceDE(name, scale, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_isource);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_isource);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_isource);
+						
+						elnDE_isource.addConnectingPoint(elncp0);
+						elnDE_isource.addConnectingPoint(elncp1);
+						elnDE_isource.addConnectingPoint(elncp2);
+						
+						elnMap.put(DE_isource, elnDE_isource);
+						elnModule.addDE_isource(elnDE_isource);
+						elnComponents.add(elnDE_isource);
+					}	
+					List<ELNComponentCurrentSinkTDF> TDF_isinks = module.getAllComponentCurrentSinkTDF();
+					for (int j = 0; j < TDF_isinks.size(); j++) {
+						ELNComponentCurrentSinkTDF TDF_isink = TDF_isinks.get(j);
+	
+						String name = TDF_isink.getValue();
+						double scale = TDF_isink.getScale();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_isink.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_isink.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_isink.getTGConnectingPointAtIndex(2);
+	
+						ELNTComponentCurrentSinkTDF elnTDF_isink = new ELNTComponentCurrentSinkTDF(name, scale,elnModule);
+						
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_isink);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_isink);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_isink);
+						
+						elnTDF_isink.addConnectingPoint(elncp0);
+						elnTDF_isink.addConnectingPoint(elncp1);
+						elnTDF_isink.addConnectingPoint(elncp2);
+	
+						elnMap.put(TDF_isink, elnTDF_isink);
+						elnModule.addTDF_isink(elnTDF_isink);
+						elnComponents.add(elnTDF_isink);
+					}	
+					List<ELNComponentCurrentSourceTDF> TDF_isources = module.getAllComponentCurrentSourceTDF();
+					for (int j = 0; j < TDF_isources.size(); j++) {
+						ELNComponentCurrentSourceTDF TDF_isource = TDF_isources.get(j);
+	
+						String name = TDF_isource.getValue();
+						double scale = TDF_isource.getScale();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_isource.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_isource.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_isource.getTGConnectingPointAtIndex(2);
+						
+						ELNTComponentCurrentSourceTDF elnTDF_isource = new ELNTComponentCurrentSourceTDF(name, scale, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_isource);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_isource);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_isource);
+						
+						elnTDF_isource.addConnectingPoint(elncp0);
+						elnTDF_isource.addConnectingPoint(elncp1);
+						elnTDF_isource.addConnectingPoint(elncp2);
+						
+						elnMap.put(TDF_isource, elnTDF_isource);
+						elnModule.addTDF_isource(elnTDF_isource);
+						elnComponents.add(elnTDF_isource);
+					}	
+					List<ELNComponentIdealTransformer> idealTransformers = module.getAllComponentIdealTransformer();
+					for (int j = 0; j < idealTransformers.size(); j++) {
+						ELNComponentIdealTransformer idealTransformer = idealTransformers.get(j);
+	
+						String name = idealTransformer.getValue();
+						double ratio = idealTransformer.getRatio();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(2);
+						ELNConnectingPoint cp3 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(3); 
+	
+						ELNTComponentIdealTransformer elnIdealTransformer = new ELNTComponentIdealTransformer(name, ratio, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnIdealTransformer);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnIdealTransformer);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnIdealTransformer);
+						ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnIdealTransformer);
+						
+						elnIdealTransformer.addConnectingPoint(elncp0);
+						elnIdealTransformer.addConnectingPoint(elncp1);
+						elnIdealTransformer.addConnectingPoint(elncp2);
+						elnIdealTransformer.addConnectingPoint(elncp3);
+						
+						elnMap.put(idealTransformer, elnIdealTransformer);
+						elnModule.addIdealTransformer(elnIdealTransformer);
+						elnComponents.add(elnIdealTransformer);
+					}	
+					List<ELNComponentIndependentCurrentSource> isources = module.getAllComponentIndependentCurrentSource();
+					for (int j = 0; j < isources.size(); j++) {
+						ELNComponentIndependentCurrentSource isource = isources.get(j);
+	
+						String name = isource.getValue();
+						double initValue = isource.getInitValue();
+						double offset = isource.getOffset();
+						double amplitude = isource.getAmplitude();
+						double frequency = isource.getFrequency();
+						double phase = isource.getPhase();
+						double acAmplitude = isource.getAcAmplitude();
+						double acPhase = isource.getAcPhase();
+						double acNoiseAmpliture = isource.getAcNoiseAmplitude();
+						String delay = isource.getDelay();
+						String unit0 = isource.getUnit0();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) isource.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) isource.getTGConnectingPointAtIndex(1); 
+	
+						ELNTComponentIndependentCurrentSource elnISource = new ELNTComponentIndependentCurrentSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnISource);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnISource);
+						
+						elnISource.addConnectingPoint(elncp0);
+						elnISource.addConnectingPoint(elncp1);
+						
+						elnMap.put(isource, elnISource);
+						elnModule.addIsource(elnISource);
+						elnComponents.add(elnISource);
+					}	
+					List<ELNComponentIndependentVoltageSource> vsources = module.getAllComponentIndependentVoltageSource();
+					for (int j = 0; j < vsources.size(); j++) {
+						ELNComponentIndependentVoltageSource vsource = vsources.get(j);
+	
+						String name = vsource.getValue();
+						double initValue = vsource.getInitValue();
+						double offset = vsource.getOffset();
+						double amplitude = vsource.getAmplitude();
+						double frequency = vsource.getFrequency();
+						double phase = vsource.getPhase();
+						double acAmplitude = vsource.getAcAmplitude();
+						double acPhase = vsource.getAcPhase();
+						double acNoiseAmpliture = vsource.getAcNoiseAmplitude();
+						String delay = vsource.getDelay();
+						String unit0 = vsource.getUnit0();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) vsource.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) vsource.getTGConnectingPointAtIndex(1); 
+						
+						ELNTComponentIndependentVoltageSource elnVSource = new ELNTComponentIndependentVoltageSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnVSource);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnVSource);
+						
+						elnVSource.addConnectingPoint(elncp0);
+						elnVSource.addConnectingPoint(elncp1);
+						
+						elnMap.put(vsource, elnVSource);
+						elnModule.addVsource(elnVSource);
+						elnComponents.add(elnVSource);
+					}
+					List<ELNComponentInductor> inductors = module.getAllComponentInductor();
+					for (int j = 0; j < inductors.size(); j++) {
+						ELNComponentInductor inductor = inductors.get(j);
+	
+						String name = inductor.getValue();
+						double val = inductor.getVal();
+						double phi0 = inductor.getPhi0();
+						String unit0 = inductor.getUnit0();
+						String unit1 = inductor.getUnit1();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) inductor.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) inductor.getTGConnectingPointAtIndex(1); 
+						
+						ELNTComponentInductor elnInductor = new ELNTComponentInductor(name, val, phi0, unit0, unit1, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnInductor);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnInductor);
+						
+						elnInductor.addConnectingPoint(elncp0);
+						elnInductor.addConnectingPoint(elncp1);
+						
+						elnMap.put(inductor, elnInductor);
+						elnModule.addInductor(elnInductor);
+						elnComponents.add(elnInductor);
+					}
+					List<ELNNodeRef> nodeRefs = module.getAllComponentNodeRef();
+					for (int j = 0; j < nodeRefs.size(); j++) {
+						ELNNodeRef nodeRef = nodeRefs.get(j);
+	
+						String name = nodeRef.getValue();
+	
+						ELNTNodeRef elnNodeRef = new ELNTNodeRef(name, elnModule);
+	
+						elnMap.put(nodeRef, elnNodeRef);
+						elnModule.addNodeRef(elnNodeRef);
+						elnComponents.add(elnNodeRef);
+					}	
+					List<ELNComponentResistor> resistors = module.getAllComponentResistor();
+					for (int j = 0; j < resistors.size(); j++) {
+						ELNComponentResistor resistor = resistors.get(j);
+	
+						String name = resistor.getValue();
+						double val = resistor.getVal();
+						String unit = resistor.getUnit();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) resistor.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) resistor.getTGConnectingPointAtIndex(1);
+	
+						ELNTComponentResistor elnResistor = new ELNTComponentResistor(name, val, unit, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnResistor);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnResistor);
+						
+						elnResistor.addConnectingPoint(elncp0);
+						elnResistor.addConnectingPoint(elncp1);
+						
+						elnMap.put(resistor, elnResistor);
+						elnModule.addResistor(elnResistor);
+						elnComponents.add(elnResistor);
+					}
+					List<ELNComponentTransmissionLine> transmissionLines = module.getAllComponentTransmissionLine();
+					for (int j = 0; j < transmissionLines.size(); j++) {
+						ELNComponentTransmissionLine transmissionLine = transmissionLines.get(j);
+	
+						String name = transmissionLine.getValue();
+						double z0 = transmissionLine.getZ0();
+						double delta0 = transmissionLine.getDelta0();
+						String delay = transmissionLine.getDelay();
+						String unit0 = transmissionLine.getUnit0();
+						String unit2 = transmissionLine.getUnit2();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(2);
+						ELNConnectingPoint cp3 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(3); 
+	
+						ELNTComponentTransmissionLine elnTransmissionLine = new ELNTComponentTransmissionLine(name, z0, delta0, delay, unit0, unit2, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTransmissionLine);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTransmissionLine);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTransmissionLine);
+						ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnTransmissionLine);
+						
+						elnTransmissionLine.addConnectingPoint(elncp0);
+						elnTransmissionLine.addConnectingPoint(elncp1);
+						elnTransmissionLine.addConnectingPoint(elncp2);
+						elnTransmissionLine.addConnectingPoint(elncp3);
+						
+						elnMap.put(transmissionLine, elnTransmissionLine);
+						elnModule.addTransmissionLine(elnTransmissionLine);
+						elnComponents.add(elnTransmissionLine);
+					}
+					List<ELNComponentVoltageControlledCurrentSource> vccss = module.getAllComponentVoltageControlledCurrentSource();
+					for (int j = 0; j < vccss.size(); j++) {
+						ELNComponentVoltageControlledCurrentSource vccs = vccss.get(j);
+	
+						String name = vccs.getValue();
+						double val = vccs.getVal();
+						String unit = vccs.getUnit();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(2);
+						ELNConnectingPoint cp3 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(3); 
+	
+						ELNTComponentVoltageControlledCurrentSource elnVCCS = new ELNTComponentVoltageControlledCurrentSource(name, val, unit, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnVCCS);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnVCCS);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnVCCS);
+						ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnVCCS);
+						
+						elnVCCS.addConnectingPoint(elncp0);
+						elnVCCS.addConnectingPoint(elncp1);
+						elnVCCS.addConnectingPoint(elncp2);
+						elnVCCS.addConnectingPoint(elncp3);
+						
+						elnMap.put(vccs, elnVCCS);
+						elnModule.addVccs(elnVCCS);
+						elnComponents.add(elnVCCS);
+					}
+					List<ELNComponentVoltageControlledVoltageSource> vcvss = module.getAllComponentVoltageControlledVoltageSource();
+					for (int j = 0; j < vcvss.size(); j++) {
+						ELNComponentVoltageControlledVoltageSource vcvs = vcvss.get(j);
+	
+						String name = vcvs.getValue();
+						double val = vcvs.getVal();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(2);
+						ELNConnectingPoint cp3 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(3); 
+						
+						ELNTComponentVoltageControlledVoltageSource elnVCVS = new ELNTComponentVoltageControlledVoltageSource(name, val, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnVCVS);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnVCVS);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnVCVS);
+						ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnVCVS);
+						
+						elnVCVS.addConnectingPoint(elncp0);
+						elnVCVS.addConnectingPoint(elncp1);
+						elnVCVS.addConnectingPoint(elncp2);
+						elnVCVS.addConnectingPoint(elncp3);
+						
+						elnMap.put(vcvs, elnVCVS);
+						elnModule.addVcvs(elnVCVS);
+						elnComponents.add(elnVCVS);
+					}
+					List<ELNComponentVoltageSinkDE> DE_vsinks = module.getAllComponentVoltageSinkDE();
+					for (int j = 0; j < DE_vsinks.size(); j++) {
+						ELNComponentVoltageSinkDE DE_vsink = DE_vsinks.get(j);
+	
+						String name = DE_vsink.getValue();
+						double scale = DE_vsink.getScale();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_vsink.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_vsink.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_vsink.getTGConnectingPointAtIndex(2);
+						
+						ELNTComponentVoltageSinkDE elnDE_vsink = new ELNTComponentVoltageSinkDE(name, scale, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_vsink);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_vsink);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_vsink);
+						
+						elnDE_vsink.addConnectingPoint(elncp0);
+						elnDE_vsink.addConnectingPoint(elncp1);
+						elnDE_vsink.addConnectingPoint(elncp2);
+						
+						elnMap.put(DE_vsink, elnDE_vsink);
+						elnModule.addDE_vsink(elnDE_vsink);
+						elnComponents.add(elnDE_vsink);
+					}	
+					List<ELNComponentVoltageSourceDE> DE_vsources = module.getAllComponentVoltageSourceDE();
+					for (int j = 0; j < DE_vsources.size(); j++) {
+						ELNComponentVoltageSourceDE DE_vsource = DE_vsources.get(j);
+	
+						String name = DE_vsource.getValue();
+						double scale = DE_vsource.getScale();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_vsource.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_vsource.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_vsource.getTGConnectingPointAtIndex(2);
+						
+						ELNTComponentVoltageSourceDE elnDE_vsource = new ELNTComponentVoltageSourceDE(name, scale, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_vsource);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_vsource);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_vsource);
+						
+						elnDE_vsource.addConnectingPoint(elncp0);
+						elnDE_vsource.addConnectingPoint(elncp1);
+						elnDE_vsource.addConnectingPoint(elncp2);
+						
+						elnMap.put(DE_vsource, elnDE_vsource);
+						elnModule.addDE_vsource(elnDE_vsource);
+						elnComponents.add(elnDE_vsource);
+					}	
+					List<ELNComponentVoltageSinkTDF> TDF_vsinks = module.getAllComponentVoltageSinkTDF();
+					for (int j = 0; j < TDF_vsinks.size(); j++) {
+						ELNComponentVoltageSinkTDF TDF_vsink = TDF_vsinks.get(j);
+	
+						String name = TDF_vsink.getValue();
+						double scale = TDF_vsink.getScale();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_vsink.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_vsink.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_vsink.getTGConnectingPointAtIndex(2);
+						
+						ELNTComponentVoltageSinkTDF elnTDF_vsink = new ELNTComponentVoltageSinkTDF(name, scale, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_vsink);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_vsink);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_vsink);
+						
+						elnTDF_vsink.addConnectingPoint(elncp0);
+						elnTDF_vsink.addConnectingPoint(elncp1);
+						elnTDF_vsink.addConnectingPoint(elncp2);
+						
+						elnMap.put(TDF_vsink, elnTDF_vsink);
+						elnModule.addTDF_vsink(elnTDF_vsink);
+						elnComponents.add(elnTDF_vsink);
+					}	
+					List<ELNComponentVoltageSourceTDF> TDF_vsources = module.getAllComponentVoltageSourceTDF();
+					for (int j = 0; j < TDF_vsources.size(); j++) {
+						ELNComponentVoltageSourceTDF TDF_vsource = TDF_vsources.get(j);
+	
+						String name = TDF_vsource.getValue();
+						double scale = TDF_vsource.getScale();
+						ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_vsource.getTGConnectingPointAtIndex(0);
+						ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_vsource.getTGConnectingPointAtIndex(1); 
+						ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_vsource.getTGConnectingPointAtIndex(2);
+						
+						ELNTComponentVoltageSourceTDF elnTDF_vsource = new ELNTComponentVoltageSourceTDF(name, scale, elnModule);
+	
+						ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_vsource);
+						ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_vsource);
+						ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_vsource);
+						
+						elnTDF_vsource.addConnectingPoint(elncp0);
+						elnTDF_vsource.addConnectingPoint(elncp1);
+						elnTDF_vsource.addConnectingPoint(elncp2);
+						
+						elnMap.put(TDF_vsource, elnTDF_vsource);
+						elnModule.addTDF_vsource(elnTDF_vsource);
+						elnComponents.add(elnTDF_vsource);
+					}	
+					List<ELNModuleTerminal> moduleTerminals = module.getAllModuleTerminal();
+					for (int j = 0; j < moduleTerminals.size(); j++) {
+						ELNModuleTerminal moduleTerminal = moduleTerminals.get(j);
+	
+						String name = moduleTerminal.getValue();
+	
+						ELNTModuleTerminal elnModuleTerminal = new ELNTModuleTerminal(name, elnModule);
+	
+						elnMap.put(moduleTerminal, elnModuleTerminal);
+						elnModule.addModuleTerminal(elnModuleTerminal);
+						elnComponents.add(elnModuleTerminal);
+					}
+					List<ELNModulePortDE> modulePortsDE = module.getAllModulePortDE();
+					for (int j = 0; j < modulePortsDE.size(); j++) {
+						ELNModulePortDE modulePortDE = modulePortsDE.get(j);
+
+						String portName = modulePortDE.getValue();
+						String type = modulePortDE.getPortType();
+						String origin = modulePortDE.getOrigin();
+
+						ELNTModulePortDE elnModulePortDE = new ELNTModulePortDE(portName, type, origin, elnModule);
+
+						elnMap.put(modulePortDE, elnModulePortDE);
+						elnModule.addModulePortDE(elnModulePortDE);
+						elnComponents.add(elnModulePortDE);
+					}
+					List<ELNModulePortTDF> modulePortsTDF = module.getAllModulePortTDF();
+					for (int j = 0; j < modulePortsTDF.size(); j++) {
+						ELNModulePortTDF modulePortTDF = modulePortsTDF.get(j);
+
+						String portName = modulePortTDF.getValue();
+						String type = modulePortTDF.getPortType();
+						String origin = modulePortTDF.getOrigin();
+
+						ELNTModulePortTDF elnModulePortTDF = new ELNTModulePortTDF(portName, type, origin, elnModule);
+
+						elnMap.put(modulePortTDF, elnModulePortTDF);
+						elnModule.addModulePortTDF(elnModulePortTDF);
+						elnComponents.add(elnModulePortTDF);
+					}
+					elnMap.put(module, elnModule);
+					elnCluster.addModule(elnModule);
+					elnComponents.add(elnModule);
+				}
+				elnMap.put(cluster, elnCluster);
+				elnComponents.add(elnCluster);
 			} else if (dp instanceof ELNConnector) {
 				ELNConnector connector = (ELNConnector) dp;
 
@@ -352,8 +668,8 @@ public class ELNPanelTranslator {
 				ELNTComponent avowner_p1 = elnMap.get(owner_p1);	
 				ELNTComponent avowner_p2 = elnMap.get(owner_p2);
 
-				ELNTConnectingPoint avConnectingPoint1 = new ELNTConnectingPoint(avowner_p1, p1Name);
-				ELNTConnectingPoint avConnectingPoint2 = new ELNTConnectingPoint(avowner_p2, p2Name);
+				ELNTConnectingPoint avConnectingPoint1 = new ELNTConnectingPoint(p1Name, avowner_p1);
+				ELNTConnectingPoint avConnectingPoint2 = new ELNTConnectingPoint(p2Name, avowner_p2);
 
 				ELNTConnector avconnector = new ELNTConnector(avConnectingPoint1, avConnectingPoint2, name);	
 				
diff --git a/src/main/java/ui/Expression.java b/src/main/java/ui/Expression.java
new file mode 100644
index 0000000000000000000000000000000000000000..08cf3df2c60b9f429e4d5def99aa2d8bec385756
--- /dev/null
+++ b/src/main/java/ui/Expression.java
@@ -0,0 +1,69 @@
+package ui;
+
+public class Expression {
+	
+	private String text;
+	
+	private final String nullText;
+	
+	private final String label;
+
+	private boolean enabled;
+	
+	public Expression( final String text ) {
+		this( text, null, null );
+	}
+	
+	public Expression( 	final String text,
+						final String nullText,
+						final String label ) {
+		this.text = text;
+		this.nullText = nullText;
+		this.label = label;
+		this.enabled = true;
+	}
+//
+//	public Expression( 	final String text,
+//						final boolean enabled,
+//						final String nullText ) {
+//	}
+
+	public String getText() {
+		return text;
+	}
+
+	public void setText( String text ) {
+		this.text = text;
+	}
+
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	public void setEnabled(boolean enabled) {
+		this.enabled = enabled;
+	}
+	
+	public String getEffectiveExpression( final String defaultExpr ) {
+		return isEnabled() ? getText() : defaultExpr;
+	}
+	
+	public boolean isNull() {
+		if ( nullText == null ) {
+			return getText() == null;
+		}
+		
+		return nullText.equals( getText() );
+	}
+	
+	@Override
+	public String toString() {
+		final String text = isNull() ? "null" : getText();
+
+		return label == null ? text : String.format( label, text );
+	}
+
+	public String getLabel() {
+		return label;
+	}
+}
diff --git a/src/main/java/ui/FindNextEnabledConnectingPointVisitor.java b/src/main/java/ui/FindNextEnabledConnectingPointVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..32c0a42e98b42e385f282a1c112de69dddd0a9e4
--- /dev/null
+++ b/src/main/java/ui/FindNextEnabledConnectingPointVisitor.java
@@ -0,0 +1,71 @@
+package ui;
+
+import java.util.Set;
+
+public class FindNextEnabledConnectingPointVisitor extends TrackingCDElementVisitor {
+	
+	private final Set<TGConnector> disabledConnectors;
+	
+	private TGConnectingPoint enabledConnectingPoint;
+
+	private TGConnectingPoint previousEnabledConnectingPoint;
+	
+	public FindNextEnabledConnectingPointVisitor( final Set<TGConnector> disabledConnectors ) {
+		super();
+		
+		this.disabledConnectors = disabledConnectors;
+		enabledConnectingPoint = null;
+	}
+
+	@Override
+	public boolean visit( final CDElement element ) {
+		if ( !super.visit( element ) ) {
+			return false;
+		}
+		
+		if ( element instanceof TGConnector ) {
+			final TGConnector connector = (TGConnector) element;
+			
+			if ( pruneConnector( connector ) ) {
+				disabledConnectors.add( (TGConnector) element );
+
+				return true;
+			}
+			
+			enabledConnectingPoint = previousEnabledConnectingPoint;
+			
+			return false;
+		}
+		
+		if ( element instanceof TGConnectingPoint ) {
+			final TGConnectingPoint point = (TGConnectingPoint) element;
+			final CDElement father = point.getFather();
+			previousEnabledConnectingPoint = point;
+		
+			if ( !pruneElement( father ) ) {
+				enabledConnectingPoint = point;
+
+				return false;
+			}
+		}
+
+		return true;
+	}
+	
+	protected boolean pruneElement( final CDElement diagramElement ) {
+		return !diagramElement.isEnabled() || !( diagramElement instanceof TGComponent ) || diagramElement instanceof TGConnector;
+	}
+
+	
+	protected boolean pruneConnector( final TGConnector connector ) {
+		return true;
+	}
+
+	public TGConnectingPoint getEnabledComponentPoint() {
+		return enabledConnectingPoint;
+	}
+
+	public Set<TGConnector> getDisabledConnectors() {
+		return disabledConnectors;
+	}
+}
diff --git a/src/main/java/ui/ForwardComponentsEnabledVisitor.java b/src/main/java/ui/ForwardComponentsEnabledVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..21f28cb74f23948114945db84e36564c53024c56
--- /dev/null
+++ b/src/main/java/ui/ForwardComponentsEnabledVisitor.java
@@ -0,0 +1,31 @@
+package ui;
+
+public class ForwardComponentsEnabledVisitor extends TrackingCDElementVisitor {
+	
+	private boolean enabled;
+
+	public ForwardComponentsEnabledVisitor() {
+		super();
+		
+		enabled = true;
+	}
+
+	@Override
+	public boolean visit(CDElement element) {
+		if ( !super.visit( element ) ) {
+			return false;
+		}
+		
+		if ( element.canBeDisabled() && !( element instanceof TGConnector ) ) {
+			enabled = element.isEnabled();
+			
+			return false;
+		}
+		
+		return true;
+	}
+	
+	public boolean isEnabled() {
+		return enabled;
+	}
+}
diff --git a/src/main/java/ui/GNCModeling.java b/src/main/java/ui/GNCModeling.java
index 368b47c25185ac94e2a7bf30567a3499f30f834e..e470accc10c968c1964047f585959a4d647bf325 100755
--- a/src/main/java/ui/GNCModeling.java
+++ b/src/main/java/ui/GNCModeling.java
@@ -36,10 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package ui;
 
 import myutil.TreeCell;
@@ -49,6 +45,7 @@ import ui.ncdd.*;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.ListIterator;
 
 /**
@@ -64,16 +61,14 @@ public class GNCModeling  {
 	private NCDiagramPanel ncdp;
     private LinkedList<CheckingError> checkingErrors, warnings;
 	private CorrespondanceTGElement listE;
-	private NCStructure nc;
+	//private NCStructure nc;
 	
 	private static int PATH_INDEX = 0;
-	
-    
+	    
     public GNCModeling(NCPanel _ncp) {
         ncp = _ncp;
 		ncdp = ncp.ncdp;
     }
-	
     
 	public NCStructure translateToNCStructure() {
 		PATH_INDEX = 0;
@@ -93,8 +88,6 @@ public class GNCModeling  {
 			manageParameters();
 		}
 		
-		//
-		
         return ncs;
     }
 	
@@ -102,8 +95,7 @@ public class GNCModeling  {
 		return listE;
 	}
     
-    
-    public LinkedList<CheckingError> getCheckingErrors() {
+    public List<CheckingError> getCheckingErrors() {
         return checkingErrors;
     }
     
@@ -112,16 +104,16 @@ public class GNCModeling  {
     }
     
 	private void addEquipments() {
-		ListIterator iterator = ncdp.getListOfEqNode().listIterator();
+		ListIterator<NCEqNode> iterator = ncdp.getListOfEqNode().listIterator();
 		NCEqNode node;
 		NCEquipment eq;
-		NCConnectorNode con;
-		int cpt;
+	//	NCConnectorNode con;
+		//int cpt;
 		
 		
 		
 		while(iterator.hasNext()) {
-			node = (NCEqNode)(iterator.next());
+			node = iterator.next();
 			
 			// Find the only interface of that Equipment
 			// If more than one interface -> error
@@ -163,13 +155,13 @@ public class GNCModeling  {
 	}
 	
 	private void addSwitches() {
-		ListIterator iterator = ncdp.getListOfSwitchNode().listIterator();
+		ListIterator<NCSwitchNode> iterator = ncdp.getListOfSwitchNode().listIterator();
 		NCSwitchNode node;
 		NCSwitch sw;
 		NCCapacityUnit unit = new NCCapacityUnit();
 		
 		while(iterator.hasNext()) {
-			node = (NCSwitchNode)(iterator.next());
+			node = iterator.next();
 			
 			sw= new NCSwitch();
 			sw.setName(node.getNodeName());
@@ -184,13 +176,13 @@ public class GNCModeling  {
 	}
 	
 	private void addTraffics() {
-		ListIterator iterator = ncdp.getTrafficArtifacts().listIterator();
+		ListIterator<NCTrafficArtifact> iterator = ncdp.getTrafficArtifacts().listIterator();
 		NCTrafficArtifact arti;
 		NCTraffic tr;
 		NCTimeUnit unit;
 		
 		while(iterator.hasNext()) {
-			arti = (NCTrafficArtifact)(iterator.next());
+			arti = iterator.next();
 			tr = new NCTraffic();
 			tr.setName(arti.getValue());
 			tr.setPeriodicType(arti.getPeriodicType());
@@ -210,9 +202,9 @@ public class GNCModeling  {
 	}
 	
 	private void addLinks() {
-		ListIterator iterator = ncdp.getListOfLinks().listIterator();
+		ListIterator<NCConnectorNode> iterator = ncdp.getListOfLinks().listIterator();
 		NCConnectorNode nccn;
-		NCLink lk = null, lkr;
+		NCLink lk = null;//, lkr;
 		boolean added;
 		TGComponent tgc;
 		TGConnectingPoint tp;
@@ -223,7 +215,7 @@ public class GNCModeling  {
 		
 		while(iterator.hasNext()) {
 			added = false;
-			nccn = (NCConnectorNode)(iterator.next());
+			nccn = iterator.next();
 			
 			if (ncdp.isALinkBetweenEquipment(nccn)) {
 				UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Link connected between two equipments: " + nccn.getInterfaceName());
@@ -305,19 +297,24 @@ public class GNCModeling  {
 						nccu.setUnit(nccn.getCapacityUnit());
 						lk.setCapacityUnit(nccu);
 					} else {
-						if (switch1 == null) {
+						if (switch1 == null && switch2 != null ) {
 							lk.setCapacity(switch2.getCapacity());
 							nccu = new NCCapacityUnit();
 							nccu.setUnit(switch2.getCapacityUnit());
 							lk.setCapacityUnit(nccu);
 						}
-						if (switch2 == null) {
+						// DB: Seems to be a bug...
+						else if (switch2 == null && switch1 != null ) {
 							lk.setCapacity(switch1.getCapacity());
 							nccu = new NCCapacityUnit();
-							nccu.setUnit(switch2.getCapacityUnit());
+							
+							// DB looks like a copy paste error
+							nccu.setUnit(switch1.getCapacityUnit());
+//							nccu.setUnit(switch2.getCapacityUnit());
 							lk.setCapacityUnit(nccu);
 						}
-						if ((switch1 != null) && (switch2 != null)) {
+						else {
+						//if ((switch1 != null) && (switch2 != null)) {
 							if (switch1.getCapacity() != switch2.getCapacity()) {
 								UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Link with no capacity between two switches of different capacity: " + nccn.getInterfaceName());
 								ce.setTDiagramPanel(ncdp);
@@ -357,18 +354,18 @@ public class GNCModeling  {
 		// Consider each traffic
 		// For each traffic, its builds a tree
 		// Then, its generates the corresponding paths
-		ListIterator iterator = ncdp.getTrafficArtifacts().listIterator();
+		ListIterator<NCTrafficArtifact> iterator = ncdp.getTrafficArtifacts().listIterator();
 		NCTrafficArtifact arti;
 		NCTraffic tr;
 		TreeCell tree;
 		int ret;
-		NCPath path;
+		//NCPath path;
 		NCEqNode node;
 		NCEquipment eq;
-		ArrayList<String> list;
+		List<String> list;
 		
 		while(iterator.hasNext()) {
-			arti = (NCTrafficArtifact)(iterator.next());
+			arti = iterator.next();
 			
 			tr = ncs.getTrafficByName(arti.getValue());
 			if (tr == null) {
@@ -399,7 +396,7 @@ public class GNCModeling  {
 		}
 	}
 	
-	public void exploreTree(TreeCell tree, ArrayList<String> list, NCEquipment origin, NCTraffic traffic) {
+	private void exploreTree(TreeCell tree, List<String> list, NCEquipment origin, NCTraffic traffic) {
 		NCSwitchNode sw;
 		NCSwitch ncsw;
 		NCLinkedElement ncle;
@@ -505,7 +502,7 @@ public class GNCModeling  {
 		
 		// Find the only interface of that Equipment
 		// If more than one interface -> error
-		ArrayList<NCSwitchNode> listsw = ncdp.getSwitchesOfEq(node);
+		List<NCSwitchNode> listsw = ncdp.getSwitchesOfEq(node);
 		
 		if (listsw.size() == 0) {
 			UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Equipment " + node.getName() + " has non interface: traffic " + arti.getValue() + " cannot be sent over the network");
@@ -569,10 +566,10 @@ public class GNCModeling  {
 		TreeCell cell;
 		NCConnectorNode nextArriving;
 		
-		ArrayList<NCRoute> computed = new ArrayList<NCRoute>(); 
+		List<NCRoute> computed = new ArrayList<NCRoute>(); 
 		
 		// Get all routes concerning that traffic on that switch
-		ArrayList<NCRoute> routes = ncdp.getAllRoutesFor(sw, arti);
+		List<NCRoute> routes = ncdp.getAllRoutesFor(sw, arti);
 		
 		//
 		
@@ -703,9 +700,9 @@ public class GNCModeling  {
 	}
 	
 	public void manageParameters() {
-		ListIterator iterator;
+		//ListIterator iterator;
 		NCEqNode node1, node2;
-		ArrayList<NCConnectorNode> cons1, cons2;
+		List<NCConnectorNode> cons1, cons2;
 		NCConnectorNode con1, con2;
 		int i;
 		int parameter1, parameter2;
@@ -716,14 +713,14 @@ public class GNCModeling  {
 		//NCPath path1;
 		
 		//ArrayList<NCEquipment> newEquipments = new ArrayList<NCEquipment>();
-		ArrayList<NCTraffic> newTraffics = new ArrayList<NCTraffic>();
-		ArrayList<NCLink> newLinks = new ArrayList<NCLink>();
-		ArrayList<NCPath> newPaths = new ArrayList<NCPath>();
+		//List<NCTraffic> newTraffics = new ArrayList<NCTraffic>();
+		//List<NCLink> newLinks = new ArrayList<NCLink>();
+		List<NCPath> newPaths = new ArrayList<NCPath>();
 		
-		ArrayList<NCEquipment> oldEquipments = new ArrayList<NCEquipment>();
-		ArrayList<NCTraffic> oldTraffics = new ArrayList<NCTraffic>();
-		ArrayList<NCLink> oldLinks = new ArrayList<NCLink>();
-		ArrayList<NCPath> oldPaths = new ArrayList<NCPath>();
+		List<NCEquipment> oldEquipments = new ArrayList<NCEquipment>();
+		List<NCTraffic> oldTraffics = new ArrayList<NCTraffic>();
+		List<NCLink> oldLinks = new ArrayList<NCLink>();
+		List<NCPath> oldPaths = new ArrayList<NCPath>();
 		
 		// Are there any path to duplicate?
 		for(NCPath path: ncs.paths) {
@@ -862,5 +859,4 @@ public class GNCModeling  {
 			cpt ++;
 		}
 	}
-
 }
diff --git a/src/main/java/ui/GTMLModeling.java b/src/main/java/ui/GTMLModeling.java
index 545af8aa925b49b37457394b07315957ad9aa89e..f3d8a5b4412a30b2f31ef81b7d28e5886d29ff87 100755
--- a/src/main/java/ui/GTMLModeling.java
+++ b/src/main/java/ui/GTMLModeling.java
@@ -38,35 +38,103 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui;
 
+import java.awt.Point;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
 import avatartranslator.AvatarSpecification;
-import myutil.Conversion;
 import myutil.TraceManager;
-import tmltranslator.*;
+import tmltranslator.HwA;
+import tmltranslator.HwBridge;
+import tmltranslator.HwBus;
+import tmltranslator.HwCPU;
+import tmltranslator.HwCommunicationNode;
+import tmltranslator.HwCrossbar;
+import tmltranslator.HwDMA;
+import tmltranslator.HwExecutionNode;
+import tmltranslator.HwFPGA;
+import tmltranslator.HwLink;
+import tmltranslator.HwMemory;
+import tmltranslator.HwNode;
+import tmltranslator.HwVGMN;
+import tmltranslator.SecurityPattern;
+import tmltranslator.TMLActivity;
+import tmltranslator.TMLActivityElement;
+import tmltranslator.TMLActivityElementChannel;
+import tmltranslator.TMLArchitecture;
+import tmltranslator.TMLAttribute;
+import tmltranslator.TMLCP;
+import tmltranslator.TMLCPError;
+import tmltranslator.TMLCPLib;
+import tmltranslator.TMLCPLibArtifact;
+import tmltranslator.TMLCPSyntaxChecking;
+import tmltranslator.TMLChannel;
+import tmltranslator.TMLCheckingError;
+import tmltranslator.TMLElement;
+import tmltranslator.TMLError;
+import tmltranslator.TMLEvent;
+import tmltranslator.TMLExecI;
+import tmltranslator.TMLMapping;
+import tmltranslator.TMLModeling;
+import tmltranslator.TMLPort;
+import tmltranslator.TMLRequest;
+import tmltranslator.TMLSyntaxChecking;
+import tmltranslator.TMLTask;
+import tmltranslator.TMLType;
 import tmltranslator.modelcompiler.ArchUnitMEC;
 import tmltranslator.tmlcp.TMLCPElement;
 import tmltranslator.tmlcp.TMLSDAction;
 import tmltranslator.tmlcp.TMLSDEvent;
 import tmltranslator.tmlcp.TMLSDMessage;
 import translator.CheckingError;
-import ui.tmlad.*;
+import ui.tmlad.TMLADEncrypt;
+import ui.tmlad.TMLADReadChannel;
+import ui.tmlad.TMLADWriteChannel;
+import ui.tmlad.TMLActivityDiagramPanel;
 import ui.tmlcd.TMLChannelOperator;
 import ui.tmlcd.TMLEventOperator;
 import ui.tmlcd.TMLRequestOperator;
 import ui.tmlcd.TMLTaskOperator;
-import ui.tmlcompd.*;
-import ui.tmldd.*;
+import ui.tmlcompd.TMLCChannelOutPort;
+import ui.tmlcompd.TMLCFork;
+import ui.tmlcompd.TMLCJoin;
+import ui.tmlcompd.TMLCPath;
+import ui.tmlcompd.TMLCPortConnector;
+import ui.tmlcompd.TMLCPrimitiveComponent;
+import ui.tmlcompd.TMLCPrimitivePort;
+import ui.tmlcompd.TMLCRecordComponent;
+import ui.tmldd.TMLArchiArtifact;
+import ui.tmldd.TMLArchiBUSNode;
+import ui.tmldd.TMLArchiBridgeNode;
+import ui.tmldd.TMLArchiCPNode;
+import ui.tmldd.TMLArchiCPUNode;
+import ui.tmldd.TMLArchiCommunicationArtifact;
+import ui.tmldd.TMLArchiCommunicationNode;
+import ui.tmldd.TMLArchiConnectorNode;
+import ui.tmldd.TMLArchiCrossbarNode;
+import ui.tmldd.TMLArchiDMANode;
+import ui.tmldd.TMLArchiEventArtifact;
+import ui.tmldd.TMLArchiFPGANode;
+import ui.tmldd.TMLArchiFirewallNode;
+import ui.tmldd.TMLArchiHWANode;
+import ui.tmldd.TMLArchiKey;
+import ui.tmldd.TMLArchiMemoryNode;
+import ui.tmldd.TMLArchiNode;
+import ui.tmldd.TMLArchiPortArtifact;
+import ui.tmldd.TMLArchiVGMNNode;
 import ui.tmlsd.TGConnectorMessageTMLSD;
 import ui.tmlsd.TMLSDControllerInstance;
 import ui.tmlsd.TMLSDStorageInstance;
 import ui.tmlsd.TMLSDTransferInstance;
 
-import java.awt.*;
-import java.util.*;
-import java.util.List;
-
 /**
  * Class GTMLModeling
  * Use to translate graphical TML modeling to  "tmlmodeling"
@@ -1078,7 +1146,7 @@ public class GTMLModeling {
                     if (!(alreadyConsidered.contains(port1))) {
                         portstome = tmlcdp.tmlctdp.getPortsConnectedTo(port1, componentsToTakeIntoAccount);
                         //TraceManager.addDev("Considering port1 = " +port1.getPortName() + " size of connecting ports:" + portstome.size());
-                        Iterator<?> ite = portstome.listIterator();
+                       // Iterator<?> ite = portstome.listIterator();
                         /*while(ite.hasNext()) {
                             TraceManager.addDev("port=" + ((TMLCPrimitivePort)(ite.next())).getPortName());
                         }*/
@@ -1595,7 +1663,7 @@ public class GTMLModeling {
             } else {
                 // Adding all elements of record
                 //TraceManager.addDev("Found a record named: " + rc.getValue());
-                LinkedList<TAttribute> attr = rc.getAttributes();
+                List<TAttribute> attr = rc.getAttributes();
                 for (TAttribute tat : attr) {
                     if (tat.getType() == TAttribute.NATURAL) {
                         tt = new TMLType(TMLType.NATURAL);
@@ -1654,860 +1722,873 @@ public class GTMLModeling {
 
         while (iterator.hasNext()) {
             tmltask = iterator.next();
-            generateTaskActivityDiagrams(tmltask);
+
+            // Issue #69: Component  disabling
+            ActivityDiagram2TMLTranslator.INSTANCE.generateTaskActivityDiagrams(	tmltask,
+																            		checkingErrors,
+																					warnings,
+																					listE,
+																					tmlm,
+																					securityPatterns,
+																					table,
+																					removedChannels,
+																					removedEvents,
+																					removedRequests );
+//            generateTaskActivityDiagrams(tmltask);
         }
         //TraceManager.addDev( "errors: " + checkingErrors.size() );
         if (checkingErrors.size() > 0) {
             throw new MalformedTMLDesignException("Error(s) found in activity diagrams");
         }
     }
-
-    private String modifyActionString(String _input) {
-        int index = _input.indexOf("++");
-        boolean b1, b2;
-        String tmp;
-
-        if (index > -1) {
-            tmp = _input.substring(0, index).trim();
-
-            b1 = (tmp.substring(0, 1)).matches("[a-zA-Z]");
-            b2 = tmp.matches("\\w*");
-            if (b1 && b2) {
-                return tmp + " = " + tmp + " + 1";
-            }
-        }
-
-        index = _input.indexOf("--");
-        if (index > -1) {
-            tmp = _input.substring(0, index).trim();
-
-            b1 = (tmp.substring(0, 1)).matches("[a-zA-Z]");
-            b2 = tmp.matches("\\w*");
-            if (b1 && b2) {
-                return tmp + " = " + tmp + " - 1";
-            }
-        }
-
-        return modifyString(_input);
-    }
-
-    private String modifyString(String _input) {
-        return Conversion.replaceAllChar(_input, '.', "__");
-    }
-
-    private void generateTaskActivityDiagrams(TMLTask tmltask) throws MalformedTMLDesignException {
-        TMLActivity activity = tmltask.getActivityDiagram();
-        TMLActivityDiagramPanel tadp = (TMLActivityDiagramPanel) (activity.getReferenceObject());
-
-        //TraceManager.addDev("Generating activity diagram of:" + tmltask.getName());
-
-        // search for start state
-        List<TGComponent> list = tadp.getComponentList();
-        Iterator<TGComponent> iterator = list.listIterator();
-        TGComponent tgc;
-        TMLADStartState tss = null;
-        int cptStart = 0;
-        //    boolean rndAdded = false;
-
-        while (iterator.hasNext()) {
-            tgc = iterator.next();
-
-            if (tgc instanceof TMLADStartState) {
-                tss = (TMLADStartState) tgc;
-                cptStart++;
-            }
-        }
-
-        if (tss == null) {
-            TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "No start state in the TML activity diagram of " + tmltask.getName());
-            ce.setTMLTask(tmltask);
-            checkingErrors.add(ce);
-            return;
-        }
-
-        if (cptStart > 1) {
-            TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in the TML activity diagram of " + tmltask.getName());
-            ce.setTMLTask(tmltask);
-            checkingErrors.add(ce);
-            return;
-        }
-
-        // Adding start state
-        TMLStartState tmlss = new TMLStartState("start", tss);
-        listE.addCor(tmlss, tss);
-        activity.setFirst(tmlss);
-
-        // Creation of other elements
-        TMLChannel channel;
-        String[] channels;
-        TMLEvent event;
-        TMLRequest request;
-
-        TMLADRandom tmladrandom;
-        TMLRandom tmlrandom;
-        TMLActionState tmlaction;
-        TMLChoice tmlchoice;
-        TMLExecI tmlexeci;
-        TMLExecIInterval tmlexecii;
-        TMLExecC tmlexecc;
-        TMLExecCInterval tmlexecci;
-        TMLForLoop tmlforloop;
-        TMLReadChannel tmlreadchannel;
-        TMLSendEvent tmlsendevent;
-        TMLSendRequest tmlsendrequest;
-        TMLStopState tmlstopstate;
-        TMLWaitEvent tmlwaitevent;
-        TMLNotifiedEvent tmlnotifiedevent;
-        TMLWriteChannel tmlwritechannel;
-        TMLSequence tmlsequence;
-        TMLRandomSequence tmlrsequence;
-        TMLSelectEvt tmlselectevt;
-        TMLDelay tmldelay;
-        int staticLoopIndex = 0;
-        String sl = "", tmp;
-        TMLType tt;
-        TMLAttribute tmlt;
-
-        iterator = list.listIterator();
-        while (iterator.hasNext()) {
-            tgc = iterator.next();
-            if (tgc.getCheckLatency()) {
-                String name = tmltask.getName() + ":" + tgc.getName();
-                name = name.replaceAll(" ", "");
-                //TraceManager.addDev("To check " + name);
-                if (tgc.getValue().contains("(")) {
-                    tmlm.addCheckedActivity(tgc, name + ":" + tgc.getValue().split("\\(")[0]);
-                } else {
-                    if (tgc instanceof TMLADExecI) {
-                        tmlm.addCheckedActivity(tgc, ((TMLADExecI) tgc).getDelayValue());
-                    }
-                }
-            }
-            if (tgc instanceof TMLADActionState) {
-                tmlaction = new TMLActionState("action", tgc);
-                tmp = ((TMLADActionState) (tgc)).getAction();
-                tmp = modifyActionString(tmp);
-                tmlaction.setAction(tmp);
-                activity.addElement(tmlaction);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlaction, tgc);
-
-            } else if (tgc instanceof TMLADRandom) {
-                tmladrandom = (TMLADRandom) tgc;
-                tmlrandom = new TMLRandom("random" + tmladrandom.getValue(), tgc);
-                tmp = tmladrandom.getVariable();
-                tmp = modifyActionString(tmp);
-                tmlrandom.setVariable(tmp);
-                tmp = tmladrandom.getMinValue();
-                tmp = modifyActionString(tmp);
-                tmlrandom.setMinValue(tmp);
-                tmp = tmladrandom.getMaxValue();
-                tmp = modifyActionString(tmp);
-                tmlrandom.setMaxValue(tmp);
-                tmlrandom.setFunctionId(tmladrandom.getFunctionId());
-                activity.addElement(tmlrandom);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlrandom, tgc);
-
-            } else if (tgc instanceof TMLADChoice) {
-                tmlchoice = new TMLChoice("choice", tgc);
-                // Guards are added at the same time as next activities
-                activity.addElement(tmlchoice);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlchoice, tgc);
-
-            } else if (tgc instanceof TMLADSelectEvt) {
-                tmlselectevt = new TMLSelectEvt("select", tgc);
-                activity.addElement(tmlselectevt);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlselectevt, tgc);
-
-            } else if (tgc instanceof TMLADExecI) {
-                tmlexeci = new TMLExecI("execi", tgc);
-                tmlexeci.setAction(modifyString(((TMLADExecI) tgc).getDelayValue()));
-                tmlexeci.setValue(((TMLADExecI) tgc).getDelayValue());
-                activity.addElement(tmlexeci);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlexeci, tgc);
-
-            } else if (tgc instanceof TMLADExecIInterval) {
-                tmlexecii = new TMLExecIInterval("execi", tgc);
-                tmlexecii.setValue(tgc.getValue());
-                tmlexecii.setMinDelay(modifyString(((TMLADExecIInterval) tgc).getMinDelayValue()));
-                tmlexecii.setMaxDelay(modifyString(((TMLADExecIInterval) tgc).getMaxDelayValue()));
-                activity.addElement(tmlexecii);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlexecii, tgc);
-
-            } else if (tgc instanceof TMLADEncrypt) {
-                tmlexecc = new TMLExecC("encrypt_" + ((TMLADEncrypt) tgc).securityContext, tgc);
-                activity.addElement(tmlexecc);
-                SecurityPattern sp = securityPatterns.get(((TMLADEncrypt) tgc).securityContext);
-                if (sp == null) {
-                    //Throw error for missing security pattern
-                    UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADEncrypt) tgc).securityContext + " not found");
-                    ce.setTDiagramPanel(tadp);
-                    ce.setTGComponent(tgc);
-                    checkingErrors.add(ce);
-                } else {
-                    tmlexecc.securityPattern = sp;
-                    tmlexecc.setAction(Integer.toString(sp.encTime));
-                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                    tmlm.securityTaskMap.get(sp).add(tmltask);
-                    listE.addCor(tmlexecc, tgc);
-                }
-            } else if (tgc instanceof TMLADDecrypt) {
-                tmlexecc = new TMLExecC("decrypt_" + ((TMLADDecrypt) tgc).securityContext, tgc);
-                activity.addElement(tmlexecc);
-                SecurityPattern sp = securityPatterns.get(((TMLADDecrypt) tgc).securityContext);
-                if (sp == null) {
-                    //Throw error for missing security pattern
-                    UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADDecrypt) tgc).securityContext + " not found");
-                    ce.setTDiagramPanel(tadp);
-                    ce.setTGComponent(tgc);
-                    checkingErrors.add(ce);
-                } else {
-                    tmlexecc.securityPattern = sp;
-                    tmlexecc.setAction(Integer.toString(sp.decTime));
-                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                    listE.addCor(tmlexecc, tgc);
-                    tmlm.securityTaskMap.get(sp).add(tmltask);
-                }
-
-            } else if (tgc instanceof TMLADExecC) {
-                tmlexecc = new TMLExecC("execc", tgc);
-                tmlexecc.setValue(((TMLADExecC) tgc).getDelayValue());
-                tmlexecc.setAction(modifyString(((TMLADExecC) tgc).getDelayValue()));
-                activity.addElement(tmlexecc);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlexecc, tgc);
-
-            } else if (tgc instanceof TMLADExecCInterval) {
-                tmlexecci = new TMLExecCInterval("execci", tgc);
-                tmlexecci.setMinDelay(modifyString(((TMLADExecCInterval) tgc).getMinDelayValue()));
-                tmlexecci.setMaxDelay(modifyString(((TMLADExecCInterval) tgc).getMaxDelayValue()));
-                activity.addElement(tmlexecci);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlexecci, tgc);
-
-            } else if (tgc instanceof TMLADDelay) {
-                tmldelay = new TMLDelay("d-delay", tgc);
-                tmldelay.setMinDelay(modifyString(((TMLADDelay) tgc).getDelayValue()));
-                tmldelay.setMaxDelay(modifyString(((TMLADDelay) tgc).getDelayValue()));
-                tmldelay.setUnit(((TMLADDelay) tgc).getUnit());
-                activity.addElement(tmldelay);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmldelay, tgc);
-
-            } else if (tgc instanceof TMLADDelayInterval) {
-                tmldelay = new TMLDelay("nd-delay", tgc);
-                tmldelay.setMinDelay(modifyString(((TMLADDelayInterval) tgc).getMinDelayValue()));
-                tmldelay.setMaxDelay(modifyString(((TMLADDelayInterval) tgc).getMaxDelayValue()));
-                tmldelay.setUnit(((TMLADDelayInterval) tgc).getUnit());
-                activity.addElement(tmldelay);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmldelay, tgc);
-
-            } else if (tgc instanceof TMLADForLoop) {
-                tmlforloop = new TMLForLoop("loop", tgc);
-                tmlforloop.setInit(modifyString(((TMLADForLoop) tgc).getInit()));
-                tmp = ((TMLADForLoop) tgc).getCondition();
-                /*if (tmp.trim().length() == 0) {
-                  tmp = "true";
-                  }*/
-                tmlforloop.setCondition(modifyString(tmp));
-                tmlforloop.setIncrement(modifyActionString(((TMLADForLoop) tgc).getIncrement()));
-
-                activity.addElement(tmlforloop);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlforloop, tgc);
-
-            } else if (tgc instanceof TMLADForStaticLoop) {
-                sl = "loop__" + staticLoopIndex;
-                tt = new TMLType(TMLType.NATURAL);
-                tmlt = new TMLAttribute(sl, tt);
-                tmlt.initialValue = "0";
-                tmltask.addAttribute(tmlt);
-                tmlforloop = new TMLForLoop(sl, tgc);
-                tmlforloop.setInit(sl + " = 0");
-                tmlforloop.setCondition(sl + "<" + modifyString(tgc.getValue()));
-                tmlforloop.setIncrement(sl + " = " + sl + " + 1");
-                activity.addElement(tmlforloop);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlforloop, tgc);
-                staticLoopIndex++;
-
-            } else if (tgc instanceof TMLADForEverLoop) {
-                /*sl = "loop__" + staticLoopIndex;
-                  tt = new TMLType(TMLType.NATURAL);
-                  tmlt = new TMLAttribute(sl, tt);
-                  tmlt.initialValue = "0";
-                  tmltask.addAttribute(tmlt);*/
-                tmlforloop = new TMLForLoop("infiniteloop", tgc);
-                tmlforloop.setInit("");
-                tmlforloop.setCondition("");
-                tmlforloop.setIncrement("");
-                tmlforloop.setInfinite(true);
-                activity.addElement(tmlforloop);
-                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                listE.addCor(tmlforloop, tgc);
-                staticLoopIndex++;
-
-                tmlstopstate = new TMLStopState("Stop after infinite loop", null);
-                activity.addElement(tmlstopstate);
-                tmlforloop.addNext(tmlstopstate);
-
-            } else if (tgc instanceof TMLADSequence) {
-                tmlsequence = new TMLSequence("seq", tgc);
-                activity.addElement(tmlsequence);
-                listE.addCor(tmlsequence, tgc);
-
-            } else if (tgc instanceof TMLADUnorderedSequence) {
-                tmlrsequence = new TMLRandomSequence("rseq", tgc);
-                activity.addElement(tmlrsequence);
-                listE.addCor(tmlrsequence, tgc);
-
-            } else if (tgc instanceof TMLADReadChannel) {
-                // Get the channel
-                //TMLADReadChannel rd = (TMLADReadChannel) tgc;
-                channel = tmlm.getChannelByName(getFromTable(tmltask, ((TMLADReadChannel) tgc).getChannelName()));
-                /*if (rd.isAttacker()){
-                    channel = tmlm.getChannelByName(getAttackerChannel(((TMLADReadChannel)tgc).getChannelName()));
-				}*/
-                if (channel == null) {
-                    if (Conversion.containsStringInList(removedChannels, ((TMLADReadChannel) tgc).getChannelName())) {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADReadChannel) tgc).getChannelName() + " has been removed because the corresponding channel is not taken into account");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        warnings.add(ce);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                        activity.addElement(new TMLJunction("void junction", tgc));
-                    } else {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADReadChannel) tgc).getChannelName() + " is an unknown channel");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                        checkingErrors.add(ce);
-                    }
-
-                } else {
-                    tmlreadchannel = new TMLReadChannel("read channel", tgc);
-                    tmlreadchannel.setNbOfSamples(modifyString(((TMLADReadChannel) tgc).getSamplesValue()));
-                    tmlreadchannel.setEncForm(((TMLADReadChannel) tgc).getEncForm());               
-                    tmlreadchannel.addChannel(channel);
-                    //security pattern
-                    if (securityPatterns.get(((TMLADReadChannel) tgc).getSecurityContext()) != null) {
-                        tmlreadchannel.securityPattern = securityPatterns.get(((TMLADReadChannel) tgc).getSecurityContext());
-                        //NbOfSamples will increase due to extra overhead from MAC
-                        int cur = 1;
-                        try {
-                            cur = Integer.valueOf(modifyString(((TMLADReadChannel) tgc).getSamplesValue()));
-                        } catch (NumberFormatException e) {
-                        } catch (NullPointerException e) {
-                        }
-                        int add = Integer.valueOf(tmlreadchannel.securityPattern.overhead);
-                        if (!tmlreadchannel.securityPattern.nonce.equals("")) {
-                            SecurityPattern nonce = securityPatterns.get(tmlreadchannel.securityPattern.nonce);
-                            if (nonce != null) {
-                                add = Integer.valueOf(nonce.overhead);
-                            }
-                        }
-                        cur = cur + add;
-                        tmlreadchannel.setNbOfSamples(Integer.toString(cur));
-                    } else if (!((TMLADReadChannel) tgc).getSecurityContext().isEmpty()) {
-                        //Throw error for missing security pattern
-                        UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADReadChannel) tgc).getSecurityContext() + " not found");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                    }
-                    if (tmltask.isAttacker()) {
-                        tmlreadchannel.setAttacker(true);
-                    }
-                    activity.addElement(tmlreadchannel);
-                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                    listE.addCor(tmlreadchannel, tgc);
-                }
-            } else if (tgc instanceof TMLADSendEvent) {
-                event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADSendEvent) tgc).getEventName()));
-                if (event == null) {
-                    if (Conversion.containsStringInList(removedEvents, ((TMLADSendEvent) tgc).getEventName())) {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        warnings.add(ce);
-                        activity.addElement(new TMLJunction("void junction", tgc));
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                    } else {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent) tgc).getEventName() + " is an unknown event");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                    }
-                } else {
-                    tmlsendevent = new TMLSendEvent("send event", tgc);
-                    tmlsendevent.setEvent(event);
-
-                    for (int i = 0; i < ((TMLADSendEvent) tgc).realNbOfParams(); i++) {
-                        tmp = modifyString(((TMLADSendEvent) tgc).getRealParamValue(i));
-                        Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
-                        if (allVariables.size() > 0) {
-                            for (int k = 0; k < allVariables.size(); k++) {
-                                //TraceManager.addDev("Adding record: " + allVariables.get(k));
-                                tmlsendevent.addParam(allVariables.get(k));
-                            }
-                        } else {
-                            //TraceManager.addDev("Adding param: " + tmp);
-                            tmlsendevent.addParam(tmp);
-                        }
-                    }
-                    if (event.getNbOfParams() != tmlsendevent.getNbOfParams()) {
-                        //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " sendevent#:" + tmlsendevent.getNbOfParams());
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent) tgc).getEventName() + ": wrong number of parameters");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                    } else {
-                        activity.addElement(tmlsendevent);
-                        listE.addCor(tmlsendevent, tgc);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                    }
-                }
-
-            } else if (tgc instanceof TMLADSendRequest) {
-                request = tmlm.getRequestByName(getFromTable(tmltask, ((TMLADSendRequest) tgc).getRequestName()));
-                if (request == null) {
-                    if (Conversion.containsStringInList(removedRequests, ((TMLADSendRequest) tgc).getRequestName())) {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendRequest) tgc).getRequestName() + " has been removed because the corresponding request is not taken into account");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        warnings.add(ce);
-                        activity.addElement(new TMLJunction("void junction", tgc));
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                    } else {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest) tgc).getRequestName() + " is an unknown request");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                    }
-                } else {
-                    tmlsendrequest = new TMLSendRequest("send request", tgc);
-                    tmlsendrequest.setRequest(request);
-                    for (int i = 0; i < ((TMLADSendRequest) tgc).realNbOfParams(); i++) {
-                        tmp = modifyString(((TMLADSendRequest) tgc).getRealParamValue(i));
-                        Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
-                        if (allVariables.size() > 0) {
-                            for (int k = 0; k < allVariables.size(); k++) {
-                                TraceManager.addDev("Adding record: " + allVariables.get(k));
-                                tmlsendrequest.addParam(allVariables.get(k));
-                                request.addParamName(allVariables.get(k));
-                            }
-                        } else {
-                            //TraceManager.addDev("Adding param: " + tmp);
-                            tmlsendrequest.addParam(tmp);
-                            request.addParamName(tmp);
-                        }
-                    }
-                    if (request.getNbOfParams() != tmlsendrequest.getNbOfParams()) {
-                        //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " sendrequest#:" + tmlsendrequest.getNbOfParams());
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest) tgc).getRequestName() + ": wrong number of parameters");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                    } else {
-                        activity.addElement(tmlsendrequest);
-                        listE.addCor(tmlsendrequest, tgc);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                    }
-                }
-
-            } else if (tgc instanceof TMLADReadRequestArg) {
-                request = tmlm.getRequestToMe(tmltask);
-                if (request == null) {
-                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "This task is not requested: cannot use \"reading request arg\" operator");
-                    ce.setTDiagramPanel(tadp);
-                    ce.setTGComponent(tgc);
-                    checkingErrors.add(ce);
-                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                } else {
-                    tmlaction = new TMLActionState("action reading args", tgc);
-                    String act = "";
-                    int cpt = 1;
-                    for (int i = 0; i < ((TMLADReadRequestArg) tgc).realNbOfParams(); i++) {
-                        tmp = modifyString(((TMLADReadRequestArg) tgc).getRealParamValue(i));
-                        Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
-
-                        if (allVariables.size() > 0) {
-                            for (int k = 0; k < allVariables.size(); k++) {
-                                //TraceManager.addDev("Adding record: " + allVariables.get(k));
-                                if (cpt != 1) {
-                                    act += "$";
-                                }
-                                act += allVariables.get(k) + " = arg" + cpt + "__req";
-                                cpt++;
-                            }
-                        } else {
-                            //TraceManager.addDev("Adding param: " + tmp);
-                            if (cpt != 1) {
-                                act += "$";
-                            }
-                            act += tmp + " = arg" + cpt + "__req";
-                            cpt++;
-                        }
-                    }
-                    if (request.getNbOfParams() != (cpt - 1)) {
-                        //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " read request arg#:" + (cpt-1));
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Wrong number of parameters in \"reading request arg\" operator");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                    } else {
-                        //TraceManager.addDev("Adding action = " + act);
-                        tmlaction.setAction(act);
-                        activity.addElement(tmlaction);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                        listE.addCor(tmlaction, tgc);
-                    }
-
-
-                }
-
-            } else if (tgc instanceof TMLADStopState) {
-                tmlstopstate = new TMLStopState("stop state", tgc);
-                activity.addElement(tmlstopstate);
-                listE.addCor(tmlstopstate, tgc);
-
-            } else if (tgc instanceof TMLADNotifiedEvent) {
-                event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADNotifiedEvent) tgc).getEventName()));
-                if (event == null) {
-                    if (removedEvents.size() > 0) {
-                        if (Conversion.containsStringInList(removedEvents, ((TMLADNotifiedEvent) tgc).getEventName())) {
-                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADNotifiedEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account");
-                            ce.setTDiagramPanel(tadp);
-                            ce.setTGComponent(tgc);
-                            warnings.add(ce);
-                            activity.addElement(new TMLJunction("void junction", tgc));
-                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                        } else {
-                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent) tgc).getEventName() + " is an unknown event");
-                            ce.setTDiagramPanel(tadp);
-                            ce.setTGComponent(tgc);
-                            checkingErrors.add(ce);
-                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                        }
-                    } else {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent) tgc).getEventName() + " is an unknown event");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                    }
-                } else {
-                    event.setNotified(true);
-                    tmlnotifiedevent = new TMLNotifiedEvent("notified event", tgc);
-                    tmlnotifiedevent.setEvent(event);
-                    tmlnotifiedevent.setVariable(modifyString(((TMLADNotifiedEvent) tgc).getVariable()));
-                    activity.addElement(tmlnotifiedevent);
-                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                    listE.addCor(tmlnotifiedevent, tgc);
-                }
-
-            } else if (tgc instanceof TMLADWaitEvent) {
-                event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADWaitEvent) tgc).getEventName()));
-                if (event == null) {
-                    if (removedEvents.size() > 0) {
-                        if (Conversion.containsStringInList(removedEvents, ((TMLADWaitEvent) tgc).getEventName())) {
-                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWaitEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account");
-                            ce.setTDiagramPanel(tadp);
-                            ce.setTGComponent(tgc);
-                            warnings.add(ce);
-                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                            activity.addElement(new TMLJunction("void junction", tgc));
-                        } else {
-                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + " is an unknown event");
-                            ce.setTDiagramPanel(tadp);
-                            ce.setTGComponent(tgc);
-                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                            checkingErrors.add(ce);
-                        }
-                    } else {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + " is an unknown event");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                        checkingErrors.add(ce);
-                    }
-                } else {
-                    //TraceManager.addDev("Nb of param of event:" + event.getNbOfParams());
-                    tmlwaitevent = new TMLWaitEvent("wait event", tgc);
-                    tmlwaitevent.setEvent(event);
-                    for (int i = 0; i < ((TMLADWaitEvent) tgc).realNbOfParams(); i++) {
-                        tmp = modifyString(((TMLADWaitEvent) tgc).getRealParamValue(i));
-                        Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
-                        if (allVariables.size() > 0) {
-                            for (int k = 0; k < allVariables.size(); k++) {
-                                //TraceManager.addDev("Adding record: " + allVariables.get(k));
-                                tmlwaitevent.addParam(allVariables.get(k));
-                            }
-                        } else {
-                            //TraceManager.addDev("Adding param: " + tmp);
-                            tmlwaitevent.addParam(tmp);
-                        }
-                    }
-                    if (event.getNbOfParams() != tmlwaitevent.getNbOfParams()) {
-                        //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " waitevent#:" + tmlwaitevent.getNbOfParams());
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + ": wrong number of parameters");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                    } else {
-                        activity.addElement(tmlwaitevent);
-                        listE.addCor(tmlwaitevent, tgc);
-                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                    }
-
-                }
-
-            } else if (tgc instanceof TMLADWriteChannel) {
-                // Get channels
-                //TMLADWriteChannel wr = (TMLADWriteChannel) tgc;
-                channels = ((TMLADWriteChannel) tgc).getChannelsByName();
-                boolean error = false;
-                for (int i = 0; i < channels.length; i++) {
-                    //TraceManager.addDev("Getting from table " + tmltask.getName() + "/" +channels[i]);
-                    channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i]));
-                    if (channel == null) {
-                        if (Conversion.containsStringInList(removedChannels, ((TMLADWriteChannel) tgc).getChannelName(i))) {
-                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWriteChannel) tgc).getChannelName(i) + " has been removed because the corresponding channel is not taken into account");
-                            ce.setTDiagramPanel(tadp);
-                            ce.setTGComponent(tgc);
-                            warnings.add(ce);
-                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                            activity.addElement(new TMLJunction("void junction", tgc));
-                        } else {
-                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWriteChannel) tgc).getChannelName(i) + " is an unknown channel");
-                            ce.setTDiagramPanel(tadp);
-                            ce.setTGComponent(tgc);
-                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
-                            checkingErrors.add(ce);
-                        }
-                        error = true;
-
-                    }
-                }
-                if (!error) {
-                    tmlwritechannel = new TMLWriteChannel("write channel", tgc);
-                    tmlwritechannel.setNbOfSamples(modifyString(((TMLADWriteChannel) tgc).getSamplesValue()));
-                    tmlwritechannel.setEncForm(((TMLADWriteChannel) tgc).getEncForm());
-                    for (int i = 0; i < channels.length; i++) {
-                        channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i]));
-                        tmlwritechannel.addChannel(channel);
-                    }
-                    //if (wr.isAttacker()){
-                    //channel = tmlm.getChannelByName(getAttackerChannel(channels[0]));
-                    //tmlwritechannel.addChannel(channel);
-                    //}
-                    //add sec pattern
-                    if (securityPatterns.get(((TMLADWriteChannel) tgc).getSecurityContext()) != null) {
-                        tmlwritechannel.securityPattern = securityPatterns.get(((TMLADWriteChannel) tgc).getSecurityContext());
-                        int cur = Integer.valueOf(modifyString(((TMLADWriteChannel) tgc).getSamplesValue()));
-                        int add = Integer.valueOf(tmlwritechannel.securityPattern.overhead);
-                        if (!tmlwritechannel.securityPattern.nonce.equals("")) {
-                            SecurityPattern nonce = securityPatterns.get(tmlwritechannel.securityPattern.nonce);
-                            if (nonce != null) {
-                                add = Integer.valueOf(nonce.overhead);
-                            }
-                        }
-                        cur = cur + add;
-                        tmlwritechannel.setNbOfSamples(Integer.toString(cur));
-                    } else if (!((TMLADWriteChannel) tgc).getSecurityContext().isEmpty()) {
-                        //Throw error for missing security pattern
-                        UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADWriteChannel) tgc).getSecurityContext() + " not found");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                    }
-                    if (tmltask.isAttacker()) {
-                        tmlwritechannel.setAttacker(true);
-                    }
-                    activity.addElement(tmlwritechannel);
-                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
-                    listE.addCor(tmlwritechannel, tgc);
-                }
-            }
-        }
-
-        // Interconnection between elements
-        TGConnectorTMLAD tgco;
-        TGConnectingPoint p1, p2;
-        TMLActivityElement ae1, ae2;
-        TGComponent tgc1, tgc2, tgc3;
-        int j, index;
-
-        iterator = list.listIterator();
-        while (iterator.hasNext()) {
-            tgc = iterator.next();
-            if (tgc instanceof TGConnectorTMLAD) {
-                tgco = (TGConnectorTMLAD) tgc;
-                p1 = tgco.getTGConnectingPointP1();
-                p2 = tgco.getTGConnectingPointP2();
-
-                // Identification of connected components
-                tgc1 = null;
-                tgc2 = null;
-                for (j = 0; j < list.size(); j++) {
-                    tgc3 = list.get(j);
-                    if (tgc3.belongsToMe(p1)) {
-                        tgc1 = tgc3;
-                    }
-                    if (tgc3.belongsToMe(p2)) {
-                        tgc2 = tgc3;
-                    }
-                }
-
-                // Connecting tml modeling components
-                if ((tgc1 != null) && (tgc2 != null)) {
-                    //ADComponent ad1, ad2;
-                    ae1 = activity.findReferenceElement(tgc1);
-                    ae2 = activity.findReferenceElement(tgc2);
-
-                    if ((ae1 != null) && (ae2 != null)) {
-                        //Special case if "for loop" or if "choice"
-
-                        if (ae1 instanceof TMLForLoop) {
-                            index = tgc1.indexOf(p1) - 1;
-                            if (index == 0) {
-                                ae1.addNext(0, ae2);
-                            } else {
-                                ae1.addNext(ae2);
-                            }
-
-                        } else if (ae1 instanceof TMLChoice) {
-                            index = tgc1.indexOf(p1) - 1;
-                            //TraceManager.addDev("Adding next:" + ae2);
-                            ae1.addNext(ae2);
-                            //TraceManager.addDev("Adding guard:" + ((TMLADChoice)tgc1).getGuard(index));
-                            ((TMLChoice) ae1).addGuard(modifyString(((TMLADChoice) tgc1).getGuard(index)));
-
-                        } else if (ae1 instanceof TMLSequence) {
-                            index = tgc1.indexOf(p1) - 1;
-                            ((TMLSequence) ae1).addIndex(index);
-                            ae1.addNext(ae2);
-                            //TraceManager.addDev("Adding " + ae2 + " at index " + index);
-
-                        } else if (ae1 instanceof TMLRandomSequence) {
-                            index = tgc1.indexOf(p1) - 1;
-                            ((TMLRandomSequence) ae1).addIndex(index);
-                            ae1.addNext(ae2);
-                            //TraceManager.addDev("Adding " + ae2 + " at index " + index);
-
-                        } else {
-                            ae1.addNext(ae2);
-                        }
-                    }
-                }
-            }
-        }
-
-
-        // Check that each "for" has two nexts
-        // Check that TMLChoice have compatible guards
-        // Check TML select evts
-        iterator = list.listIterator();
-        while (iterator.hasNext()) {
-            tgc = iterator.next();
-
-            if ((tgc instanceof TMLADForLoop) || (tgc instanceof TMLADForStaticLoop)) {
-                ae1 = activity.findReferenceElement(tgc);
-                if (ae1 != null) {
-                    if (ae1.getNbNext() != 2) {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted for loop: a loop must have an internal behavior, and an exit behavior ");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                    }
-                }
-            } else if (tgc instanceof TMLADChoice) {
-                tmlchoice = (TMLChoice) (activity.findReferenceElement(tgc));
-                tmlchoice.orderGuards();
-
-                int nbNonDeter = tmlchoice.nbOfNonDeterministicGuard();
-                int nbStocha = tmlchoice.nbOfStochasticGuard();
-                if ((nbNonDeter > 0) && (nbStocha > 0)) {
-                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic and stochastic guards");
-                    ce.setTDiagramPanel(tadp);
-                    ce.setTGComponent(tgc);
-                    checkingErrors.add(ce);
-                }
-                int nb = Math.max(nbNonDeter, nbStocha);
-                if (nb > 0) {
-                    nb = nb + tmlchoice.nbOfElseAndAfterGuards();
-                    if (nb != tmlchoice.getNbGuard()) {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic/ stochastic and regular guards)");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                    }
-                }
-
-                if (tmlchoice.nbOfNonDeterministicGuard() > 0) {
-                    /*if (!rndAdded) {
-                      TMLAttribute tmlt = new TMLAttribute("rnd__0", new TMLType(TMLType.NATURAL));
-                      tmlt.initialValue = "";
-                      tmltask.addAttribute(tmlt);
-                      rndAdded = true;
-                      }*/
-                }
-                if (tmlchoice.hasMoreThanOneElse()) {
-                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [else] guard");
-                    ce.setTDiagramPanel(tadp);
-                    ce.setTGComponent(tgc);
-                    checkingErrors.add(ce);
-                } else if ((index = tmlchoice.getElseGuard()) > -1) {
-                    index = tmlchoice.getElseGuard();
-                    if (index == 0) {
-                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have a regular guard");
-                        ce.setTDiagramPanel(tadp);
-                        ce.setTGComponent(tgc);
-                        checkingErrors.add(ce);
-                    }
-                }
-                if (tmlchoice.hasMoreThanOneAfter()) {
-                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [after] guard");
-                    ce.setTDiagramPanel(tadp);
-                    ce.setTGComponent(tgc);
-                    checkingErrors.add(ce);
-                }
-            }
-            if (tgc instanceof TMLADSelectEvt) {
-                tmlselectevt = (TMLSelectEvt) (activity.findReferenceElement(tgc));
-                if (!tmlselectevt.isARealSelectEvt()) {
-                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "'Select events'  should be followed by only event receiving operators");
-                    ce.setTDiagramPanel(tadp);
-                    ce.setTGComponent(tgc);
-                    checkingErrors.add(ce);
-                }
-            }
-
-        }
-
-        // Sorting nexts elements of Sequence
-        for (j = 0; j < activity.nElements(); j++) {
-            ae1 = activity.get(j);
-            if (ae1 instanceof TMLSequence) {
-                ((TMLSequence) ae1).sortNexts();
-            }
-            if (ae1 instanceof TMLRandomSequence) {
-                ((TMLRandomSequence) ae1).sortNexts();
-            }
-        }
-    }
+//
+//    private String modifyActionString(String _input) {
+//        int index = _input.indexOf("++");
+//        boolean b1, b2;
+//        String tmp;
+//
+//        if (index > -1) {
+//            tmp = _input.substring(0, index).trim();
+//
+//            b1 = (tmp.substring(0, 1)).matches("[a-zA-Z]");
+//            b2 = tmp.matches("\\w*");
+//            if (b1 && b2) {
+//                return tmp + " = " + tmp + " + 1";
+//            }
+//        }
+//
+//        index = _input.indexOf("--");
+//        if (index > -1) {
+//            tmp = _input.substring(0, index).trim();
+//
+//            b1 = (tmp.substring(0, 1)).matches("[a-zA-Z]");
+//            b2 = tmp.matches("\\w*");
+//            if (b1 && b2) {
+//                return tmp + " = " + tmp + " - 1";
+//            }
+//        }
+//
+//        return modifyString(_input);
+//    }
+//
+//    private String modifyString(String _input) {
+//        return Conversion.replaceAllChar(_input, '.', "__");
+//    }
+
+    // Issue #69: Moved to class ActivityDiagram2TMLTranslator
+//    private void generateTaskActivityDiagrams(TMLTask tmltask) throws MalformedTMLDesignException {
+//        TMLActivity activity = tmltask.getActivityDiagram();
+//        TMLActivityDiagramPanel tadp = (TMLActivityDiagramPanel) (activity.getReferenceObject());
+//
+//        //TraceManager.addDev("Generating activity diagram of:" + tmltask.getName());
+//
+//        // search for start state
+//        List<TGComponent> list = tadp.getComponentList();
+//        Iterator<TGComponent> iterator = list.listIterator();
+//        TGComponent tgc;
+//        TMLADStartState tss = null;
+//        int cptStart = 0;
+//        //    boolean rndAdded = false;
+//
+//        while (iterator.hasNext()) {
+//            tgc = iterator.next();
+//
+//            if (tgc instanceof TMLADStartState) {
+//                tss = (TMLADStartState) tgc;
+//                cptStart++;
+//            }
+//        }
+//
+//        if (tss == null) {
+//            TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "No start state in the TML activity diagram of " + tmltask.getName());
+//            ce.setTMLTask(tmltask);
+//            checkingErrors.add(ce);
+//            return;
+//        }
+//
+//        if (cptStart > 1) {
+//            TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in the TML activity diagram of " + tmltask.getName());
+//            ce.setTMLTask(tmltask);
+//            checkingErrors.add(ce);
+//            return;
+//        }
+//
+//        // Adding start state
+//        TMLStartState tmlss = new TMLStartState("start", tss);
+//        listE.addCor(tmlss, tss);
+//        activity.setFirst(tmlss);
+//
+//        // Creation of other elements
+//        TMLChannel channel;
+//        String[] channels;
+//        TMLEvent event;
+//        TMLRequest request;
+//
+//        TMLADRandom tmladrandom;
+//        TMLRandom tmlrandom;
+//        TMLActionState tmlaction;
+//        TMLChoice tmlchoice;
+//        TMLExecI tmlexeci;
+//        TMLExecIInterval tmlexecii;
+//        TMLExecC tmlexecc;
+//        TMLExecCInterval tmlexecci;
+//        TMLForLoop tmlforloop;
+//        TMLReadChannel tmlreadchannel;
+//        TMLSendEvent tmlsendevent;
+//        TMLSendRequest tmlsendrequest;
+//        TMLStopState tmlstopstate;
+//        TMLWaitEvent tmlwaitevent;
+//        TMLNotifiedEvent tmlnotifiedevent;
+//        TMLWriteChannel tmlwritechannel;
+//        TMLSequence tmlsequence;
+//        TMLRandomSequence tmlrsequence;
+//        TMLSelectEvt tmlselectevt;
+//        TMLDelay tmldelay;
+//        int staticLoopIndex = 0;
+//        String sl = "", tmp;
+//        TMLType tt;
+//        TMLAttribute tmlt;
+//
+//        iterator = list.listIterator();
+//        while (iterator.hasNext()) {
+//            tgc = iterator.next();
+//            if (tgc.getCheckLatency()) {
+//                String name = tmltask.getName() + ":" + tgc.getName();
+//                name = name.replaceAll(" ", "");
+//                //TraceManager.addDev("To check " + name);
+//                if (tgc.getValue().contains("(")) {
+//                    tmlm.addCheckedActivity(tgc, name + ":" + tgc.getValue().split("\\(")[0]);
+//                } else {
+//                    if (tgc instanceof TMLADExecI) {
+//                        tmlm.addCheckedActivity(tgc, ((TMLADExecI) tgc).getDelayValue());
+//                    }
+//                }
+//            }
+//            if (tgc instanceof TMLADActionState) {
+//                tmlaction = new TMLActionState("action", tgc);
+//                tmp = ((TMLADActionState) (tgc)).getAction();
+//                tmp = modifyActionString(tmp);
+//                tmlaction.setAction(tmp);
+//                activity.addElement(tmlaction);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlaction, tgc);
+//
+//            } else if (tgc instanceof TMLADRandom) {
+//                tmladrandom = (TMLADRandom) tgc;
+//                tmlrandom = new TMLRandom("random" + tmladrandom.getValue(), tgc);
+//                tmp = tmladrandom.getVariable();
+//                tmp = modifyActionString(tmp);
+//                tmlrandom.setVariable(tmp);
+//                tmp = tmladrandom.getMinValue();
+//                tmp = modifyActionString(tmp);
+//                tmlrandom.setMinValue(tmp);
+//                tmp = tmladrandom.getMaxValue();
+//                tmp = modifyActionString(tmp);
+//                tmlrandom.setMaxValue(tmp);
+//                tmlrandom.setFunctionId(tmladrandom.getFunctionId());
+//                activity.addElement(tmlrandom);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlrandom, tgc);
+//
+//            } else if (tgc instanceof TMLADChoice) {
+//                tmlchoice = new TMLChoice("choice", tgc);
+//                // Guards are added at the same time as next activities
+//                activity.addElement(tmlchoice);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlchoice, tgc);
+//
+//            } else if (tgc instanceof TMLADSelectEvt) {
+//                tmlselectevt = new TMLSelectEvt("select", tgc);
+//                activity.addElement(tmlselectevt);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlselectevt, tgc);
+//
+//            } else if (tgc instanceof TMLADExecI) {
+//                tmlexeci = new TMLExecI("execi", tgc);
+//                tmlexeci.setAction(modifyString(((TMLADExecI) tgc).getDelayValue()));
+//                tmlexeci.setValue(((TMLADExecI) tgc).getDelayValue());
+//                activity.addElement(tmlexeci);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlexeci, tgc);
+//
+//            } else if (tgc instanceof TMLADExecIInterval) {
+//                tmlexecii = new TMLExecIInterval("execi", tgc);
+//                tmlexecii.setValue(tgc.getValue());
+//                tmlexecii.setMinDelay(modifyString(((TMLADExecIInterval) tgc).getMinDelayValue()));
+//                tmlexecii.setMaxDelay(modifyString(((TMLADExecIInterval) tgc).getMaxDelayValue()));
+//                activity.addElement(tmlexecii);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlexecii, tgc);
+//
+//            } else if (tgc instanceof TMLADEncrypt) {
+//                tmlexecc = new TMLExecC("encrypt_" + ((TMLADEncrypt) tgc).securityContext, tgc);
+//                activity.addElement(tmlexecc);
+//                SecurityPattern sp = securityPatterns.get(((TMLADEncrypt) tgc).securityContext);
+//                if (sp == null) {
+//                    //Throw error for missing security pattern
+//                    UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADEncrypt) tgc).securityContext + " not found");
+//                    ce.setTDiagramPanel(tadp);
+//                    ce.setTGComponent(tgc);
+//                    checkingErrors.add(ce);
+//                } else {
+//                    tmlexecc.securityPattern = sp;
+//                    tmlexecc.setAction(Integer.toString(sp.encTime));
+//                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                    tmlm.securityTaskMap.get(sp).add(tmltask);
+//                    listE.addCor(tmlexecc, tgc);
+//                }
+//            } else if (tgc instanceof TMLADDecrypt) {
+//                tmlexecc = new TMLExecC("decrypt_" + ((TMLADDecrypt) tgc).securityContext, tgc);
+//                activity.addElement(tmlexecc);
+//                SecurityPattern sp = securityPatterns.get(((TMLADDecrypt) tgc).securityContext);
+//                if (sp == null) {
+//                    //Throw error for missing security pattern
+//                    UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADDecrypt) tgc).securityContext + " not found");
+//                    ce.setTDiagramPanel(tadp);
+//                    ce.setTGComponent(tgc);
+//                    checkingErrors.add(ce);
+//                } else {
+//                    tmlexecc.securityPattern = sp;
+//                    tmlexecc.setAction(Integer.toString(sp.decTime));
+//                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                    listE.addCor(tmlexecc, tgc);
+//                    tmlm.securityTaskMap.get(sp).add(tmltask);
+//                }
+//
+//            } else if (tgc instanceof TMLADExecC) {
+//                tmlexecc = new TMLExecC("execc", tgc);
+//                tmlexecc.setValue(((TMLADExecC) tgc).getDelayValue());
+//                tmlexecc.setAction(modifyString(((TMLADExecC) tgc).getDelayValue()));
+//                activity.addElement(tmlexecc);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlexecc, tgc);
+//
+//            } else if (tgc instanceof TMLADExecCInterval) {
+//                tmlexecci = new TMLExecCInterval("execci", tgc);
+//                tmlexecci.setMinDelay(modifyString(((TMLADExecCInterval) tgc).getMinDelayValue()));
+//                tmlexecci.setMaxDelay(modifyString(((TMLADExecCInterval) tgc).getMaxDelayValue()));
+//                activity.addElement(tmlexecci);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlexecci, tgc);
+//
+//            } else if (tgc instanceof TMLADDelay) {
+//                tmldelay = new TMLDelay("d-delay", tgc);
+//                tmldelay.setMinDelay(modifyString(((TMLADDelay) tgc).getDelayValue()));
+//                tmldelay.setMaxDelay(modifyString(((TMLADDelay) tgc).getDelayValue()));
+//                tmldelay.setUnit(((TMLADDelay) tgc).getUnit());
+//                activity.addElement(tmldelay);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmldelay, tgc);
+//
+//            } else if (tgc instanceof TMLADDelayInterval) {
+//                tmldelay = new TMLDelay("nd-delay", tgc);
+//                tmldelay.setMinDelay(modifyString(((TMLADDelayInterval) tgc).getMinDelayValue()));
+//                tmldelay.setMaxDelay(modifyString(((TMLADDelayInterval) tgc).getMaxDelayValue()));
+//                tmldelay.setUnit(((TMLADDelayInterval) tgc).getUnit());
+//                activity.addElement(tmldelay);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmldelay, tgc);
+//
+//            } else if (tgc instanceof TMLADForLoop) {
+//                tmlforloop = new TMLForLoop("loop", tgc);
+//                tmlforloop.setInit(modifyString(((TMLADForLoop) tgc).getInit()));
+//                tmp = ((TMLADForLoop) tgc).getCondition();
+//                /*if (tmp.trim().length() == 0) {
+//                  tmp = "true";
+//                  }*/
+//                tmlforloop.setCondition(modifyString(tmp));
+//                tmlforloop.setIncrement(modifyActionString(((TMLADForLoop) tgc).getIncrement()));
+//
+//                activity.addElement(tmlforloop);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlforloop, tgc);
+//
+//            } else if (tgc instanceof TMLADForStaticLoop) {
+//                sl = "loop__" + staticLoopIndex;
+//                tt = new TMLType(TMLType.NATURAL);
+//                tmlt = new TMLAttribute(sl, tt);
+//                tmlt.initialValue = "0";
+//                tmltask.addAttribute(tmlt);
+//                tmlforloop = new TMLForLoop(sl, tgc);
+//                tmlforloop.setInit(sl + " = 0");
+//                tmlforloop.setCondition(sl + "<" + modifyString(tgc.getValue()));
+//                tmlforloop.setIncrement(sl + " = " + sl + " + 1");
+//                activity.addElement(tmlforloop);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlforloop, tgc);
+//                staticLoopIndex++;
+//
+//            } else if (tgc instanceof TMLADForEverLoop) {
+//                /*sl = "loop__" + staticLoopIndex;
+//                  tt = new TMLType(TMLType.NATURAL);
+//                  tmlt = new TMLAttribute(sl, tt);
+//                  tmlt.initialValue = "0";
+//                  tmltask.addAttribute(tmlt);*/
+//                tmlforloop = new TMLForLoop("infiniteloop", tgc);
+//                tmlforloop.setInit("");
+//                tmlforloop.setCondition("");
+//                tmlforloop.setIncrement("");
+//                tmlforloop.setInfinite(true);
+//                activity.addElement(tmlforloop);
+//                ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                listE.addCor(tmlforloop, tgc);
+//                staticLoopIndex++;
+//
+//                tmlstopstate = new TMLStopState("Stop after infinite loop", null);
+//                activity.addElement(tmlstopstate);
+//                tmlforloop.addNext(tmlstopstate);
+//
+//            } else if (tgc instanceof TMLADSequence) {
+//                tmlsequence = new TMLSequence("seq", tgc);
+//                activity.addElement(tmlsequence);
+//                listE.addCor(tmlsequence, tgc);
+//
+//            } else if (tgc instanceof TMLADUnorderedSequence) {
+//                tmlrsequence = new TMLRandomSequence("rseq", tgc);
+//                activity.addElement(tmlrsequence);
+//                listE.addCor(tmlrsequence, tgc);
+//
+//            } else if (tgc instanceof TMLADReadChannel) {
+//                // Get the channel
+//                //TMLADReadChannel rd = (TMLADReadChannel) tgc;
+//                channel = tmlm.getChannelByName(getFromTable(tmltask, ((TMLADReadChannel) tgc).getChannelName()));
+//                /*if (rd.isAttacker()){
+//                    channel = tmlm.getChannelByName(getAttackerChannel(((TMLADReadChannel)tgc).getChannelName()));
+//				}*/
+//                if (channel == null) {
+//                    if (Conversion.containsStringInList(removedChannels, ((TMLADReadChannel) tgc).getChannelName())) {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADReadChannel) tgc).getChannelName() + " has been removed because the corresponding channel is not taken into account");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        warnings.add(ce);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                        activity.addElement(new TMLJunction("void junction", tgc));
+//                    } else {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADReadChannel) tgc).getChannelName() + " is an unknown channel");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                        checkingErrors.add(ce);
+//                    }
+//
+//                } else {
+//                    tmlreadchannel = new TMLReadChannel("read channel", tgc);
+//                    tmlreadchannel.setNbOfSamples(modifyString(((TMLADReadChannel) tgc).getSamplesValue()));
+//                    tmlreadchannel.setEncForm(((TMLADReadChannel) tgc).getEncForm());               
+//                    tmlreadchannel.addChannel(channel);
+//                    //security pattern
+//                    if (securityPatterns.get(((TMLADReadChannel) tgc).getSecurityContext()) != null) {
+//                        tmlreadchannel.securityPattern = securityPatterns.get(((TMLADReadChannel) tgc).getSecurityContext());
+//                        //NbOfSamples will increase due to extra overhead from MAC
+//                        int cur = 1;
+//                        try {
+//                            cur = Integer.valueOf(modifyString(((TMLADReadChannel) tgc).getSamplesValue()));
+//                        } catch (NumberFormatException e) {
+//                        } catch (NullPointerException e) {
+//                        }
+//                        int add = Integer.valueOf(tmlreadchannel.securityPattern.overhead);
+//                        if (!tmlreadchannel.securityPattern.nonce.equals("")) {
+//                            SecurityPattern nonce = securityPatterns.get(tmlreadchannel.securityPattern.nonce);
+//                            if (nonce != null) {
+//                                add = Integer.valueOf(nonce.overhead);
+//                            }
+//                        }
+//                        cur = cur + add;
+//                        tmlreadchannel.setNbOfSamples(Integer.toString(cur));
+//                    } else if (!((TMLADReadChannel) tgc).getSecurityContext().isEmpty()) {
+//                        //Throw error for missing security pattern
+//                        UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADReadChannel) tgc).getSecurityContext() + " not found");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                    }
+//                    if (tmltask.isAttacker()) {
+//                        tmlreadchannel.setAttacker(true);
+//                    }
+//                    activity.addElement(tmlreadchannel);
+//                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                    listE.addCor(tmlreadchannel, tgc);
+//                }
+//            } else if (tgc instanceof TMLADSendEvent) {
+//                event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADSendEvent) tgc).getEventName()));
+//                if (event == null) {
+//                    if (Conversion.containsStringInList(removedEvents, ((TMLADSendEvent) tgc).getEventName())) {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        warnings.add(ce);
+//                        activity.addElement(new TMLJunction("void junction", tgc));
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                    } else {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent) tgc).getEventName() + " is an unknown event");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                    }
+//                } else {
+//                    tmlsendevent = new TMLSendEvent("send event", tgc);
+//                    tmlsendevent.setEvent(event);
+//
+//                    for (int i = 0; i < ((TMLADSendEvent) tgc).realNbOfParams(); i++) {
+//                        tmp = modifyString(((TMLADSendEvent) tgc).getRealParamValue(i));
+//                        Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
+//                        if (allVariables.size() > 0) {
+//                            for (int k = 0; k < allVariables.size(); k++) {
+//                                //TraceManager.addDev("Adding record: " + allVariables.get(k));
+//                                tmlsendevent.addParam(allVariables.get(k));
+//                            }
+//                        } else {
+//                            //TraceManager.addDev("Adding param: " + tmp);
+//                            tmlsendevent.addParam(tmp);
+//                        }
+//                    }
+//                    if (event.getNbOfParams() != tmlsendevent.getNbOfParams()) {
+//                        //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " sendevent#:" + tmlsendevent.getNbOfParams());
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent) tgc).getEventName() + ": wrong number of parameters");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                    } else {
+//                        activity.addElement(tmlsendevent);
+//                        listE.addCor(tmlsendevent, tgc);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                    }
+//                }
+//
+//            } else if (tgc instanceof TMLADSendRequest) {
+//                request = tmlm.getRequestByName(getFromTable(tmltask, ((TMLADSendRequest) tgc).getRequestName()));
+//                if (request == null) {
+//                    if (Conversion.containsStringInList(removedRequests, ((TMLADSendRequest) tgc).getRequestName())) {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendRequest) tgc).getRequestName() + " has been removed because the corresponding request is not taken into account");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        warnings.add(ce);
+//                        activity.addElement(new TMLJunction("void junction", tgc));
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                    } else {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest) tgc).getRequestName() + " is an unknown request");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                    }
+//                } else {
+//                    tmlsendrequest = new TMLSendRequest("send request", tgc);
+//                    tmlsendrequest.setRequest(request);
+//                    for (int i = 0; i < ((TMLADSendRequest) tgc).realNbOfParams(); i++) {
+//                        tmp = modifyString(((TMLADSendRequest) tgc).getRealParamValue(i));
+//                        Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
+//                        if (allVariables.size() > 0) {
+//                            for (int k = 0; k < allVariables.size(); k++) {
+//                                TraceManager.addDev("Adding record: " + allVariables.get(k));
+//                                tmlsendrequest.addParam(allVariables.get(k));
+//                                request.addParamName(allVariables.get(k));
+//                            }
+//                        } else {
+//                            //TraceManager.addDev("Adding param: " + tmp);
+//                            tmlsendrequest.addParam(tmp);
+//                            request.addParamName(tmp);
+//                        }
+//                    }
+//                    if (request.getNbOfParams() != tmlsendrequest.getNbOfParams()) {
+//                        //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " sendrequest#:" + tmlsendrequest.getNbOfParams());
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest) tgc).getRequestName() + ": wrong number of parameters");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                    } else {
+//                        activity.addElement(tmlsendrequest);
+//                        listE.addCor(tmlsendrequest, tgc);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                    }
+//                }
+//
+//            } else if (tgc instanceof TMLADReadRequestArg) {
+//                request = tmlm.getRequestToMe(tmltask);
+//                if (request == null) {
+//                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "This task is not requested: cannot use \"reading request arg\" operator");
+//                    ce.setTDiagramPanel(tadp);
+//                    ce.setTGComponent(tgc);
+//                    checkingErrors.add(ce);
+//                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                } else {
+//                    tmlaction = new TMLActionState("action reading args", tgc);
+//                    String act = "";
+//                    int cpt = 1;
+//                    for (int i = 0; i < ((TMLADReadRequestArg) tgc).realNbOfParams(); i++) {
+//                        tmp = modifyString(((TMLADReadRequestArg) tgc).getRealParamValue(i));
+//                        Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
+//
+//                        if (allVariables.size() > 0) {
+//                            for (int k = 0; k < allVariables.size(); k++) {
+//                                //TraceManager.addDev("Adding record: " + allVariables.get(k));
+//                                if (cpt != 1) {
+//                                    act += "$";
+//                                }
+//                                act += allVariables.get(k) + " = arg" + cpt + "__req";
+//                                cpt++;
+//                            }
+//                        } else {
+//                            //TraceManager.addDev("Adding param: " + tmp);
+//                            if (cpt != 1) {
+//                                act += "$";
+//                            }
+//                            act += tmp + " = arg" + cpt + "__req";
+//                            cpt++;
+//                        }
+//                    }
+//                    if (request.getNbOfParams() != (cpt - 1)) {
+//                        //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " read request arg#:" + (cpt-1));
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Wrong number of parameters in \"reading request arg\" operator");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                    } else {
+//                        //TraceManager.addDev("Adding action = " + act);
+//                        tmlaction.setAction(act);
+//                        activity.addElement(tmlaction);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                        listE.addCor(tmlaction, tgc);
+//                    }
+//
+//
+//                }
+//
+//            } else if (tgc instanceof TMLADStopState) {
+//                tmlstopstate = new TMLStopState("stop state", tgc);
+//                activity.addElement(tmlstopstate);
+//                listE.addCor(tmlstopstate, tgc);
+//
+//            } else if (tgc instanceof TMLADNotifiedEvent) {
+//                event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADNotifiedEvent) tgc).getEventName()));
+//                if (event == null) {
+//                    if (removedEvents.size() > 0) {
+//                        if (Conversion.containsStringInList(removedEvents, ((TMLADNotifiedEvent) tgc).getEventName())) {
+//                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADNotifiedEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account");
+//                            ce.setTDiagramPanel(tadp);
+//                            ce.setTGComponent(tgc);
+//                            warnings.add(ce);
+//                            activity.addElement(new TMLJunction("void junction", tgc));
+//                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                        } else {
+//                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent) tgc).getEventName() + " is an unknown event");
+//                            ce.setTDiagramPanel(tadp);
+//                            ce.setTGComponent(tgc);
+//                            checkingErrors.add(ce);
+//                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                        }
+//                    } else {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent) tgc).getEventName() + " is an unknown event");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                    }
+//                } else {
+//                    event.setNotified(true);
+//                    tmlnotifiedevent = new TMLNotifiedEvent("notified event", tgc);
+//                    tmlnotifiedevent.setEvent(event);
+//                    tmlnotifiedevent.setVariable(modifyString(((TMLADNotifiedEvent) tgc).getVariable()));
+//                    activity.addElement(tmlnotifiedevent);
+//                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                    listE.addCor(tmlnotifiedevent, tgc);
+//                }
+//
+//            } else if (tgc instanceof TMLADWaitEvent) {
+//                event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADWaitEvent) tgc).getEventName()));
+//                if (event == null) {
+//                    if (removedEvents.size() > 0) {
+//                        if (Conversion.containsStringInList(removedEvents, ((TMLADWaitEvent) tgc).getEventName())) {
+//                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWaitEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account");
+//                            ce.setTDiagramPanel(tadp);
+//                            ce.setTGComponent(tgc);
+//                            warnings.add(ce);
+//                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                            activity.addElement(new TMLJunction("void junction", tgc));
+//                        } else {
+//                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + " is an unknown event");
+//                            ce.setTDiagramPanel(tadp);
+//                            ce.setTGComponent(tgc);
+//                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                            checkingErrors.add(ce);
+//                        }
+//                    } else {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + " is an unknown event");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                        checkingErrors.add(ce);
+//                    }
+//                } else {
+//                    //TraceManager.addDev("Nb of param of event:" + event.getNbOfParams());
+//                    tmlwaitevent = new TMLWaitEvent("wait event", tgc);
+//                    tmlwaitevent.setEvent(event);
+//                    for (int i = 0; i < ((TMLADWaitEvent) tgc).realNbOfParams(); i++) {
+//                        tmp = modifyString(((TMLADWaitEvent) tgc).getRealParamValue(i));
+//                        Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__");
+//                        if (allVariables.size() > 0) {
+//                            for (int k = 0; k < allVariables.size(); k++) {
+//                                //TraceManager.addDev("Adding record: " + allVariables.get(k));
+//                                tmlwaitevent.addParam(allVariables.get(k));
+//                            }
+//                        } else {
+//                            //TraceManager.addDev("Adding param: " + tmp);
+//                            tmlwaitevent.addParam(tmp);
+//                        }
+//                    }
+//                    if (event.getNbOfParams() != tmlwaitevent.getNbOfParams()) {
+//                        //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " waitevent#:" + tmlwaitevent.getNbOfParams());
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + ": wrong number of parameters");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                    } else {
+//                        activity.addElement(tmlwaitevent);
+//                        listE.addCor(tmlwaitevent, tgc);
+//                        ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                    }
+//
+//                }
+//
+//            } else if (tgc instanceof TMLADWriteChannel) {
+//                // Get channels
+//                //TMLADWriteChannel wr = (TMLADWriteChannel) tgc;
+//                channels = ((TMLADWriteChannel) tgc).getChannelsByName();
+//                boolean error = false;
+//                for (int i = 0; i < channels.length; i++) {
+//                    //TraceManager.addDev("Getting from table " + tmltask.getName() + "/" +channels[i]);
+//                    channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i]));
+//                    if (channel == null) {
+//                        if (Conversion.containsStringInList(removedChannels, ((TMLADWriteChannel) tgc).getChannelName(i))) {
+//                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWriteChannel) tgc).getChannelName(i) + " has been removed because the corresponding channel is not taken into account");
+//                            ce.setTDiagramPanel(tadp);
+//                            ce.setTGComponent(tgc);
+//                            warnings.add(ce);
+//                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                            activity.addElement(new TMLJunction("void junction", tgc));
+//                        } else {
+//                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWriteChannel) tgc).getChannelName(i) + " is an unknown channel");
+//                            ce.setTDiagramPanel(tadp);
+//                            ce.setTGComponent(tgc);
+//                            ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN);
+//                            checkingErrors.add(ce);
+//                        }
+//                        error = true;
+//
+//                    }
+//                }
+//                if (!error) {
+//                    tmlwritechannel = new TMLWriteChannel("write channel", tgc);
+//                    tmlwritechannel.setNbOfSamples(modifyString(((TMLADWriteChannel) tgc).getSamplesValue()));
+//                    tmlwritechannel.setEncForm(((TMLADWriteChannel) tgc).getEncForm());
+//                    for (int i = 0; i < channels.length; i++) {
+//                        channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i]));
+//                        tmlwritechannel.addChannel(channel);
+//                    }
+//                    //if (wr.isAttacker()){
+//                    //channel = tmlm.getChannelByName(getAttackerChannel(channels[0]));
+//                    //tmlwritechannel.addChannel(channel);
+//                    //}
+//                    //add sec pattern
+//                    if (securityPatterns.get(((TMLADWriteChannel) tgc).getSecurityContext()) != null) {
+//                        tmlwritechannel.securityPattern = securityPatterns.get(((TMLADWriteChannel) tgc).getSecurityContext());
+//                        int cur = Integer.valueOf(modifyString(((TMLADWriteChannel) tgc).getSamplesValue()));
+//                        int add = Integer.valueOf(tmlwritechannel.securityPattern.overhead);
+//                        if (!tmlwritechannel.securityPattern.nonce.equals("")) {
+//                            SecurityPattern nonce = securityPatterns.get(tmlwritechannel.securityPattern.nonce);
+//                            if (nonce != null) {
+//                                add = Integer.valueOf(nonce.overhead);
+//                            }
+//                        }
+//                        cur = cur + add;
+//                        tmlwritechannel.setNbOfSamples(Integer.toString(cur));
+//                    } else if (!((TMLADWriteChannel) tgc).getSecurityContext().isEmpty()) {
+//                        //Throw error for missing security pattern
+//                        UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADWriteChannel) tgc).getSecurityContext() + " not found");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                    }
+//                    if (tmltask.isAttacker()) {
+//                        tmlwritechannel.setAttacker(true);
+//                    }
+//                    activity.addElement(tmlwritechannel);
+//                    ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK);
+//                    listE.addCor(tmlwritechannel, tgc);
+//                }
+//            }
+//        }
+//
+//        // Interconnection between elements
+//        TGConnectorTMLAD tgco;
+//        TGConnectingPoint p1, p2;
+//        TMLActivityElement ae1, ae2;
+//        TGComponent tgc1, tgc2, tgc3;
+//        int j, index;
+//
+//        iterator = list.listIterator();
+//        while (iterator.hasNext()) {
+//            tgc = iterator.next();
+//            if (tgc instanceof TGConnectorTMLAD) {
+//                tgco = (TGConnectorTMLAD) tgc;
+//                p1 = tgco.getTGConnectingPointP1();
+//                p2 = tgco.getTGConnectingPointP2();
+//
+//                // Identification of connected components
+//                tgc1 = null;
+//                tgc2 = null;
+//                for (j = 0; j < list.size(); j++) {
+//                    tgc3 = list.get(j);
+//                    if (tgc3.belongsToMe(p1)) {
+//                        tgc1 = tgc3;
+//                    }
+//                    if (tgc3.belongsToMe(p2)) {
+//                        tgc2 = tgc3;
+//                    }
+//                }
+//
+//                // Connecting tml modeling components
+//                if ((tgc1 != null) && (tgc2 != null)) {
+//                    //ADComponent ad1, ad2;
+//                    ae1 = activity.findReferenceElement(tgc1);
+//                    ae2 = activity.findReferenceElement(tgc2);
+//
+//                    if ((ae1 != null) && (ae2 != null)) {
+//                        //Special case if "for loop" or if "choice"
+//
+//                        if (ae1 instanceof TMLForLoop) {
+//                            index = tgc1.indexOf(p1) - 1;
+//                            if (index == 0) {
+//                                ae1.addNext(0, ae2);
+//                            } else {
+//                                ae1.addNext(ae2);
+//                            }
+//
+//                        } else if (ae1 instanceof TMLChoice) {
+//                            index = tgc1.indexOf(p1) - 1;
+//                            //TraceManager.addDev("Adding next:" + ae2);
+//                            ae1.addNext(ae2);
+//                            //TraceManager.addDev("Adding guard:" + ((TMLADChoice)tgc1).getGuard(index));
+//                            ((TMLChoice) ae1).addGuard(modifyString(((TMLADChoice) tgc1).getGuard(index)));
+//
+//                        } else if (ae1 instanceof TMLSequence) {
+//                            index = tgc1.indexOf(p1) - 1;
+//                            ((TMLSequence) ae1).addIndex(index);
+//                            ae1.addNext(ae2);
+//                            //TraceManager.addDev("Adding " + ae2 + " at index " + index);
+//
+//                        } else if (ae1 instanceof TMLRandomSequence) {
+//                            index = tgc1.indexOf(p1) - 1;
+//                            ((TMLRandomSequence) ae1).addIndex(index);
+//                            ae1.addNext(ae2);
+//                            //TraceManager.addDev("Adding " + ae2 + " at index " + index);
+//
+//                        } else {
+//                            ae1.addNext(ae2);
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//
+//
+//        // Check that each "for" has two nexts
+//        // Check that TMLChoice have compatible guards
+//        // Check TML select evts
+//        iterator = list.listIterator();
+//        while (iterator.hasNext()) {
+//            tgc = iterator.next();
+//
+//            if ((tgc instanceof TMLADForLoop) || (tgc instanceof TMLADForStaticLoop)) {
+//                ae1 = activity.findReferenceElement(tgc);
+//                if (ae1 != null) {
+//                    if (ae1.getNbNext() != 2) {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted for loop: a loop must have an internal behavior, and an exit behavior ");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                    }
+//                }
+//            } else if (tgc instanceof TMLADChoice) {
+//                tmlchoice = (TMLChoice) (activity.findReferenceElement(tgc));
+//                tmlchoice.orderGuards();
+//
+//                int nbNonDeter = tmlchoice.nbOfNonDeterministicGuard();
+//                int nbStocha = tmlchoice.nbOfStochasticGuard();
+//                if ((nbNonDeter > 0) && (nbStocha > 0)) {
+//                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic and stochastic guards");
+//                    ce.setTDiagramPanel(tadp);
+//                    ce.setTGComponent(tgc);
+//                    checkingErrors.add(ce);
+//                }
+//                int nb = Math.max(nbNonDeter, nbStocha);
+//                if (nb > 0) {
+//                    nb = nb + tmlchoice.nbOfElseAndAfterGuards();
+//                    if (nb != tmlchoice.getNbGuard()) {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic/ stochastic and regular guards)");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                    }
+//                }
+//
+//                if (tmlchoice.nbOfNonDeterministicGuard() > 0) {
+//                    /*if (!rndAdded) {
+//                      TMLAttribute tmlt = new TMLAttribute("rnd__0", new TMLType(TMLType.NATURAL));
+//                      tmlt.initialValue = "";
+//                      tmltask.addAttribute(tmlt);
+//                      rndAdded = true;
+//                      }*/
+//                }
+//                if (tmlchoice.hasMoreThanOneElse()) {
+//                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [else] guard");
+//                    ce.setTDiagramPanel(tadp);
+//                    ce.setTGComponent(tgc);
+//                    checkingErrors.add(ce);
+//                } else if ((index = tmlchoice.getElseGuard()) > -1) {
+//                    index = tmlchoice.getElseGuard();
+//                    if (index == 0) {
+//                        UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have a regular guard");
+//                        ce.setTDiagramPanel(tadp);
+//                        ce.setTGComponent(tgc);
+//                        checkingErrors.add(ce);
+//                    }
+//                }
+//                if (tmlchoice.hasMoreThanOneAfter()) {
+//                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [after] guard");
+//                    ce.setTDiagramPanel(tadp);
+//                    ce.setTGComponent(tgc);
+//                    checkingErrors.add(ce);
+//                }
+//            }
+//            if (tgc instanceof TMLADSelectEvt) {
+//                tmlselectevt = (TMLSelectEvt) (activity.findReferenceElement(tgc));
+//                if (!tmlselectevt.isARealSelectEvt()) {
+//                    UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "'Select events'  should be followed by only event receiving operators");
+//                    ce.setTDiagramPanel(tadp);
+//                    ce.setTGComponent(tgc);
+//                    checkingErrors.add(ce);
+//                }
+//            }
+//
+//        }
+//
+//        // Sorting nexts elements of Sequence
+//        for (j = 0; j < activity.nElements(); j++) {
+//            ae1 = activity.get(j);
+//            if (ae1 instanceof TMLSequence) {
+//                ((TMLSequence) ae1).sortNexts();
+//            }
+//            if (ae1 instanceof TMLRandomSequence) {
+//                ((TMLRandomSequence) ae1).sortNexts();
+//            }
+//        }
+//    }
 
     public TMLMapping<TGComponent> translateToTMLMapping() {
         tmlm = new TMLModeling<>(true);
@@ -2691,6 +2772,8 @@ public class GTMLModeling {
           // Syntax has been checked -> splitting ads
           // The splitting works only if there is no other operations than sequences and references to ADs/SDs
           // between forks and joins
+    	
+    	// Issue #69; Unused TMLCPJunction
           tmlcp.splitADs();
 
           TraceManager.addDev("<--- TMLCP modeling:");
@@ -3078,7 +3161,8 @@ public class GTMLModeling {
         tmlcp.correctReferences(); //Update references to the right activity and sequence diagrams
         //tmlcp.generateNexts(); // Add nexts elements to CPElements
         //tmlcp.removeADConnectors(); // Remove connectors since nexts have been filled
-        tmlcp.splitADs(); // Splitting ADs so as to remove junctions -> new ADs are introduced for each junction inside an AD
+        // Issue #69; Unused TMLCPJunction
+        //tmlcp.splitADs(); // Splitting ADs so as to remove junctions -> new ADs are introduced for each junction inside an AD
 
         /*for( TMLCPSequenceDiagram seqDiag: tmlcp.getCPSequenceDiagrams() )      {
           TraceManager.addDev( "**********" );
@@ -3096,7 +3180,7 @@ public class GTMLModeling {
             throws MalformedTMLDesignException {
         tmltranslator.tmlcp.TMLCPStart start;
         tmltranslator.tmlcp.TMLCPStop stop;
-        tmltranslator.tmlcp.TMLCPJunction junction;
+      //  tmltranslator.tmlcp.TMLCPJunction junction;
         tmltranslator.tmlcp.TMLCPJoin join;
         tmltranslator.tmlcp.TMLCPFork fork;
         tmltranslator.tmlcp.TMLCPChoice choice;
@@ -3157,11 +3241,12 @@ public class GTMLModeling {
                     refAD = new tmltranslator.tmlcp.TMLCPRefAD(compID, component);
                     AD.addTMLCPElement(refAD);
                 }
-                if (component instanceof ui.tmlcp.TMLCPJunction) {
-                    //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() );
-                    junction = new tmltranslator.tmlcp.TMLCPJunction(compID, component);
-                    AD.addTMLCPElement(junction);
-                }
+                // Issue #69; Unused TMLCPJunction
+//                if (component instanceof ui.tmlcp.TMLCPJunction) {
+//                    //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() );
+//                    junction = new tmltranslator.tmlcp.TMLCPJunction(compID, component);
+//                    AD.addTMLCPElement(junction);
+//                }
                 if (component instanceof ui.tmlcp.TMLCPJoin) {
                     //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() );
                     join = new tmltranslator.tmlcp.TMLCPJoin(compID, component);
@@ -3846,23 +3931,23 @@ public class GTMLModeling {
         }
         return "";
     }
-
-    public String getFromTable(TMLTask task, String s) {
-        //TraceManager.addDev("TABLE GET: Getting from task=" + task.getName() + " element=" + s);
-
-        if (table == null) {
-            return s;
-        }
-
-        String ret = table.get(task.getName() + "/" + s);
-        //TraceManager.addDev("Returning=" + ret);
-
-        if (ret == null) {
-            return s;
-        }
-
-        return ret;
-    }
+//
+//    public String getFromTable(TMLTask task, String s) {
+//        //TraceManager.addDev("TABLE GET: Getting from task=" + task.getName() + " element=" + s);
+//
+//        if (table == null) {
+//            return s;
+//        }
+//
+//        String ret = table.get(task.getName() + "/" + s);
+//        //TraceManager.addDev("Returning=" + ret);
+//
+//        if (ret == null) {
+//            return s;
+//        }
+//
+//        return ret;
+//    }
 
     public void removeActionsWithRecords() {
         //TraceManager.addDev("Reworking actions with records");
diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java
index cb402e28879a0b22960c755942723c46cf14321f..a103aa2c8e02f3c127fc4a2c8ad652c2e596e354 100644
--- a/src/main/java/ui/GTURTLEModeling.java
+++ b/src/main/java/ui/GTURTLEModeling.java
@@ -58,8 +58,6 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
 import proverifspec.ProVerifOutputAnalyzer;
-import proverifspec.ProVerifQueryAuthResult;
-import proverifspec.ProVerifQueryResult;
 import proverifspec.ProVerifSpec;
 import req.ebrdd.EBRDD;
 import sddescription.HMSC;
@@ -745,11 +743,11 @@ outerloop:
 		List<HwLink> links = map.getTMLArchitecture().getHwLinks();
 		List<HwNode> found = new ArrayList<HwNode>();
 		List<HwNode> done = new ArrayList<HwNode>();
-		List<HwNode> path = new ArrayList<HwNode>();
+		//List<HwNode> path = new ArrayList<HwNode>();
 
 		HwExecutionNode node1 = (HwExecutionNode) map.getHwNodeOf(t1);
 
-		Map<HwNode, List<HwNode>> pathMap = new HashMap<HwNode, List<HwNode>>();
+		//Map<HwNode, List<HwNode>> pathMap = new HashMap<HwNode, List<HwNode>>();
 		for (HwLink link : links) {
 			if (link.hwnode == node1) {
 				found.add(link.bus);
@@ -820,7 +818,7 @@ outerloop:
 			TraceManager.addDev("Found firewall " + firewallNode.getName());
 			TMLCPrimitiveComponent firewallComp = null;
 			TMLADStartState adStart = null;
-			TMLADForEverLoop adLoop = null;
+			//TMLADForEverLoop adLoop = null;
 			TMLADChoice adChoice = null;
 			TMLADChoice adChoice2 = null;
 			TMLADChoice adChoiceMain = null;
@@ -1335,7 +1333,7 @@ outerloop:
         			xpos = wr.getX();
             	    ypos = wr.getY();
             	    fromStart = tad.findTGConnectorEndingAt(wr.getTGConnectingPointAtIndex(0));
-            	    TGConnectingPoint point = fromStart.getTGConnectingPointP2();
+            	    //TGConnectingPoint point = fromStart.getTGConnectingPointP2();
 					int yShift = 50;
             	        
 					TMLADSendRequest sendreq = new TMLADSendRequest(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
@@ -2519,7 +2517,7 @@ memloop:
 		}
 
 		// Assume the inputData is in AUT format: generated by RTL or CADP
-		public String performProjection(String inputData, LinkedList<TClassAndGateDS> gates) {
+		public String performProjection(String inputData, List<TClassAndGateDS> gates) {
 			StringBuffer result = new StringBuffer("");
 			StringReader sr = new StringReader(inputData);
 			BufferedReader br = new BufferedReader(sr);
@@ -2941,7 +2939,7 @@ memloop:
 
 
 		// BUILDING A TURTLE MODELING AND CHECKING IT
-		public boolean checkTURTLEModeling(LinkedList<TClassInterface> tclasses, DesignPanel dp, boolean overideSyntaxChecking) {
+		public boolean checkTURTLEModeling(List<TClassInterface> tclasses, DesignPanel dp, boolean overideSyntaxChecking) {
 			// Builds a TURTLE modeling from diagrams
 			//warnings = new Vector();
 			//checkingErrors = null;
@@ -2981,7 +2979,7 @@ memloop:
 		}
 
 		// BUILDING An AVATAR Design AND CHECKING IT
-		public boolean checkAvatarDesign(LinkedList<AvatarBDStateMachineOwner> blocks, AvatarDesignPanel adp, boolean _optimize) {
+		public boolean checkAvatarDesign( List<AvatarBDStateMachineOwner> blocks, AvatarDesignPanel adp, boolean _optimize) {
 			// Builds a TURTLE modeling from diagrams
 			//warnings = new Vector();
 			//checkingErrors = null;
@@ -3043,14 +3041,14 @@ memloop:
 			}
 
 			// Building the list of all states in the mutex
-			LinkedList<TGComponent> compInMutex = adp.getListOfComponentsInMutex();
+			List<TGComponent> compInMutex = adp.getListOfComponentsInMutex();
 			TraceManager.addDev("Nb of elements in mutex:" + compInMutex.size());
 
 			if (compInMutex.size() == 0) {
 				return -2;
 			}
 
-			LinkedList<TGComponent> comps;
+			List<TGComponent> comps;
 			boolean found;
 			int nbOfFound;
 			int cpt = 0;
@@ -3301,7 +3299,7 @@ memloop:
 			if (tgc instanceof AvatarBDBlock) {
 				AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
 				s.append(asmdp.saveInXML());
-				LinkedList<AvatarBDBlock> list = ((AvatarBDBlock) tgc).getFullBlockList();
+				List<AvatarBDBlock> list = ((AvatarBDBlock) tgc).getFullBlockList();
 				for (AvatarBDBlock b : list) {
 					asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), b.getValue());
 					s.append(asmdp.saveInXML());
@@ -5865,6 +5863,7 @@ memloop:
 			String nameTab;
 			NodeList diagramNl;
 			int indexDesign;
+			int indexTab = 0;
 
 			nameTab = elt.getAttribute("nameTab");
 
@@ -5880,7 +5879,8 @@ memloop:
 					if (elt.getTagName().compareTo("ELNDiagramPanel") == 0) {
 						// Class diagram
 						TraceManager.addDev("Loading ELN");
-						loadELNDiagram(elt, indexDesign);
+						loadELNDiagram(elt, indexDesign, indexTab);
+						indexTab++;
 						TraceManager.addDev("End loading ELN");
 					}
 				}
@@ -6387,8 +6387,7 @@ memloop:
 			loadDiagram(elt, tdp);
 		}
 
-		public void loadSysCAMSDiagram(Element elt, int indexDesign, int indexTab)
-				throws MalformedModelingException, SAXException {
+		public void loadSysCAMSDiagram(Element elt, int indexDesign, int indexTab) throws MalformedModelingException, SAXException {
 			String name;
 
 			name = elt.getAttribute("name");
@@ -6404,15 +6403,18 @@ memloop:
 			loadDiagram(elt, tdp);
 		}
 
-		public void loadELNDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException {
+		public void loadELNDiagram(Element elt, int indexDesign, int indexTab) throws MalformedModelingException, SAXException {
 			String name;
-			TDiagramPanel tdp;
 
-			// class diagram name
 			name = elt.getAttribute("name");
-			mgui.setELNDiagramName(indexDesign, name);
-			tdp = mgui.getMainTDiagramPanel(indexDesign);
-			tdp.setName(name);
+			mgui.createELN(indexDesign, name);
+
+			TDiagramPanel tdp = mgui.getELNPanel(indexDesign, indexTab, name);
+
+			if (tdp == null) {
+				throw new MalformedModelingException();
+			}
+			tdp.removeAll();
 
 			loadDiagram(elt, tdp);
 		}
@@ -7175,7 +7177,7 @@ memloop:
 				boolean latencyCheck = false;
 				boolean invariant = false;
 				boolean breakpoint = false;
-				boolean hidden = false;
+				//boolean hidden = false;
 				boolean masterMutex = false;
 				boolean enable = true;
 
@@ -7201,8 +7203,8 @@ memloop:
 						} else if (elt.getTagName().equals("infoparam")) {
 							myName = elt.getAttribute("name");
 							myValue = elt.getAttribute("value");
-						} else if (elt.getTagName().equals("hidden")) {
-							hidden = elt.getAttribute("value").equals("true");
+//						} else if (elt.getTagName().equals("hidden")) {
+//							hidden = elt.getAttribute("value").equals("true");
 						} else if (elt.getTagName().equals("enabled")) {
 							enable = elt.getAttribute("value").equals("true");
 						} else if (elt.getTagName().equals("TGConnectingPoint")) {
@@ -7893,7 +7895,7 @@ memloop:
 					dp2 = art.getDesignPanel();
 
 					final Iterator<TGComponent> iterator2 = dp2.tcdp.getComponentList().listIterator();
-					LinkedList<TClassInterface> tclasses = new LinkedList<TClassInterface>();
+					List<TClassInterface> tclasses = new LinkedList<TClassInterface>();
 					while (iterator2.hasNext()) {
 						tgc = iterator2.next();
 						if (tgc instanceof TClassInterface) {
diff --git a/src/main/java/ui/ICDElementVisitor.java b/src/main/java/ui/ICDElementVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..2ccfa5f361707c74a7df2c923b162cf5d4c8e332
--- /dev/null
+++ b/src/main/java/ui/ICDElementVisitor.java
@@ -0,0 +1,6 @@
+package ui;
+
+public interface ICDElementVisitor {
+	
+	boolean visit( CDElement element );
+}
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 891aa6172d0fe629ba288660a992fcb9f4e6699b..86f669307489ba4789cce0fe8d35032fd349bddb 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -68,6 +68,7 @@ import ui.avatarsmd.AvatarSMDPanel;
 import ui.cd.TClassDiagramPanel;
 import ui.diplodocusmethodology.DiplodocusMethodologyDiagramPanel;
 import ui.ebrdd.EBRDDPanel;
+import ui.eln.ELNDiagramPanel;
 import ui.file.*;
 import ui.ftd.FaultTreeDiagramPanel;
 import ui.interactivesimulation.JFrameInteractiveSimulation;
@@ -110,8 +111,6 @@ import java.util.*;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static myutil.FileUtils.checkFileForOpen;
-
 // AVATAR
 
 /**
@@ -172,7 +171,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     public KeyListener keyHandler;
 
     // Validation
-    public LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>();
+    public List<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>();
 
     // Status bar
     private JLabel status;
@@ -1103,7 +1102,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         mainTabbedPane.add(sccdp.tabbedPane, index);
         mainTabbedPane.setToolTipTextAt(index, "Open SystemC-AMS design diagrams");
         mainTabbedPane.setTitleAt(index, name);
-        mainTabbedPane.setIconAt(index, IconManager.imgic60);
+        mainTabbedPane.setIconAt(index, IconManager.imgic1208);
         //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
         sccdp.init();
         //ystem.out.println("Design added");
@@ -1119,7 +1118,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     	mainTabbedPane.add(elndp.tabbedPane, index);
     	mainTabbedPane.setToolTipTextAt(index, "Open ELN design diagrams");
     	mainTabbedPane.setTitleAt(index, name);
-    	mainTabbedPane.setIconAt(index, IconManager.imgic60);
+    	mainTabbedPane.setIconAt(index, IconManager.imgic1208);
     	//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
     	elndp.init();
     	//ystem.out.println("Design added");
@@ -1937,7 +1936,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     public void newELN() {
     	//TraceManager.addDev("NEW DESIGN");
     	addELNDesignPanel("ELN", -1);
-    	tabs.elementAt(tabs.size() - 1).tabbedPane.setSelectedIndex(0);
+//    	tabs.elementAt(tabs.size() - 1).tabbedPane.setSelectedIndex(0);
     	mainTabbedPane.setSelectedIndex(tabs.size() - 1);
     	//paneAction(null);
     	//frame.repaint();
@@ -2430,7 +2429,6 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     public void updateLastOpenFile(File file) {
         if (ConfigurationTTool.LastOpenFileDefined) {
 
-
             ConfigurationTTool.LastOpenFile = file.getPath();
             if (ConfigurationTTool.LastOpenFile.contains(".ttool" + File.separator)) {
                 int last = 0;
@@ -2500,28 +2498,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             // open the new TURTLE modeling
             newTurtleModeling();
 
-            //TraceManager.addDev("Loading");
-            // load the new TURTLE modeling
-            // Issue #41: Moved to common method
             loadModels(gtm.mergeTURTLEGModeling(oldmodeling, s), "merged");
-            //            try {
-            //                //TraceManager.addDev("Merging");
-            //                gtm.enableUndo(false);
-            //                gtm.loadModelingFromXML(gtm.mergeTURTLEGModeling(oldmodeling, s));
-            //                gtm.enableUndo(true);
-            //                gtm.saveOperation(getCurrentSelectedPoint());
-            //                //gtm.saveOperation(tcdp);
-            //                frame.setTitle("TTool: " + file.getAbsolutePath());
-            //                makeLotosFile();
-            //
-            //                if (gtm.getCheckingErrors().size() > 0) {
-            //                    JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-            //                }
-            //
-            //            } catch (MalformedModelingException mme) {
-            //                JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-            //            }
-            //            dtree.forceUpdate();
+
         }
     }
 
@@ -2566,91 +2544,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             jfc.setAcceptAllFileFilterUsed(false);
             FileNameExtensionFilter filter = new FileNameExtensionFilter("TTool project", "ttool");
             jfc.setFileFilter(filter);
-            /*jfc.addMouseListener(new MouseListener() {
-
-        	    @Override
-        	    public void mouseClicked(MouseEvent arg0) {
-
-        	        if(arg0.getClickCount() == 2) {
-        	            File file = jfc.getSelectedFile();
-        	            if(!FileUtils.getExtension(file).equals("ttool")) {
-        	                jfc.setCurrentDirectory(file);
-        	                jfc.rescanCurrentDirectory();
-        	            }
-        	            else {
-        	                jfc.approveSelection();
-        	            }
-        	        }
-        	    }
-
-				@Override
-				public void mouseEntered(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mouseExited(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mousePressed(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mouseReleased(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}		
-        	});*/
         } else {
             jfc.resetChoosableFileFilters();
             jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
             jfc.setAcceptAllFileFilterUsed(false);
             FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", "xml");
             jfc.setFileFilter(filter);
-            /*jfc.addMouseListener(new MouseListener() {
-
-        	    @Override
-        	    public void mouseClicked(MouseEvent arg0) {
-
-        	        if(arg0.getClickCount() == 2) {
-        	            File file = jfc.getSelectedFile();
-        	            if(!FileUtils.getExtension(file).equals("ttool")) {
-        	                jfc.setCurrentDirectory(file);
-        	                jfc.rescanCurrentDirectory();
-        	            }
-        	        }
-        	    }
-
-				@Override
-				public void mouseEntered(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mouseExited(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mousePressed(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mouseReleased(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}		
-        	});*/
         }
         int returnVal = jfc.showOpenDialog(frame);
 
@@ -2755,6 +2654,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     }
 
     public void openLastProject(int id) {
+
         // Check if a current modeling is opened
         boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
         if (b) {
@@ -2764,11 +2664,15 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         }
 
         file = new File(ConfigurationTTool.LastOpenFiles[id]);
+        //TraceManager.addDev("Opening project #" + id + " for file=" + file.getAbsolutePath());
 
         if (checkFileForOpen(file)) {
             String s = null;
 
             if (FileUtils.getExtension(file).equals("ttool")) {
+                openProjectFromFile(file);
+                return;
+                /*TraceManager.addDev("this is a ttool project");
                 int last = 0;
                 for (int i = 0; i < ConfigurationTTool.LastOpenFile.length(); i++) {
                     if (ConfigurationTTool.LastOpenFile.charAt(i) == '/')
@@ -2783,26 +2687,27 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
                     SpecConfigTTool.loadConfigFile(config);
                 } catch (MalformedConfigurationException e) {
                     System.err.println(e.getMessage() + " : Can't load config file.");
-                }
+                }*/
             } else {
                 dir = null;
                 config = null;
                 SpecConfigTTool.setBasicConfig(systemcOn);
+                try {
+                    FileInputStream fis = new FileInputStream(file);
+                    int nb = fis.available();
+
+                    byte[] ba = new byte[nb];
+                    fis.read(ba);
+                    fis.close();
+                    s = new String(ba, "UTF-8");
+                    //TraceManager.addDev("Model:" + s);
+                } catch (Exception e) {
+                    JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                    return;
+                }
             }
 
-            try {
-                FileInputStream fis = new FileInputStream(file);
-                int nb = fis.available();
 
-                byte[] ba = new byte[nb];
-                fis.read(ba);
-                fis.close();
-                s = new String(ba, "UTF-8");
-                //TraceManager.addDev("Model:" + s);
-            } catch (Exception e) {
-                JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-                return;
-            }
 
             // close current modeling
             closeTurtleModeling();
@@ -2815,32 +2720,9 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             // Issue #41: Moved to common method
             updateLastOpenFile(file);
             loadModels(s, "loaded");
-            //TraceManager.addDev("Loading");
-            // load the new TURTLE modeling
-            //            try {
-            //                gtm.loadModelingFromXML(s);
-            //                //gtm.saveOperation(tcdp);
-            //                frame.setTitle("TTool: " + file.getAbsolutePath());
-            //                makeLotosFile();
-            //
-            //                if (gtm.getCheckingErrors().size() > 0) {
-            //                    JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-            //                }
-            //            }
-            //            catch (MalformedModelingException mme) {
-            //                JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-            //                frame.setTitle("TTool: unamed project");
-            //            }
-            //
-            //            dtree.forceUpdate();
-            //            gtm.enableUndo(true);
-            //            gtm.saveOperation(getCurrentSelectedPoint());
+
         }
 
-        //Added by Solange
-        //TURTLEPanel tp = getCurrentTURTLEPanel();
-        //gtm.generateLists((ProactiveDesignPanel)tp);
-        //
     }
 
     private void loadModels(final String xmlModel,
@@ -3610,7 +3492,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             DesignPanel dp = (DesignPanel) tp;
             JDialogModelChecking.validated = dp.validated;
             JDialogModelChecking.ignored = dp.ignored;
-            LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>();
+            List<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>();
             JDialogModelChecking jdmc = new JDialogModelChecking(frame, tclassesToValidate, dp.tcdp.getComponentList(), "Choosing Tclasses to validate");
             if (!automatic) {
                 GraphicLib.centerOnParent(jdmc);
@@ -3722,7 +3604,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             AvatarDesignPanel adp = (AvatarDesignPanel) tp;
             //JDialogModelChecking.validated = adp.validated;
             //JDialogModelChecking.ignored = adp.ignored;
-            LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>();
+            List<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>();
             JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
             if (!automatic) {
                 GraphicLib.centerOnParent(jdmc);
@@ -3782,7 +3664,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
 
             //JDialogModelChecking.validated = adp.validated;
             //JDialogModelChecking.ignored = adp.ignored;
-            LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>();
+            List<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>();
             JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
             if (!automatic) {
                 GraphicLib.centerOnParent(jdmc);
@@ -4208,14 +4090,14 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return ret;
     }
 
-    public LinkedList<TAttribute> getAllAttributes() {
+    public List<TAttribute> getAllAttributes() {
         TURTLEPanel tp = getCurrentTURTLEPanel();
         String name = getCurrentTDiagramPanel().getName();
 
         return this.getAllAttributes(tp, name);
     }
 
-    public LinkedList<TAttribute> getAllAttributes(TURTLEPanel tp, String name) {
+    public List<TAttribute> getAllAttributes(TURTLEPanel tp, String name) {
         if (tp == null) {
             return null;
         }
@@ -4228,8 +4110,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return adp.getAllAttributes(name);
     }
 
-
-    public LinkedList<AvatarMethod> getAllMethods() {
+    public List<AvatarMethod> getAllMethods() {
         TURTLEPanel tp = getCurrentTURTLEPanel();
         if (tp == null) {
             return null;
@@ -4245,13 +4126,13 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return adp.getAllMethods(name);
     }
 
-    public LinkedList<AvatarSignal> getAllSignals() {
+    public List<AvatarSignal> getAllSignals() {
         TURTLEPanel tp = getCurrentTURTLEPanel();
         String name = getCurrentTDiagramPanel().getName();
         return this.getAllSignals(tp, name);
     }
 
-    public LinkedList<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) {
+    public List<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) {
         if (tp == null) {
             return null;
         }
@@ -4505,7 +4386,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return tmlcomp.getAllOutRequests(name);
     }
 
-    public LinkedList<String> getAllTimers() {
+    public List<String> getAllTimers() {
         TURTLEPanel tp = getCurrentTURTLEPanel();
         if (tp == null) {
             return null;
@@ -7301,6 +7182,20 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         setPanelMode();
         return true;
     }
+    
+    public boolean createELN(int index, String s) {
+        return createELN(tabs.elementAt(index), s);
+    }
+
+    public boolean createELN(TURTLEPanel tp, String s) {
+        if (!(tp instanceof ELNDesignPanel)) {
+            return false;
+        }
+
+        ((ELNDesignPanel) tp).addELN(s);
+        setPanelMode();
+        return true;
+    }
 
     public boolean isRequirementCreated(int index, String s) {
         return isRequirementCreated(tabs.elementAt(index), s);
@@ -7414,6 +7309,18 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     	return null;
     }
     
+    public ELNDiagramPanel getELNPanel(int index, int indexTab, String s) {
+    	TURTLEPanel tp = tabs.elementAt(index);
+    	return getELNPanel(tp, indexTab, s);
+    }
+    
+    public ELNDiagramPanel getELNPanel(TURTLEPanel tp, int indexTab, String s) {
+    	if (tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+    		return (ELNDiagramPanel) (tp.panelAt(indexTab));
+    	}
+    	return null;
+    }
+    
     public AvatarRDPanel getAvatarRDPanel(int index, int indexTab, String s) {
         TURTLEPanel tp = tabs.elementAt(index);
         return getAvatarRDPanel(tp, indexTab, s);
@@ -8147,7 +8054,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return false;
     }
 
-		public boolean newSysCAMSComponentTaskName(TURTLEPanel tp, String old, String niou) {
+    public boolean newSysCAMSComponentTaskName(TURTLEPanel tp, String old, String niou) {
     	JTabbedPane jtp = tp.tabbedPane;
     	for (int i = 0; i < jtp.getTabCount(); i++) {
     		if (jtp.getTitleAt(i).equals(niou)) {
@@ -8168,7 +8075,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     					tdp.setName(niou);
     				}
     			}
-    			
+
     			return true;
     		}
     	}
@@ -8532,33 +8439,33 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         //tofile.extracParamToFile();
     }
 
-    public void avatarToSoclib() {
-        //DG 6.2. appelee nulle part?
-
-        ADDDiagramPanel deploymentDiagramPanel = getDeploymentPanel();
-        AvatarDesignPanel designDiagramPanel = getFirstAvatarDesignPanelFound();
-
-        AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel);
-        AvatarddSpecification avddspec = avdeploymenttranslator.getAvatarddSpecification();
-
-
-        AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator(designDiagramPanel);
-
-        LinkedList<AvatarBDStateMachineOwner> adp = designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList();
-        AvatarSpecification avaspec = avdesigntranslator.generateAvatarSpecification(adp);
-
-        // Generator for block tasks and application main file
-
-        TasksAndMainGenerator gene = new TasksAndMainGenerator(avddspec, avaspec);
-        gene.generateSoclib(false, false);
-        try {
-            //System.err.println("ok");
-            gene.saveInFiles(TasksAndMainGenerator.getGeneratedPath());
-        } catch (FileException e) {
-            System.err.println("FileException : MainGUI.avatarToSoclib()");
-        }
-
-    }
+//    public void avatarToSoclib() {
+//        //DG 6.2. appelee nulle part?
+//
+//        ADDDiagramPanel deploymentDiagramPanel = getDeploymentPanel();
+//        AvatarDesignPanel designDiagramPanel = getFirstAvatarDesignPanelFound();
+//
+//        AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel);
+//        AvatarddSpecification avddspec = avdeploymenttranslator.getAvatarddSpecification();
+//
+//
+//        AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator(designDiagramPanel);
+//
+//        List<AvatarBDStateMachineOwner> adp = designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList();
+//        AvatarSpecification avaspec = avdesigntranslator.generateAvatarSpecification(adp);
+//
+//        // Generator for block tasks and application main file
+//
+//        TasksAndMainGenerator gene = new TasksAndMainGenerator(avddspec, avaspec);
+//        gene.generateSoclib(false, false);
+//        try {
+//            //System.err.println("ok");
+//            gene.saveInFiles(TasksAndMainGenerator.getGeneratedPath());
+//        } catch (FileException e) {
+//            System.err.println("FileException : MainGUI.avatarToSoclib()");
+//        }
+//
+//    }
     //--------------------end DDD------------------------------------------------
 
     public Vector<SysCAMSComponentTaskDiagramPanel> getListSysCAMSPanel() {
@@ -8572,12 +8479,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     			}
     		}
     		if (syscamsDiagram.size() == 0) 
-    			System.err.println("No SysCAMS Panel found : MainGUI.getSysCAMSPanel()");
+    			System.err.println("No SysCAMS Panel found : MainGUI.getListSysCAMSPanel()");
     		return syscamsDiagram;
     	} else {
     		JDialog msg = new JDialog();
     		msg.setLocationRelativeTo(null);
-    		JOptionPane.showMessageDialog(msg, "There is no Systemc-AMS panel. Please add one.", "Warning !",
+    		JOptionPane.showMessageDialog(msg, "There is no SystemC-AMS panel. Please add one.", "Warning !",
     				JOptionPane.WARNING_MESSAGE);
     		return null;
     	}
@@ -8592,6 +8499,37 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         dtree.toBeUpdated();
     }
     
+    public Vector<ELNDiagramPanel> getListELNPanel() {
+    	Vector<ELNDiagramPanel> elnDiagram = new Vector<ELNDiagramPanel>(); 
+    	TURTLEPanel tp = getTURTLEPanel("ELN");
+    	if (tp != null) {
+    		Vector<TDiagramPanel> ps = tp.panels;
+    		for (TDiagramPanel panel : ps) {
+    			if (panel instanceof ELNDiagramPanel) {
+    				elnDiagram.add((ELNDiagramPanel) panel);
+    			}
+    		}
+    		if (elnDiagram.size() == 0) 
+    			System.err.println("No ELN Panel found : MainGUI.getListELNPanel()");
+    		return elnDiagram;
+    	} else {
+    		JDialog msg = new JDialog();
+    		msg.setLocationRelativeTo(null);
+    		JOptionPane.showMessageDialog(msg, "There is no ELN panel. Please add one.", "Warning !",
+    				JOptionPane.WARNING_MESSAGE);
+    		return null;
+    	}
+    }
+    
+    public void elnExecutableCodeGeneration() {
+        JDialogELNExecutableCodeGeneration jgen = new JDialogELNExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution",
+                "../ELNGenerationCode/");
+   
+        GraphicLib.centerOnParent(jgen, 500, 450);
+        jgen.setVisible(true);
+        dtree.toBeUpdated();
+    }
+    
     public boolean selectMainTab(String id) {
         TURTLEPanel tp;
 
diff --git a/src/main/java/ui/MalformedModelingException.java b/src/main/java/ui/MalformedModelingException.java
index c656bb59ba229eb6908d1fe044cec61d58cd9110..809732ad480a013cba12796fab8ebe4bea32212a 100755
--- a/src/main/java/ui/MalformedModelingException.java
+++ b/src/main/java/ui/MalformedModelingException.java
@@ -36,12 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
-
 /**
  * Class MalformedModelingException
  * Creation: 15/12/2003
@@ -50,10 +46,22 @@ package ui;
  */
 public	class MalformedModelingException extends Exception {
 	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 7411903139644480309L;
+	
 	public MalformedModelingException() {
-		super("Modeling does not follows the TTool format");
+		this( (Throwable) null );
+	}
+
+	public MalformedModelingException( final String message ) {
+		super( message );
+	}
+
+	public MalformedModelingException( final Throwable th ) {
+		super( "Modeling does not follow the TTool format", th );
 	}
-    
 } // Class 
 
 	
\ No newline at end of file
diff --git a/src/main/java/ui/MalformedTMLDesignException.java b/src/main/java/ui/MalformedTMLDesignException.java
index 45952af48e7ebaeae8f33a61f2fd5c2fc6aa38c9..725d68f6eb5d105ba5edb75292c7076a319ed860 100755
--- a/src/main/java/ui/MalformedTMLDesignException.java
+++ b/src/main/java/ui/MalformedTMLDesignException.java
@@ -36,11 +36,12 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import translator.CheckingError;
 
 /**
  * Class MalformedTMLDesigngException
@@ -50,10 +51,43 @@ package ui;
  */
 public	class MalformedTMLDesignException extends Exception {
 	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -379782523139636075L;
+	
+	private final List<CheckingError> errors;
+
 	public MalformedTMLDesignException(String msg) {
-		super(msg);
+		this( msg, new ArrayList<CheckingError>() );
 	}
     
+	public MalformedTMLDesignException( final String msg,
+										final List<CheckingError> errors ) {
+		super( msg );
+		
+		this.errors = errors;
+	}
+	
+	public List<CheckingError> getErrors() {
+		return errors;
+	}
+	
+	@Override
+	public String toString() {
+		final StringBuilder message = new StringBuilder( super.toString() );
+		
+		if ( !getErrors().isEmpty() ) {
+			message.append( "Errors are:" );
+		}
+		
+		for ( final CheckingError  error : getErrors() ) {
+			message.append( System.lineSeparator() + error );
+		}
+		
+		return message.toString();
+	}
+   
 } // Class 
 
 	
\ No newline at end of file
diff --git a/src/main/java/ui/RangeExpression.java b/src/main/java/ui/RangeExpression.java
new file mode 100644
index 0000000000000000000000000000000000000000..58ee809adaaee21d80ca96c88a06621afa482d37
--- /dev/null
+++ b/src/main/java/ui/RangeExpression.java
@@ -0,0 +1,56 @@
+package ui;
+
+public class RangeExpression extends Expression {
+	
+	private final Expression minExpression;
+
+	private final Expression maxExpression;
+	
+	
+	public RangeExpression( final String minExpressionText,
+							final String maxExpressionText,
+							final String nullText,
+							final String labelGlobal,
+							final String labelValues ) {
+		super( null, nullText, labelGlobal );
+		
+		
+		minExpression = new Expression( minExpressionText, nullText, labelValues );
+		maxExpression = new Expression( maxExpressionText, nullText, labelValues );
+	}
+
+	public Expression getMinExpression() {
+		return minExpression;
+	}
+
+	public Expression getMaxExpression() {
+		return maxExpression;
+	}
+	
+	@Override
+	public void setEnabled( final boolean enabled ) {
+		getMinExpression().setEnabled( enabled );
+		getMaxExpression().setEnabled( enabled );
+	}
+	
+	@Override
+	public boolean isEnabled() {
+		return minExpression.isEnabled() || maxExpression.isEnabled();
+	}
+	
+	@Override
+	public boolean isNull() {
+		return minExpression.isNull() && maxExpression.isNull();
+	}
+	
+	@Override
+	public String toString() {
+		if ( getLabel() == null ) {
+			return "[" + getMinExpression().toString() + ", " + getMaxExpression().toString() + "]";
+		}
+		
+		final Object[] values = new String[] { getMinExpression().toString(), getMaxExpression().toString() };
+		
+		return String.format( getLabel(), values );
+	}
+}
diff --git a/src/main/java/ui/SysCAMSComponentDesignPanel.java b/src/main/java/ui/SysCAMSComponentDesignPanel.java
index 622816aa643a51ce81945946f8e8751ce6506b7c..63a3790f7b13224001df074a864196969eb58070 100644
--- a/src/main/java/ui/SysCAMSComponentDesignPanel.java
+++ b/src/main/java/ui/SysCAMSComponentDesignPanel.java
@@ -164,7 +164,7 @@ public class SysCAMSComponentDesignPanel extends TURTLEPanel {
 		jsp.getVerticalScrollBar().setUnitIncrement(MainGUI.INCREMENT);
 		toolBarPanel.add(ardtb, BorderLayout.NORTH);
 		toolBarPanel.add(jsp, BorderLayout.CENTER);
-		tabbedPane.addTab(s, IconManager.imgic84, toolBarPanel, "Opens SysCAMS component diagram");
+		tabbedPane.addTab(s, IconManager.imgic1208, toolBarPanel, "Opens SysCAMS component diagram");
 		tabbedPane.setSelectedIndex(0);
 		JPanel toolBarPanel = new JPanel();
 		toolBarPanel.setLayout(new BorderLayout());
diff --git a/src/main/java/ui/TDiagramMouseManager.java b/src/main/java/ui/TDiagramMouseManager.java
index 0f589acc1533a1e1e8a04f9c7a5a48fae811dda3..e21d08b1762ea63875e1eb40061da31c7bc9093f 100755
--- a/src/main/java/ui/TDiagramMouseManager.java
+++ b/src/main/java/ui/TDiagramMouseManager.java
@@ -38,13 +38,13 @@
 
 package ui;
 
-import ui.window.JDialogSearchBox;
-
-import java.awt.*;
+import java.awt.Cursor;
+import java.awt.Point;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.util.ArrayList;
-import myutil.*;
+
+import ui.window.JDialogSearchBox;
 
 /**
  * Class TDiagramMouseManager
@@ -58,7 +58,7 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen
     private TDiagramPanel tdp;
 
     private TGComponent tgc;
-    private TGComponent lastSelectedComponent = null;
+   // private TGComponent lastSelectedComponent = null;
 
     private int oldx;
     private int oldy;
@@ -75,7 +75,7 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen
 
     private int resizeInfo;
 
-    private boolean selectedComponent = false;
+   // private boolean selectedComponent = false;
 
     //private Point p;
     private TGConnectingPoint cp;
@@ -496,14 +496,14 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen
  	    	else
  	    		tdp.getGUI().setMode(MainGUI.OPENED);
  	    	
-     	    lastSelectedComponent = tgc;
+     	    //lastSelectedComponent = tgc;
      	    tdp.setSelect(true);
      	    tgc.singleClick(tdp.getGUI().getFrame(), x, y);       	   
         }
         else {
         	tdp.getGUI().setMode(MainGUI.OPENED);
      	    tdp.setSelect(false);
-     	    lastSelectedComponent = null;
+     	   // lastSelectedComponent = null;
      	    tdp.componentPointed = null;
         }
         tdp.getGUI().changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
@@ -581,7 +581,7 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen
                 tdp.repaint();
             }
         }
-
+        
         if ((selected == TGComponentManager.CONNECTOR) && (tdp.mode == TDiagramPanel.NORMAL)) { // is connectingPointShow selected
             if(tdp.highlightOutAndFreeConnectingPoint(e.getX(), e.getY(), tdp.getMGUI().getIdButtonSelected())) {
                 tdp.repaint();
@@ -593,7 +593,6 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen
             tdp.setAddingTGConnector(e.getX(), e.getY());
             tdp.repaint();
         }
-
     }
 
     @Override
diff --git a/src/main/java/ui/TDiagramPanel.java b/src/main/java/ui/TDiagramPanel.java
index e7dcebff6a8877decd4601b6e6d80bc438abdc7e..187a537778cf1bfe29766c92d04ccd0012e03745 100755
--- a/src/main/java/ui/TDiagramPanel.java
+++ b/src/main/java/ui/TDiagramPanel.java
@@ -55,6 +55,7 @@ import ui.cd.*;
 import ui.ftd.FTDFault;
 import ui.eln.*;
 import ui.eln.sca_eln.*;
+import ui.eln.sca_eln_sca_de.*;
 import ui.eln.sca_eln_sca_tdf.*;
 import ui.syscams.*;
 import ui.ncdd.NCEqNode;
@@ -1701,7 +1702,10 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         }
 
         if (e.getSource() == enableDisable) {
-            componentPopup.setEnabled(!componentPopup.isEnabled());
+            
+        	// Issue #69
+        	componentPopup.setEnabled( !componentPopup.isEnabled( true ) );
+//            componentPopup.setEnabled(!componentPopup.isEnabled());
             getGUI().changeMade(this, CHANGE_VALUE_COMPONENT);
             repaint();
             return;
@@ -2031,15 +2035,17 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
             clone.setEnabled(false);
         }
 
-        if (componentPointed instanceof CanBeDisabled) {
-            /*if (componentPointed.hasFather()) {
-              clone.setEnabled(false);
-              } else {*/
-            enableDisable.setEnabled(true);
-            //}
-        } else {
-            enableDisable.setEnabled(false);
-        }
+        // Issue #69
+        enableDisable.setEnabled( componentPointed.canBeDisabled() );
+//        if (componentPointed instanceof CanBeDisabled) {
+//            /*if (componentPointed.hasFather()) {
+//              clone.setEnabled(false);
+//              } else {*/
+//            enableDisable.setEnabled(true);
+//            //}
+//        } else {
+//            enableDisable.setEnabled(false);
+//        }
 
         if (componentPointed instanceof SwallowedTGComponent) {
             if (componentPointed.getFather() == null) {
@@ -2548,6 +2554,18 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         }
         return null;
     }
+    
+    public List<TGConnector> getConnectors() {
+    	final List<TGConnector> connectors = new ArrayList<TGConnector>();
+ 
+        for( final TGComponent compo : componentList ) {
+        	if ( compo instanceof TGConnector ) {
+        		connectors.add( (TGConnector) compo );
+        	}
+        }
+        
+        return connectors;
+    }
 
     public TGComponent getComponentToWhichBelongs(TGConnectingPoint p) {
         for (TGComponent tgc1 : this.componentList) {
@@ -2569,7 +2587,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         return null;
     }
 
-    public void getAllLatencyChecks(ArrayList<TGComponent> _list) {
+    public void getAllLatencyChecks(List<TGComponent> _list) {
         for (TGComponent tgc : this.componentList) {
             if (tgc.getCheckLatency()) {
                 _list.add(tgc);
@@ -2577,13 +2595,13 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         }
     }
 
-    public void getAllCheckedTGComponent(ArrayList<TGComponent> _list) {
+    public void getAllCheckedTGComponent( List<TGComponent> _list) {
         for (TGComponent tgc : this.componentList)
             if (tgc.hasCheckedAccessibility())
                 _list.addAll(tgc.getAllCheckedAccessibility());
     }
 
-    public void getAllCheckableTGComponent(ArrayList<TGComponent> _list) {
+    public void getAllCheckableTGComponent(List<TGComponent> _list) {
         for (TGComponent tgc : this.componentList) {
             //if (tgc instanceof CheckableAccessibility) {
                 _list.addAll(tgc.getAllCheckableAccessibility());
@@ -2594,7 +2612,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     }
 
-    public void getAllCheckableInvariantTGComponent(ArrayList<TGComponent> _list) {
+    public void getAllCheckableInvariantTGComponent(List<TGComponent> _list) {
         for (TGComponent tgc : this.componentList)
             if (tgc.hasCheckableInvariant())
                 _list.addAll(tgc.getAllCheckableInvariant());
@@ -2634,7 +2652,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                     || (o instanceof SysCAMSCompositeComponent && this.checkSysCAMSCompositeComponent((SysCAMSCompositeComponent) o, name))
                     || (o instanceof ELNCluster && this.checkELNCluster((ELNCluster) o, name))
                     || (o instanceof ELNModule && this.checkELNModule((ELNModule) o, name))
-                    || (o instanceof ELNComponentNodeRef && this.checkELNComponentNodeRef((ELNComponentNodeRef) o, name))
+                    || (o instanceof ELNNodeRef && this.checkELNComponentNodeRef((ELNNodeRef) o, name))
                     || (o instanceof ELNComponentResistor && this.checkELNComponentResistor((ELNComponentResistor) o, name))
                     || (o instanceof ELNComponentCapacitor && this.checkELNComponentCapacitor((ELNComponentCapacitor) o, name))
                     || (o instanceof ELNComponentInductor && this.checkELNComponentInductor((ELNComponentInductor) o, name))
@@ -2648,6 +2666,10 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                     || (o instanceof ELNComponentCurrentSourceTDF && this.checkELNComponentCurrentSourceTDF((ELNComponentCurrentSourceTDF) o, name))
                     || (o instanceof ELNComponentVoltageSinkTDF && this.checkELNComponentVoltageSinkTDF((ELNComponentVoltageSinkTDF) o, name))
                     || (o instanceof ELNComponentVoltageSourceTDF && this.checkELNComponentVoltageSourceTDF((ELNComponentVoltageSourceTDF) o, name))
+                    || (o instanceof ELNComponentCurrentSinkDE && this.checkELNComponentCurrentSinkDE((ELNComponentCurrentSinkDE) o, name))
+                    || (o instanceof ELNComponentCurrentSourceDE && this.checkELNComponentCurrentSourceDE((ELNComponentCurrentSourceDE) o, name))
+                    || (o instanceof ELNComponentVoltageSinkDE && this.checkELNComponentVoltageSinkDE((ELNComponentVoltageSinkDE) o, name))
+                    || (o instanceof ELNComponentVoltageSourceDE && this.checkELNComponentVoltageSourceDE((ELNComponentVoltageSourceDE) o, name))
                     || (o instanceof ATDBlock && this.checkATDBlock((ATDBlock) o, name))
                     || (o instanceof ATDAttack && this.checkATDAttack((ATDAttack) o, name))
                     || (o instanceof FTDFault && this.checkFTDFault((FTDFault) o, name))
@@ -2719,7 +2741,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         	return false;
         }
         
-        public boolean checkELNComponentNodeRef(ELNComponentNodeRef o, String name) {
+        public boolean checkELNComponentNodeRef(ELNNodeRef o, String name) {
         	return false;
         }
         
@@ -2774,6 +2796,22 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         public boolean checkELNComponentVoltageSourceTDF(ELNComponentVoltageSourceTDF o, String name) {
         	return false;
         }
+        
+        public boolean checkELNComponentCurrentSinkDE(ELNComponentCurrentSinkDE o, String name) {
+        	return false;
+        }
+        
+        public boolean checkELNComponentCurrentSourceDE(ELNComponentCurrentSourceDE o, String name) {
+        	return false;
+        }
+        
+        public boolean checkELNComponentVoltageSinkDE(ELNComponentVoltageSinkDE o, String name) {
+        	return false;
+        }
+        
+        public boolean checkELNComponentVoltageSourceDE(ELNComponentVoltageSourceDE o, String name) {
+        	return false;
+        }
 
         public boolean checkATDBlock(ATDBlock o, String name) {
             return false;
@@ -2926,7 +2964,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     public String findELNComponentName(String name) {
     	return this.findGoodName(name, new NameChecker() {
-    		public boolean checkELNComponentNodeRef(ELNComponentNodeRef o, String name) {
+    		public boolean checkELNComponentNodeRef(ELNNodeRef o, String name) {
     			return o.getValue().equals(name);
     		}
     		public boolean checkELNComponentResistor(ELNComponentResistor o, String name) {
@@ -2968,6 +3006,18 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
     		public boolean checkELNComponentVoltageSourceTDF(ELNComponentVoltageSourceTDF o, String name) {
     			return o.getValue().equals(name);
     		}
+    		public boolean checkELNComponentCurrentSinkDE(ELNComponentCurrentSinkDE o, String name) {
+    			return o.getValue().equals(name);
+    		}
+    		public boolean checkELNComponentCurrentSourceDE(ELNComponentCurrentSourceDE o, String name) {
+    			return o.getValue().equals(name);
+    		}
+    		public boolean checkELNComponentVoltageSinkDE(ELNComponentVoltageSinkDE o, String name) {
+    			return o.getValue().equals(name);
+    		}
+    		public boolean checkELNComponentVoltageSourceDE(ELNComponentVoltageSourceDE o, String name) {
+    			return o.getValue().equals(name);
+    		}
     		public boolean checkELNModule(ELNModule o, String name) {
     			if (o.getValue().equals(name))
     				return true;
@@ -3702,8 +3752,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         ;
     }
 
-
-    public void getListOfBreakPoints(java.util.List<Point> points, int taskID) {
+    public void getListOfBreakPoints(List<Point> points, int taskID) {
         for (TGComponent tgc : this.componentList)
             if (tgc.getBreakpoint() && (tgc.getDIPLOID() != -1)) {
                 boolean found = false;
@@ -3863,7 +3912,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         select = b;
     }
 
-    public void upComponent() {
+    protected void upComponent() {
         TGComponent tgc = componentPointed;
         if (tgc != null && tgc.moveable) {
             tgc.setMoveCd(tgc.x, tgc.y - MOVE_SPEED);
@@ -3871,7 +3920,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         }
     }
 
-    public void downComponent() {
+    protected void downComponent() {
         TGComponent tgc = componentPointed;
         if (tgc != null && tgc.moveable) {
             tgc.setMoveCd(tgc.x, tgc.y + MOVE_SPEED);
@@ -3879,7 +3928,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         }
     }
 
-    public void leftComponent() {
+    protected void leftComponent() {
         TGComponent tgc = componentPointed;
         if (tgc != null && tgc.moveable) {
             tgc.setMoveCd(tgc.x - MOVE_SPEED, tgc.y);
@@ -3887,7 +3936,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         }
     }
 
-    public void rightComponent() {
+    protected void rightComponent() {
         TGComponent tgc = componentPointed;
         if (tgc != null && tgc.moveable) {
             tgc.setMoveCd(tgc.x + MOVE_SPEED, tgc.y);
@@ -3895,22 +3944,22 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         }
     }
 
-    public void upComponents() {
+    protected void upComponents() {
         moveSelected(xSel, ySel - MOVE_SPEED);
         repaint();
     }
 
-    public void downComponents() {
+    protected void downComponents() {
         moveSelected(xSel, ySel + MOVE_SPEED);
         repaint();
     }
 
-    public void leftComponents() {
+    protected void leftComponents() {
         moveSelected(xSel - MOVE_SPEED, ySel);
         repaint();
     }
 
-    public void rightComponents() {
+    protected void rightComponents() {
         moveSelected(xSel + MOVE_SPEED, ySel);
         repaint();
     }
@@ -3922,6 +3971,21 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
     public TDiagramMouseManager getMouseManager() {
         return tdmm;
     }
+
+    /**
+     * Check if newvalue is already a name of a component.
+     *
+     * @param newvalue
+     * @return true if the name is used
+     * @author Fabien Tessier
+     */
+    public boolean isCompositeNameUsed(String newvalue) {
+        for (TGComponent tgc : this.componentList) {
+            if (tgc.getValue().equals(newvalue))
+                return true;
+        }
+        return false;
+    }
 }
 
 
diff --git a/src/main/java/ui/TGCNote.java b/src/main/java/ui/TGCNote.java
index 069995457ba1bc1483d86c44a448f1b89eeef893..0cb5986d14fc39d7d08d862585d1983fdafe5570 100755
--- a/src/main/java/ui/TGCNote.java
+++ b/src/main/java/ui/TGCNote.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui;
 
 import myutil.*;
@@ -119,7 +118,7 @@ public class TGCNote extends TGCScalableWithoutInternalComponent {
         return this.values;
     }
 
-
+    @Override
     public void internalDrawing(Graphics graph) {
         if (this.rescaled && !this.tdp.isScaled()) {
             this.rescaled = false;
@@ -178,10 +177,10 @@ public class TGCNote extends TGCScalableWithoutInternalComponent {
         graph.fillPolygon(px, py, 4);
 
         graph.setColor(c);
-        Graphics2D g2 = (Graphics2D)graph;
+       // Graphics2D g2 = (Graphics2D)graph;
         for (int i = 0; i < this.values.length; i++) {
             //TraceManager.addDev("Value #" + i + " = " + this.values[i]);
-            g2.drawString(this.values[i], this.x + this.textX, this.y + this.textY + (i + 1) * this.currentFontSize);
+        	graph.drawString(this.values[i], this.x + this.textX, this.y + this.textY + (i + 1) * this.currentFontSize);
         }
     }
 
@@ -189,6 +188,7 @@ public class TGCNote extends TGCScalableWithoutInternalComponent {
         values = Conversion.wrapText(value);
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = this.value;
 
@@ -205,6 +205,7 @@ public class TGCNote extends TGCScalableWithoutInternalComponent {
         return false;
     }
 
+    @Override
     public TGComponent isOnMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -212,6 +213,7 @@ public class TGCNote extends TGCScalableWithoutInternalComponent {
         return null;
     }
 
+    @Override
     public void rescale(double scaleFactor) {
         /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor;
           lineHeight = (int)(dlineHeight);
@@ -223,10 +225,12 @@ public class TGCNote extends TGCScalableWithoutInternalComponent {
         super.rescale(scaleFactor);
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.UML_NOTE;
     }
 
+    @Override
     protected String translateExtraParam() {
         if (values == null)
             this.makeValue();
diff --git a/src/main/java/ui/TGCOneLineText.java b/src/main/java/ui/TGCOneLineText.java
index 26ee5a0803b073d4823ab54ac9281e78def16097..d9db3c656949ab3c9baec22b5a700c60a720f2dd 100755
--- a/src/main/java/ui/TGCOneLineText.java
+++ b/src/main/java/ui/TGCOneLineText.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import myutil.Conversion;
@@ -48,8 +45,6 @@ import ui.util.IconManager;
 import javax.swing.*;
 import java.awt.*;
 
-//import java.awt.geom.*;
-
 /**
    * Class TGCOneLineText
    * Internal component that is a onle line text
@@ -58,8 +53,8 @@ import java.awt.*;
    * @author Ludovic APVRILLE
  */
 public class TGCOneLineText extends TGCWithoutInternalComponent{
-    protected boolean emptyText;
 
+	protected boolean emptyText;
 
     public TGCOneLineText(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
         super(_x, _y,  _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -79,6 +74,7 @@ public class TGCOneLineText extends TGCWithoutInternalComponent{
         myImageIcon = IconManager.imgic302;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         if (!tdp.isScaled()) {
             width = g.getFontMetrics().stringWidth(value);
@@ -90,6 +86,7 @@ public class TGCOneLineText extends TGCWithoutInternalComponent{
         }
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y - height, Math.max(width, minWidth), height)) {
             return this;
@@ -97,6 +94,7 @@ public class TGCOneLineText extends TGCWithoutInternalComponent{
         return null;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
         String text = getName() + ": ";
@@ -124,21 +122,12 @@ public class TGCOneLineText extends TGCWithoutInternalComponent{
         return false;
     }
     
-    public void renameTab(String s) {
-    	TURTLEPanel tp = this.tdp.tp;
-    	for (TDiagramPanel tdpTmp: tp.panels) {
-    		if (tdpTmp.name.equals(name)) {
-    	    	if (!tp.nameInUse(s)) {
-    	            tp.tabbedPane.setTitleAt(tp.getIndexOfChild(tdpTmp), s);
-    	            tp.panels.elementAt(tp.getIndexOfChild(tdpTmp)).setName(s);
-    	            tp.mgui.changeMade(null, -1);
-    	        }
-    			break;
-    		}
-    	}
+    /* Issue #69
+     *  (non-Javadoc)
+     * @see ui.TGComponent#canBeDisabled()
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	return getFather() != null && getFather().canLabelBeDisabled( this );
     }
-    
-   public boolean nameUsed(String s) {
-    	return this.tdp.tp.refNameUsed(s);
-   }
 }
diff --git a/src/main/java/ui/TGCPointOfConnector.java b/src/main/java/ui/TGCPointOfConnector.java
index 253517696f2ad867a1931f6acdd6260399fa1bdf..5d8608d4fb2d66b902606c478f4159d81c39867e 100755
--- a/src/main/java/ui/TGCPointOfConnector.java
+++ b/src/main/java/ui/TGCPointOfConnector.java
@@ -109,4 +109,13 @@ public class TGCPointOfConnector extends TGCScalableWithoutInternalComponent {
     public int getCurrentMaxY() {
     	return getY() + getHeight();
     }
+
+	/* Issue #69
+	 * (non-Javadoc)
+	 * @see ui.CDElement#canBeDisabled()
+	 */
+	@Override
+	public boolean canBeDisabled() {
+		return false;
+	}
 }
diff --git a/src/main/java/ui/TGCScalableWithInternalComponent.java b/src/main/java/ui/TGCScalableWithInternalComponent.java
index a5c9f992f7723cb82392d62b87f1f36ea85f4d40..e292b8944c2010235867f686897fc8905e6ab373 100755
--- a/src/main/java/ui/TGCScalableWithInternalComponent.java
+++ b/src/main/java/ui/TGCScalableWithInternalComponent.java
@@ -38,8 +38,6 @@
 
 package ui;
 
-import myutil.TraceManager;
-
 /**
    * Class TGCScalableWithInternalComponent
    * Graphical component that contains one or more internal components, and which is scalable
@@ -48,8 +46,10 @@ import myutil.TraceManager;
    * @author Ludovic APVRILLE
  */
 public abstract class TGCScalableWithInternalComponent extends TGCWithInternalComponent implements ScalableTGComponent {
-    protected boolean rescaled = false;
-    protected double oldScaleFactor;
+    
+	protected boolean rescaled = false;
+    
+	protected double oldScaleFactor;
 
     public TGCScalableWithInternalComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -114,7 +114,7 @@ public abstract class TGCScalableWithInternalComponent extends TGCWithInternalCo
         hasBeenResized();
     }
 
-    public void initScaling(int w, int h) {
+    protected void initScaling(int w, int h) {
         oldScaleFactor = tdp.getZoom();
 
         dx = 0;
@@ -139,5 +139,4 @@ public abstract class TGCScalableWithInternalComponent extends TGCWithInternalCo
 
         rescaled = true;
     }
-
 }
diff --git a/src/main/java/ui/TGCWithInternalComponent.java b/src/main/java/ui/TGCWithInternalComponent.java
index 1b2d6e71a192ec96a0abb56b59dcdb8d8c620fb0..833bc50b1d75cce2f7893fc8197b17304c4e411f 100755
--- a/src/main/java/ui/TGCWithInternalComponent.java
+++ b/src/main/java/ui/TGCWithInternalComponent.java
@@ -36,13 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
-//import java.awt.*;
-
 /**
    * Class TGCWithInternalComponent
    * Graphical component that contains one or more internal components
@@ -50,13 +45,13 @@ package ui;
    * @version 1.0 22/12/2003
    * @author Ludovic APVRILLE
  */
-public abstract class TGCWithInternalComponent extends TGComponent{
-
+public abstract class TGCWithInternalComponent extends TGComponent {
 
     public TGCWithInternalComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
     }
 
+    @Override
     public void setState(int s) {
         state = s;
         if (s != TGState.POINTER_ON_ME) {
@@ -76,6 +71,7 @@ public abstract class TGCWithInternalComponent extends TGComponent{
         }
     }
 
+    @Override
     public final TGComponent isOnMe(int x1, int y1) {
         selectedInternalComponent = isOnAnInternalTGComponent(x1, y1);
 
@@ -87,5 +83,4 @@ public abstract class TGCWithInternalComponent extends TGComponent{
     }
 
     public abstract TGComponent isOnOnlyMe(int x1, int y1);
-
 }
diff --git a/src/main/java/ui/TGCWithoutInternalComponent.java b/src/main/java/ui/TGCWithoutInternalComponent.java
index cfbf1548aeadae10870aebc17032143dcb230ce2..8689b451937bd35e3a17fb4495a24b6019c4226e 100755
--- a/src/main/java/ui/TGCWithoutInternalComponent.java
+++ b/src/main/java/ui/TGCWithoutInternalComponent.java
@@ -36,13 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
-//import java.awt.*;
-
 /**
  * Class TGCWithoutInternalComponent
  * Graphical component which contains no internal component
@@ -59,6 +54,7 @@ public abstract class TGCWithoutInternalComponent extends TGComponent{
         nbInternalTGComponent = 0;
     }
     
+    @Override
     public void setState(int s) {
         if ((s == TGState.POINTED) && (father == null)) {
             state = TGState.POINTER_ON_ME;
diff --git a/src/main/java/ui/TGComponent.java b/src/main/java/ui/TGComponent.java
index e94e968e408ae31509754943b4f004994551cf1b..644262db990ae7b22aff56c67a9942604c221889 100755
--- a/src/main/java/ui/TGComponent.java
+++ b/src/main/java/ui/TGComponent.java
@@ -59,12 +59,18 @@ import ui.tmldd.TMLArchiFirewallNode;
 import ui.util.IconManager;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Point;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.geom.Point2D;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Vector;
 
 /**
@@ -76,7 +82,7 @@ import java.util.Vector;
  * @version 1.0 21/12/2003
  */
 
-public abstract class TGComponent implements CDElement, GenericTree {
+public abstract class TGComponent  extends AbstractCDElement implements /*CDElement,*/ GenericTree {
 
     protected final static String XML_HEAD = "<COMPONENT type=\"";
     protected final static String XML_ID = "\" id=\"";
@@ -151,7 +157,7 @@ public abstract class TGComponent implements CDElement, GenericTree {
     protected TGComponent selectedInternalComponent;
 
     // characteristics
-    protected boolean enabled = true;
+    //protected boolean enabled = true;
     protected boolean moveable;
     protected boolean removable;
     protected boolean multieditable = false;
@@ -163,7 +169,7 @@ public abstract class TGComponent implements CDElement, GenericTree {
 
     //Associated transactions
     public String transaction = "";
-    public java.util.List<SimulationTransaction> transactions = new ArrayList<SimulationTransaction>();
+    public List<SimulationTransaction> transactions = new ArrayList<SimulationTransaction>();
 
     //If task
     public String runningStatus = "";
@@ -240,14 +246,14 @@ public abstract class TGComponent implements CDElement, GenericTree {
 
     public abstract void setState(int s);
 
-
-    public void setEnabled(boolean _enabled) {
-        enabled = _enabled;
-    }
-
-    public boolean isEnabled() {
-        return enabled;
-    }
+//
+//    public void setEnabled(boolean _enabled) {
+//        enabled = _enabled;
+//    }
+//
+//    public boolean isEnabled() {
+//        return enabled;
+//    }
 
     // Internal component operations
     public void setFather(TGComponent _father) {
@@ -382,14 +388,14 @@ public abstract class TGComponent implements CDElement, GenericTree {
         return false;
     }
 
-    public java.util.List<TGComponent> getAllCheckedAccessibility() {
-        java.util.List<TGComponent> list = new LinkedList<TGComponent>();
+    public List<TGComponent> getAllCheckedAccessibility() {
+        List<TGComponent> list = new LinkedList<TGComponent>();
         getAllCheckedAccessibility(list);
 
         return list;
     }
 
-    public void getAllCheckedAccessibility(java.util.List<TGComponent> _list) {
+    public void getAllCheckedAccessibility(List<TGComponent> _list) {
         if (accessibility) {
             _list.add(this);
         }
@@ -401,14 +407,14 @@ public abstract class TGComponent implements CDElement, GenericTree {
         }
     }
 
-    public java.util.List<TGComponent> getAllCheckableAccessibility() {
-        java.util.List<TGComponent> list = new LinkedList<TGComponent>();
+    public List<TGComponent> getAllCheckableAccessibility() {
+        List<TGComponent> list = new LinkedList<TGComponent>();
         getAllCheckableAccessibility(list);
 
         return list;
     }
 
-    public void getAllCheckableAccessibility(java.util.List<TGComponent> _list) {
+    public void getAllCheckableAccessibility(List<TGComponent> _list) {
         TraceManager.addDev("Investigating accessibility of " + this);
         if (this instanceof CheckableAccessibility) {
             _list.add(this);
@@ -482,13 +488,14 @@ public abstract class TGComponent implements CDElement, GenericTree {
         latencyCheck = b;
     }
 
-    public LinkedList<TGComponent> getAllCheckableInvariant() {
-        LinkedList<TGComponent> list = new LinkedList<TGComponent>();
+    public List<TGComponent> getAllCheckableInvariant() {
+        List<TGComponent> list = new LinkedList<TGComponent>();
         getAllCheckableInvariant(list);
+        
         return list;
     }
 
-    public void getAllCheckableInvariant(LinkedList<TGComponent> _list) {
+    public void getAllCheckableInvariant( List<TGComponent> _list) {
         if (invariant) {
             _list.add(this);
         }
@@ -606,8 +613,7 @@ public abstract class TGComponent implements CDElement, GenericTree {
         GraphicLib.dashedRect(g, x + width + s2 + s3, y + s3, w + 15, h - 12);
     }
 
-
-    public void drawAttributes(Graphics g, String attr) {
+    protected void drawAttributes(Graphics g, String attr) {
         if (attr == null) {
             return;
         }
@@ -625,11 +631,9 @@ public abstract class TGComponent implements CDElement, GenericTree {
         int w = p1.x;
         int h = p1.y - y + s3;
         GraphicLib.dashedRect(g, x + width + s2 + s3, y + s3, w + 15, h - 12);
-
     }
 
-    public Point drawCode(Graphics g, String s, int x1, int y1, boolean pre, boolean java, int dec) {
-
+    protected Point drawCode(Graphics g, String s, int x1, int y1, boolean pre, boolean java, int dec) {
         Point p = new Point(0, y1);
 
         String info;
@@ -1017,11 +1021,14 @@ public abstract class TGComponent implements CDElement, GenericTree {
 
     }
 
-
     public void draw(Graphics g) {
         RunningInfo ri;
         LoadInfo li;
-        ColorManager.setColor(g, state, 0);
+        
+        // Issue #69: Disabling of components
+        ColorManager.setColor(g, state, 0, isEnabled() );
+//        ColorManager.setColor(g, state, 0);
+  
         Font font = new Font(Font.SANS_SERIF, Font.PLAIN, this.tdp.getFontSize());
         g.setFont(font);
         internalDrawing(g);
@@ -1148,7 +1155,7 @@ public abstract class TGComponent implements CDElement, GenericTree {
                         if (li != null) {
                             drawLoadDiploID(g, li);
                         }
-                        java.util.List<SimulationTransaction> ts = tdp.getMGUI().getTransactions(getDIPLOID());
+                        List<SimulationTransaction> ts = tdp.getMGUI().getTransactions(getDIPLOID());
                         if (ts != null && ts.size() > 0) {
                             transactions = new ArrayList<SimulationTransaction>(ts);
                             transaction = transactions.get(transactions.size() - 1).taskName + ":" + transactions.get(transactions.size() - 1).command;
@@ -1622,8 +1629,8 @@ public abstract class TGComponent implements CDElement, GenericTree {
         return tgcomponent[index];
     }
 
-    public LinkedList<TGComponent> getRecursiveAllInternalComponent() {
-        LinkedList<TGComponent> ll = new LinkedList<TGComponent>();
+    public List<TGComponent> getRecursiveAllInternalComponent() {
+        List<TGComponent> ll = new LinkedList<TGComponent>();
 
         for (int i = 0; i < nbInternalTGComponent; i++) {
             ll.add(tgcomponent[i]);
@@ -3042,7 +3049,7 @@ public abstract class TGComponent implements CDElement, GenericTree {
         return saveInXML(true);
     }
 
-    public StringBuffer saveInXML(boolean saveSubComponents) {
+    protected StringBuffer saveInXML(boolean saveSubComponents) {
         StringBuffer sb = null;
         boolean b = (father == null);
         if (b) {
@@ -3063,7 +3070,10 @@ public abstract class TGComponent implements CDElement, GenericTree {
         sb.append(translateCDParam());
         sb.append(translateSizeParam());
         sb.append(translateHidden());
-        if (this instanceof CanBeDisabled) {
+
+        // Issue #69
+        if ( canBeDisabled() ) {
+        //if (this instanceof CanBeDisabled) {
             sb.append(translateEnabled());
         }
         sb.append(translateCDRectangleParam());
@@ -3114,7 +3124,7 @@ public abstract class TGComponent implements CDElement, GenericTree {
     }
 
     protected String translateEnabled() {
-        return "<enabled value=\"" + enabled + "\" />\n";
+        return "<enabled value=\"" + isEnabled() + "\" />\n";
     }
 
     protected String translateHidden() {
@@ -3274,6 +3284,7 @@ public abstract class TGComponent implements CDElement, GenericTree {
     public void postLoading(int decId) throws MalformedModelingException {
     }
 
+    @Override
     public String toString() {
         String s1 = getName();
         String s2 = getValue();
@@ -3336,4 +3347,131 @@ public abstract class TGComponent implements CDElement, GenericTree {
     public void clickSelect(boolean b) {
         isSelect = b;
     }
+    
+    /**
+     * Issue #69
+     * @param point
+     * @return
+     */
+    public TGConnector getConnectorConnectedTo( final TGConnectingPoint point ) {
+    	return tdp.getConnectorConnectedTo( point );
+    }
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    public List<TGConnector> getConnectors() {
+    	return tdp.getConnectors();
+    }
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    public List<TGConnector> getInputConnectors() {
+    	final List<TGConnector> connectors = new ArrayList<TGConnector>();
+    	final List<TGConnectingPoint> points = Arrays.asList( getConnectingPoints() );
+    	
+    	for ( final TGConnector connector : getConnectors() ) {
+    		if ( points.contains( connector.getTGConnectingPointP2() ) ) {
+    			connectors.add( connector );
+    		}
+    	}
+    	
+    	return connectors;
+    }
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    public List<TGConnector> getOutputConnectors() {
+    	final List<TGConnector> connectors = new ArrayList<TGConnector>();
+    	final List<TGConnectingPoint> points = Arrays.asList( getConnectingPoints() );
+    	
+    	for ( final TGConnector connector : getConnectors() ) {
+    		if ( points.contains( connector.getTGConnectingPointP1() ) ) {
+    			connectors.add( connector );
+    		}
+    	}
+    	
+    	return connectors;
+    }
+
+	/**
+	 * Issue #69
+	 * @return
+	 */
+	public TGConnectingPoint[] getConnectingPoints() {
+		return connectingPoint;
+	}
+	
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.CDElement#acceptForward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptForward( final ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			if ( tgcomponent !=  null ) {
+				for ( final TGComponent subCompo : tgcomponent ) {
+					subCompo.acceptForward( visitor );
+				}
+			}
+			
+			if ( connectingPoint !=  null ) {
+				for ( final TGConnectingPoint point : connectingPoint ) {
+					final TGConnector connector = getConnectorConnectedTo( point );
+					
+					if ( connector != null && point == connector.getTGConnectingPointP1() ) {
+						point.acceptForward( visitor );
+					}
+				}
+			}
+		}
+	}
+	
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptBackward( final ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			if ( tgcomponent !=  null ) {
+				for ( final TGComponent subCompo : tgcomponent ) {
+					subCompo.acceptBackward( visitor );
+				}
+			}
+			
+			if ( connectingPoint !=  null ) {
+				for ( final TGConnectingPoint point : connectingPoint ) {
+					final TGConnector connector = getConnectorConnectedTo( point );
+					
+					if ( connector != null && point == connector.getTGConnectingPointP2() ) {
+						point.acceptBackward( visitor );
+					}
+				}
+			}
+		}
+	}
+    
+    public void renameTab(String s) {
+    	TURTLEPanel tp = this.tdp.tp;
+    	for (TDiagramPanel tdpTmp: tp.panels) {
+    		if (tdpTmp.name.equals(name)) {
+    	    	if (!tp.nameInUse(s)) {
+    	            tp.tabbedPane.setTitleAt(tp.getIndexOfChild(tdpTmp), s);
+    	            tp.panels.elementAt(tp.getIndexOfChild(tdpTmp)).setName(s);
+    	            tp.mgui.changeMade(null, -1);
+    	        }
+    			break;
+    		}
+    	}
+    }
+    
+   public boolean nameUsed(String s) {
+    	return this.tdp.tp.refNameUsed(s);
+   }
 }
diff --git a/src/main/java/ui/TGComponentManager.java b/src/main/java/ui/TGComponentManager.java
index d16ae06888ef96ffb9e6abf300b694d801bf8539..00855a1cd4653c4ebee8662bf82c7d0bbdb00800 100644
--- a/src/main/java/ui/TGComponentManager.java
+++ b/src/main/java/ui/TGComponentManager.java
@@ -37,11 +37,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui;
 
-//import java.awt.*;
-
 import ui.ad.*;
 import ui.atd.*;
 import ui.avatarad.*;
@@ -61,6 +58,7 @@ import ui.diplodocusmethodology.*;
 import ui.ebrdd.*;
 import ui.eln.*;
 import ui.eln.sca_eln.*;
+import ui.eln.sca_eln_sca_de.*;
 import ui.eln.sca_eln_sca_tdf.*;
 import ui.ftd.*;
 import ui.iod.*;
@@ -327,7 +325,9 @@ public class TGComponentManager {
     public static final int TMLCP_REF_SD = 1505;
     public static final int TMLCP_START_STATE = 1506;
     public static final int TMLCP_STOP_STATE = 1507;
-    public static final int TMLCP_JUNCTION = 1508;
+
+    // Issue #69
+   // public static final int TMLCP_JUNCTION = 1508;
     public static final int TMLCP_FOR_LOOP = 1510;
 
     public static final int TMLSD_STORAGE_INSTANCE = 1520;
@@ -365,6 +365,15 @@ public class TGComponentManager {
     public static final int ELN_TDF_VOLTAGE_SOURCE = 1625;
     public static final int ELN_TDF_CURRENT_SOURCE = 1626;
     public static final int ELN_CLUSTER = 1627;
+    public static final int ELN_MODULE_PORT_DE = 1628;
+    public static final int ELN_MODULE_PORT_TDF = 1629;
+    public static final int ELN_CLUSTER_TERMINAL = 1630;
+    public static final int ELN_CLUSTER_PORT_DE = 1631;
+    public static final int ELN_CLUSTER_PORT_TDF = 1632;
+    public static final int ELN_DE_CURRENT_SINK = 1633;
+    public static final int ELN_DE_CURRENT_SOURCE = 1634;
+    public static final int ELN_DE_VOLTAGE_SINK = 1635;
+    public static final int ELN_DE_VOLTAGE_SOURCE = 1636;
     
     // SMD diagram
     public static final int PROSMD_START_STATE = 2000;
@@ -423,7 +432,10 @@ public class TGComponentManager {
     public static final int AVATARSMD_CONNECTOR = 5102;
     public static final int AVATARSMD_SEND_SIGNAL = 5103;
     public static final int AVATARSMD_RECEIVE_SIGNAL = 5104;
-    public static final int AVATARSMD_PARALLEL = 5105;
+    
+    // Issue #69
+    //public static final int AVATARSMD_PARALLEL = 5105;
+    
     public static final int AVATARSMD_STATE = 5106;
     public static final int AVATARSMD_CHOICE = 5107;
     public static final int AVATARSMD_RANDOM = 5108;
@@ -592,9 +604,9 @@ public class TGComponentManager {
             case AVATARSMD_RECEIVE_SIGNAL:
                 tgc = new AvatarSMDReceiveSignal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
                 break;
-            case AVATARSMD_PARALLEL:
-                tgc = new AvatarSMDParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
+//              case AVATARSMD_PARALLEL: Issue #69
+//              tgc = new AvatarSMDParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+//              break;
             case AVATARSMD_STATE:
                 tgc = new AvatarSMDState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
                 break;
@@ -1320,7 +1332,7 @@ public class TGComponentManager {
             	tgc = new ELNComponentIndependentCurrentSource(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
             	break;	
             case ELN_NODE_REF: 
-            	tgc = new ELNComponentNodeRef(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	tgc = new ELNNodeRef(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
             	break;
             case ELN_TDF_VOLTAGE_SINK: 
             	tgc = new ELNComponentVoltageSinkTDF(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
@@ -1343,6 +1355,33 @@ public class TGComponentManager {
             case ELN_CLUSTER: 
             	tgc = new ELNCluster(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
             	break;
+            case ELN_MODULE_PORT_DE: 
+            	tgc = new ELNModulePortDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
+            case ELN_MODULE_PORT_TDF: 
+            	tgc = new ELNModulePortTDF(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
+            case ELN_CLUSTER_TERMINAL: 
+            	tgc = new ELNClusterTerminal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
+            case ELN_CLUSTER_PORT_DE: 
+            	tgc = new ELNClusterPortDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
+            case ELN_CLUSTER_PORT_TDF: 
+            	tgc = new ELNClusterPortTDF(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
+            case ELN_DE_CURRENT_SINK: 
+            	tgc = new ELNComponentCurrentSinkDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
+            case ELN_DE_CURRENT_SOURCE: 
+            	tgc = new ELNComponentCurrentSourceDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
+            case ELN_DE_VOLTAGE_SINK: 
+            	tgc = new ELNComponentVoltageSinkDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
+            case ELN_DE_VOLTAGE_SOURCE: 
+            	tgc = new ELNComponentVoltageSourceDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
             // Communication patterns + SD
             case TMLCP_CHOICE:
                 tgc = new TMLCPChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
@@ -1365,9 +1404,9 @@ public class TGComponentManager {
             case TMLCP_STOP_STATE:
                 tgc = new TMLCPStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
                 break;
-            case TMLCP_JUNCTION:
-                tgc = new TMLCPJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
+//            case TMLCP_JUNCTION: // Issue #69
+//                tgc = new TMLCPJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+//                break;
             case TMLCP_FOR_LOOP:
                 tgc = new TMLCPForLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
                 break;
@@ -1520,8 +1559,8 @@ public class TGComponentManager {
             return AVATARSMD_RECEIVE_SIGNAL;
         } else if (tgc instanceof AvatarSMDLibraryFunctionCall) {
             return AVATARSMD_LIBRARY_FUNCTION_CALL;
-        } else if (tgc instanceof AvatarSMDParallel) {
-            return AVATARSMD_PARALLEL;
+//        } else if (tgc instanceof AvatarSMDParallel) { // Issue #69
+//            return AVATARSMD_PARALLEL;
         } else if (tgc instanceof AvatarSMDState) {
             return AVATARSMD_STATE;
         } else if (tgc instanceof AvatarSMDChoice) {
@@ -1765,7 +1804,7 @@ public class TGComponentManager {
         	return ELN_INDEPENDENT_VOLTAGE_SOURCE;
         } else if (tgc instanceof ELNComponentIndependentCurrentSource) {
         	return ELN_INDEPENDENT_CURRENT_SOURCE;
-        } else if (tgc instanceof ELNComponentNodeRef) {
+        } else if (tgc instanceof ELNNodeRef) {
         	return ELN_NODE_REF;
         } else if (tgc instanceof ELNComponentVoltageSinkTDF) {
         	return ELN_TDF_VOLTAGE_SINK;
@@ -1781,6 +1820,24 @@ public class TGComponentManager {
         	return ELN_TDF_CURRENT_SOURCE;
         } else if (tgc instanceof ELNCluster) {
         	return ELN_CLUSTER;
+        } else if (tgc instanceof ELNModulePortDE) {
+        	return ELN_MODULE_PORT_DE;
+        } else if (tgc instanceof ELNModulePortTDF) {
+        	return ELN_MODULE_PORT_TDF;
+        } else if (tgc instanceof ELNClusterTerminal) {
+        	return ELN_CLUSTER_TERMINAL;
+        } else if (tgc instanceof ELNClusterPortDE) {
+        	return ELN_CLUSTER_PORT_DE;
+        } else if (tgc instanceof ELNClusterPortTDF) {
+        	return ELN_CLUSTER_PORT_TDF;
+        } else if (tgc instanceof ELNComponentCurrentSinkDE) {
+        	return ELN_DE_CURRENT_SINK;
+        } else if (tgc instanceof ELNComponentCurrentSourceDE) {
+        	return ELN_DE_CURRENT_SOURCE;
+        } else if (tgc instanceof ELNComponentVoltageSinkDE) {
+        	return ELN_DE_VOLTAGE_SINK;
+        } else if (tgc instanceof ELNComponentVoltageSourceDE) {
+        	return ELN_DE_VOLTAGE_SOURCE;
         	
         	// Others
         } else if (tgc instanceof TADDeterministicDelay) {
@@ -2145,8 +2202,8 @@ public class TGComponentManager {
             return TMLCP_START_STATE;
         } else if (tgc instanceof TMLCPStopState) {
             return TMLCP_STOP_STATE;
-        } else if (tgc instanceof TMLCPJunction) {
-            return TMLCP_JUNCTION;
+//          } else if (tgc instanceof TMLCPJunction) { Issue #69
+//          return TMLCP_JUNCTION;
         } else if (tgc instanceof TMLCPForLoop) {
             return TMLCP_FOR_LOOP;
         } else if (tgc instanceof TGConnectorTMLCP) {
diff --git a/src/main/java/ui/TGConnectingPoint.java b/src/main/java/ui/TGConnectingPoint.java
index 8943e41030274945973435176c70f5af365bf21c..1ac1d98c38896be8c6410853863030f12c7cd896 100755
--- a/src/main/java/ui/TGConnectingPoint.java
+++ b/src/main/java/ui/TGConnectingPoint.java
@@ -37,9 +37,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import myutil.GraphicLib;
@@ -53,9 +50,9 @@ import java.awt.*;
    * @version 1.0 22/12/2003
    * @author Ludovic APVRILLE, Andrea Enrici
  */
-public class TGConnectingPoint implements CDElement {
+public class TGConnectingPoint extends AbstractCDElement /*implements CDElement*/ {
 
-    protected TGComponent father;
+    //protected TGComponent father;
 
     //private static int ID = 0;
 
@@ -123,6 +120,7 @@ public class TGConnectingPoint implements CDElement {
     public void draw(Graphics g) {
         int mx = getX();
         int my = getY();
+
         if (state == SELECTED) {
             mx = mx - width / 2;
             my = my - height / 2;
@@ -133,7 +131,6 @@ public class TGConnectingPoint implements CDElement {
             g.setColor(myColor);
             g.fillRect(mx - width/4, my - width/4, width/2, height/2);
             GraphicLib.doubleColorRect(g, mx - width/4, my - width/4, width/2, height/2, Color.lightGray, Color.black);
-
         }
     }
 
@@ -220,8 +217,6 @@ public class TGConnectingPoint implements CDElement {
         TGComponent.setGeneralId(id + 1);
     }
 
-
-
     // return true if state _s is different from the previous one
     public boolean setState(int _s){
         boolean b = false;
@@ -296,9 +291,9 @@ public class TGConnectingPoint implements CDElement {
       }*/
 
     //DG 27.02.
-    public TGComponent getOwner()        {
-        return father;
-    }
+//    public TGComponent getOwner()        {
+//        return father;
+//    }
     //fin DG
 
     public void setReferenceToConnector( TGConnector _ref )     {
@@ -325,4 +320,70 @@ public class TGConnectingPoint implements CDElement {
     public int getCurrentMaxY() {
     	return getY() + getHeight();
     }
+
+	/* Issue #69
+	 * (non-Javadoc)
+	 * @see ui.CDElement#canBeDisabled()
+	 */
+	@Override
+	public boolean canBeDisabled() {
+		return false;
+	}
+    
+	/*  Issue #69
+	 * (non-Javadoc)
+	 * @see ui.CDElement#isEnabled()
+	 */
+    @Override
+	public boolean isEnabled() {
+		return true;
+	}
+
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.CDElement#acceptForward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptForward( final ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			if ( getFather() instanceof TGComponent ) {
+				final TGConnector connector = ( (TGComponent) getFather() ).getConnectorConnectedTo( this );
+				
+				if ( connector != null ) {
+	
+					// Traverse the graph in its direction
+					if ( this == connector.getTGConnectingPointP2() ) {
+						getFather().acceptForward( visitor );
+					}
+					else {
+						connector.acceptForward( visitor );
+					}
+				}
+	    	}
+		}
+    }
+
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptBackward( final ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			if ( getFather() instanceof TGComponent ) {
+				final TGConnector connector = ( (TGComponent) getFather() ).getConnectorConnectedTo( this );
+				
+				if ( connector != null ) {
+	
+					// Traverse the graph in its direction
+					if ( this == connector.getTGConnectingPointP1() ) {
+						getFather().acceptBackward( visitor );
+					}
+					else {
+						connector.acceptBackward( visitor );
+					}
+				}
+	    	}
+		}
+    }
 }
diff --git a/src/main/java/ui/TGConnectingPointWidthHeight.java b/src/main/java/ui/TGConnectingPointWidthHeight.java
index 2aa5eab134416a667546a6080ab652674c219fb0..46d95a7615f67802358c51f105fff164bc179615 100755
--- a/src/main/java/ui/TGConnectingPointWidthHeight.java
+++ b/src/main/java/ui/TGConnectingPointWidthHeight.java
@@ -36,13 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
-//import java.awt.*;
-
 /**
  * Class TGConnectingPointWidthHeight
  * Connecting points of TClasses
@@ -51,8 +46,10 @@ package ui;
  * @author Ludovic APVRILLE
  */
 public class TGConnectingPointWidthHeight extends TGConnectingPoint{
-    protected double w;
-    protected double h;
+
+	protected double w;
+    
+	protected double h;
 
     public TGConnectingPointWidthHeight(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) {
         super(_container, _x, _y, _in, _out);
@@ -60,10 +57,12 @@ public class TGConnectingPointWidthHeight extends TGConnectingPoint{
         h = _h;
     }
 
+    @Override
     public int getX() {
         return x + container.getX() + (int)(container.getWidth() * w);
     }
 
+    @Override
     public int getY() {
         return y + container.getY() + (int)(container.getHeight() * h);
     }
diff --git a/src/main/java/ui/TGConnector.java b/src/main/java/ui/TGConnector.java
index 0166e22e6b7ebe458a025128f1d841d3ed3ea2af..c8cfd70edf52b13f7cb15d278905357e72a74686 100755
--- a/src/main/java/ui/TGConnector.java
+++ b/src/main/java/ui/TGConnector.java
@@ -37,9 +37,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import myutil.*;
@@ -59,7 +56,7 @@ import java.util.Vector;
  * @version 1.0 22/12/2003
  * @author Ludovic APVRILLE, Andrea ENRICI
  */
-public abstract class TGConnector extends TGCScalableWithInternalComponent      {
+public abstract class TGConnector extends TGCScalableWithInternalComponent {
 
     protected final static String XML_CONNECTOR_HEAD = "<CONNECTOR type=\"";
     protected final static String XML_ID = "\" id=\"";
@@ -188,10 +185,9 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
         //TraceManager.addDev("Index=" + index);
         return index;
     }
-
  
     public int getFirstIndexOfOtherInternalComponents() {
-	return getIndexOfLastTGCPointOfConnector() + 1;
+    	return getIndexOfLastTGCPointOfConnector() + 1;
     }
 
     public boolean hasTGCPointOfConnector() {
@@ -209,24 +205,25 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
         return -1;
 	}*/
 
+    @Override
     public void internalDrawing(Graphics g) {
-
         TGComponent p3, p4;
 
-
         if (hasTGCPointOfConnector())  {
             p3 = tgcomponent[0];
             p4 = tgcomponent[0];
             //TraceManager.addDev("p3.x " + p3.getX() + " p3.y " + p3.getY());
             //drawMiddleSegment(g, p1.getX(), p1.getY(), p3.getXZoom(), p3.getYZoom());
-	    drawMiddleSegment(g, p1.getX(), p1.getY(), p3.getX(), p3.getY());
+            drawMiddleSegment(g, p1.getX(), p1.getY(), p3.getX(), p3.getY());
 
-	    TGCPointOfConnector[] pts = listOfPointsToArray();
+            TGCPointOfConnector[] pts = listOfPointsToArray();
+            
             for(int i=0; i<pts.length-1; i++) {
                 p3 = tgcomponent[i];
                 p4 = tgcomponent[i+1];
                 drawMiddleSegment(g, p3.getX(), p3.getY(), p4.getX(), p4.getY());
             }
+            
             drawLastSegment(g, p4.getX(), p4.getY(), p2.getX(), p2.getY());
         } else {
             drawLastSegment(g, p1.getX(), p1.getY(), p2.getX(), p2.getY());
@@ -447,12 +444,12 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
     }
 
     private int indexOf(TGComponent pt) {
-	for(int i=0; i<tgcomponent.length; i++) {
-	    if (tgcomponent[i] == pt) {
-		return i;
-	    }
-	}
-	return -1;
+		for(int i=0; i<tgcomponent.length; i++) {
+		    if (tgcomponent[i] == pt) {
+		    	return i;
+		    }
+		}
+		return -1;
     }
 
     public int indexPointedSegment(int x1, int y1) {
@@ -465,7 +462,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
                 return 0;
             }
 
-	    TGCPointOfConnector []points = listOfPointsToArray();
+            TGCPointOfConnector []points = listOfPointsToArray();
             for(int i=0; i<points.length-1; i++) {
                 p3 = points[i];
                 p4 = points[i+1];
@@ -621,6 +618,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
         return true;
     }
 
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         TGComponent p3, p4;
         int i;
@@ -774,6 +772,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
 
     }
 
+    @Override
     public StringBuffer saveInXML() {
         StringBuffer sb = new StringBuffer(XML_CONNECTOR_HEAD);
         sb.append(getType());
@@ -828,6 +827,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
         }
     }
 
+    @Override
     public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
         popupx = x;
         popupy = y;
@@ -863,6 +863,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
         }
     }
 
+    @Override
     public boolean eventOnPopup(ActionEvent e) {
         if (e.getActionCommand().equals("Add Point")) {
             return addTGCPointOfConnector(popupx, popupy);
@@ -908,8 +909,8 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
         tgcomponent = tgcomponentnew;
     }
 
-
     // Middle of the last segment
+    @Override
     public void drawAttributes(Graphics g, String attr) {
         int s0=4, s1=9, s2=30, s3=10;
         int x1, y1;
@@ -975,4 +976,46 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent
         
         return maxValue;
     }
+	
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.TGComponent#acceptForward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptForward( ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			
+			// Traverse the graph in the direction of the connector
+			getTGConnectingPointP2().acceptForward( visitor );
+		}
+	}
+	
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.TGComponent#acceptBackward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptBackward( ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			
+			// Traverse the graph in the direction of the connector
+			getTGConnectingPointP1().acceptBackward( visitor );
+		}
+	}
+    
+    public boolean isContainedBy( final TGComponent component ) {
+		if ( p2 != null ) {
+			if ( p2.getFather() instanceof TGComponent && ( (TGComponent) p2.getFather() ).getFather() == component ) {
+				return true;
+			}
+		}
+		
+		if ( p1 != null ) {
+			if ( p1.getFather() instanceof TGComponent && ( (TGComponent) p1.getFather() ).getFather() == component ) {
+				return true;
+			}
+		}
+		
+		return false;
+    }
 }//End of class
diff --git a/src/main/java/ui/TGConnectorComment.java b/src/main/java/ui/TGConnectorComment.java
index 9f17561d418df2dd5f5f892d90fb1e4c65969607..dc15f63d6e9db8c0b2f4ad4dae98bffaebe2e320 100755
--- a/src/main/java/ui/TGConnectorComment.java
+++ b/src/main/java/ui/TGConnectorComment.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import myutil.GraphicLib;
@@ -47,8 +44,6 @@ import ui.util.IconManager;
 import java.awt.*;
 import java.util.Vector;
 
-//import java.awt.geom.*;
-
 /**
  * Class TGConnectorComment
  * Connects a UML note to a component
@@ -60,21 +55,23 @@ public  class TGConnectorComment extends TGConnector {
 
     public TGConnectorComment(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) {
         super(_x, _y,  _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
+
         myImageIcon = IconManager.imgic108;
         automaticDrawing = false;
     }
 
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
         GraphicLib.dashedLine(g, x1, y1, x2, y2);
-
     }
 
+    @Override
     protected void drawMiddleSegment(Graphics g, int x1, int y1, int x2, int y2) {
         GraphicLib.dashedLine(g, x1, y1, x2, y2);
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.CONNECTOR_COMMENT;
     }
-
 }
diff --git a/src/main/java/ui/TGConnectorFullArrow.java b/src/main/java/ui/TGConnectorFullArrow.java
index 3e95702904cca99f41b5e3c4e3a37c883a069ebb..4b356be0e5b8a66213fc25a35b7760b2178a3a6c 100755
--- a/src/main/java/ui/TGConnectorFullArrow.java
+++ b/src/main/java/ui/TGConnectorFullArrow.java
@@ -35,9 +35,6 @@
  * 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 ui;
 
@@ -56,13 +53,16 @@ import java.util.Vector;
  * @author Ludovic APVRILLE
  */
 public  class TGConnectorFullArrow extends TGConnector implements TGConnectorBetweenElementsInterface {
+
 	protected int arrowLength = 10;
 
 	public TGConnectorFullArrow(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) {
 		super(_x, _y,  _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
+	
 		myImageIcon = IconManager.imgic202;
 	}
 
+    @Override
 	protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
 		if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) {
 			g.drawLine(x1, y1, x2, y2);
@@ -71,15 +71,8 @@ public  class TGConnectorFullArrow extends TGConnector implements TGConnectorBet
 		}
 	}
 	
+    @Override
 	public int getType() {
-            //
-            return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
 	}
 }
-
-
-
-
-    
-
-
diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java
index 6ec0575134c1dc742a55375fdb720c41b76f2fa2..d5718d2838390a7fafafbdffddb5536bdafd525f 100644
--- a/src/main/java/ui/TGUIAction.java
+++ b/src/main/java/ui/TGUIAction.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import common.ConfigurationTTool;
@@ -50,9 +47,6 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
 
-import myutil.*;
-
-
 /**
  * Class TGUIAction
  *
@@ -265,7 +259,7 @@ public class TGUIAction extends AbstractAction {
     public static final int TMLCP_START = 384;
     public static final int TMLCP_STOP = 385;
     public static final int TMLCP_CHOICE = 386;
-    public static final int TMLCP_JUNCTION = 387;
+   // public static final int TMLCP_JUNCTION = 387;
     public static final int TMLCP_FOR_LOOP = 416;
 
     public static final int TMLSD_STORAGE_INSTANCE = 388;
@@ -307,6 +301,16 @@ public class TGUIAction extends AbstractAction {
     public static final int ELN_TDF_VOLTAGE_SOURCE = 502;
     public static final int ELN_TDF_CURRENT_SOURCE = 503;
     public static final int ELN_CLUSTER = 504;
+    public static final int ELN_GENCODE = 505;
+    public static final int ELN_MODULE_PORT_DE = 506;
+    public static final int ELN_MODULE_PORT_TDF = 507;
+    public static final int ELN_CLUSTER_TERMINAL = 508;
+    public static final int ELN_CLUSTER_PORT_DE = 509;
+    public static final int ELN_CLUSTER_PORT_TDF = 510;
+    public static final int ELN_DE_CURRENT_SINK = 511; 
+    public static final int ELN_DE_CURRENT_SOURCE = 512;
+    public static final int ELN_DE_VOLTAGE_SINK = 513; 
+    public static final int ELN_DE_VOLTAGE_SOURCE = 514;
     
     public static final int EBRDD_EDIT = 271;
     public static final int EBRDD_CONNECTOR = 272;
@@ -421,7 +425,7 @@ public class TGUIAction extends AbstractAction {
     public static final int ASMD_SEND_SIGNAL = 296;
     public static final int ASMD_RECEIVE_SIGNAL = 297;
     public static final int ASMD_LIBRARY_FUNCTION_CALL = 432;
-    public static final int ASMD_PARALLEL = 298;
+    //public static final int ASMD_PARALLEL = 298; Issue #69
     public static final int ASMD_STATE = 299;
     public static final int ASMD_CHOICE = 325;
     public static final int ASMD_RANDOM = 326;
@@ -662,7 +666,7 @@ public class TGUIAction extends AbstractAction {
     public static final int MOVE_ENABLED = 463;
     public static final int FIRST_DIAGRAM = 464;
     
-    public static final int NB_ACTION = 505;
+    public static final int NB_ACTION = 515;
 
     private static final TAction [] actions = new TAction[NB_ACTION];
 
@@ -1146,7 +1150,9 @@ public class TGUIAction extends AbstractAction {
         actions[TMLCP_CHOICE] = new TAction("add-tmlcp-choice", "Add Choice", IconManager.imgic208, IconManager.imgic208, "Choice", "Add a choice - non-deterministic or guarded - to the currently opened communication pattern diagram", 0);
         actions[TMLCP_START] = new TAction("add-tmlcp-start", "Add Start state", IconManager.imgic222, IconManager.imgic222, "Start", "Add a start state to the currently opened communication pattern diagram", 0);
         actions[TMLCP_STOP] = new TAction("add-tmlcp-stop", "Add Stop", IconManager.imgic210, IconManager.imgic210, "Stop", "Add a termination state to the currently opened communication pattern diagram", 0);
-        actions[TMLCP_JUNCTION] = new TAction("add-tmlcp-junction", "Add Junction", IconManager.imgic212, IconManager.imgic212, "Junction", "Add a junction with three inputs to the currently opened communication pattern diagram", 0);
+        
+        // Issue #69 Removed unused TMLCPJunction
+        //actions[TMLCP_JUNCTION] = new TAction("add-tmlcp-junction", "Add Junction", IconManager.imgic212, IconManager.imgic212, "Junction", "Add a junction with three inputs to the currently opened communication pattern diagram", 0);
         actions[TMLCP_FOR_LOOP] = new TAction("add-tmlcp-forloop", "Add loop", IconManager.imgic912, IconManager.imgic912, "Loop", "Add a for loop to the currently opened communication pattern diagram", 0);
 
         actions[TMLSD_EDIT] = new TAction("edit-tmlsd-diagram", "Edit CP-SD diagram", IconManager.imgic100, IconManager.imgic101, "Edit the Sequence Diagram", "Make it possible to edit the currently opened communication pattern sequence diagram", 0);
@@ -1158,37 +1164,47 @@ public class TGUIAction extends AbstractAction {
 
         // System C-AMS
         actions[CAMS_EDIT] = new TAction("add-action-C-AMS", "Action state", IconManager.imgic100, IconManager.imgic101, "Action state", "Add an action state to the currently opened SystemC-AMS diagram", 0);
-        actions[CAMS_BLOCK_TDF] = new TAction("C-AMS-block-TDF", "Add a TDF block", IconManager.imgic8007, IconManager.imgic8007, "TDF block", "Add a TDF block to the currently opened SystemC-AMS Diagram", 0);
-        actions[CAMS_BLOCK_DE] = new TAction("C-AMS-block-DE", "Add a DE block", IconManager.imgic8008, IconManager.imgic8008, "DE block", "Add a DE block to the currently opened SystemC-AMS Diagram", 0);
+        actions[CAMS_BLOCK_TDF] = new TAction("C-AMS-block-TDF", "Add a TDF block", IconManager.imgic8004, IconManager.imgic8004, "TDF block", "Add a TDF block to the currently opened SystemC-AMS Diagram", 0);
+        actions[CAMS_BLOCK_DE] = new TAction("C-AMS-block-DE", "Add a DE block", IconManager.imgic8005, IconManager.imgic8005, "DE block", "Add a DE block to the currently opened SystemC-AMS Diagram", 0);
         actions[CAMS_CONNECTOR] = new TAction("C-AMS-connector", "Add a connection", IconManager.imgic202, IconManager.imgic202, "Connector", "Connects two block of the currently opened SystemC-AMS Diagram", 0);
         actions[CAMS_PORT_TDF] = new TAction("C-AMS-port-TDF", "Add a TDF port", IconManager.imgic8000, IconManager.imgic8000, "TDF port", "Add a TDF port to the currently opened SystemC-AMS Diagram", 0);
         actions[CAMS_PORT_DE] = new TAction("C-AMS-port-DE", "Add a DE port", IconManager.imgic8001, IconManager.imgic8001, "DE port", "Add a DE port to the currently opened SystemC-AMS Diagram", 0);
-        actions[CAMS_PORT_CONVERTER] = new TAction("C-AMS-port-converter", "Add a converter port", IconManager.imgic8003, IconManager.imgic8003, "Converter port", "Add a converter port to the currently opened SystemC-AMS Diagram", 0);
-        actions[CAMS_CLUSTER] = new TAction("C-AMS-cluster", "Add a cluster", IconManager.imgic8006, IconManager.imgic8006, "Cluster", "Add a cluster to the currently opened SystemC-AMS Diagram", 0);
-        actions[CAMS_GENCODE] = new TAction("GENCODE", "GENCODE",IconManager.imgic94, IconManager.imgic94, "Generate SystemC-AMS code", "SystemC-AMS diagram without check syntax", 0);
-        actions[CAMS_BLOCK_GPIO2VCI] = new TAction("C-AMS-block-GPIO2VCI", "Add a block GPIO2VCI",IconManager.imgic8009, IconManager.imgic8009, "GPIO2VCI block", "Add a GPIO2VCI block to the currently opened SystemC-AMS Diagram", 0);
+        actions[CAMS_PORT_CONVERTER] = new TAction("C-AMS-port-converter", "Add a converter port", IconManager.imgic8002, IconManager.imgic8002, "Converter port", "Add a converter port to the currently opened SystemC-AMS Diagram", 0);
+        actions[CAMS_CLUSTER] = new TAction("C-AMS-cluster", "Add a cluster", IconManager.imgic8003, IconManager.imgic8003, "Cluster", "Add a cluster to the currently opened SystemC-AMS Diagram", 0);
+        actions[CAMS_GENCODE] = new TAction("C-AMS-gencode", "SystemC-AMS code generation",IconManager.imgic94, IconManager.imgic94, "Generate SystemC-AMS code", "SystemC-AMS diagram without check syntax", 0);
+        actions[CAMS_BLOCK_GPIO2VCI] = new TAction("C-AMS-block-GPIO2VCI", "Add a block GPIO2VCI",IconManager.imgic8006, IconManager.imgic8006, "GPIO2VCI block", "Add a GPIO2VCI block to the currently opened SystemC-AMS Diagram", 0);
 
         // ELN
         actions[ELN_EDIT] = new TAction("add-action-eln", "Action state", IconManager.imgic100, IconManager.imgic101, "Action state", "Add an action state to the currently opened ELN diagram", 0);
         actions[ELN_CONNECTOR] = new TAction("eln-connector", "Add a connection", IconManager.imgic202, IconManager.imgic202, "Connector", "Connects two block of the currently opened ELN Diagram", 0);
-        actions[ELN_RESISTOR] = new TAction("eln-resistor", "Add a resistor", IconManager.imgic8020, IconManager.imgic8020, "Resistor", "Add a resistor to the currently opened ELN Diagram", 0);
-        actions[ELN_CAPACITOR] = new TAction("eln-capacitor", "Add a capacitor", IconManager.imgic8021, IconManager.imgic8021, "Capacitor", "Add a capacitor to the currently opened ELN Diagram", 0);
-        actions[ELN_INDUCTOR] = new TAction("eln-inductor", "Add a inductor", IconManager.imgic8022, IconManager.imgic8022, "Self", "Add a inductor to the currently opened ELN Diagram", 0);
-        actions[ELN_VOLTAGE_CONTROLLED_VOLTAGE_SOURCE] = new TAction("eln-VCVS", "Add a voltage controlled voltage source", IconManager.imgic8023, IconManager.imgic8023, "Voltage controlled voltage source", "Add a voltage controlled voltage source to the currently opened ELN Diagram", 0);
-        actions[ELN_VOLTAGE_CONTROLLED_CURRENT_SOURCE] = new TAction("eln-VCCS", "Add a voltage controlled current source", IconManager.imgic8024, IconManager.imgic8024, "Voltage controlled current source", "Add a voltage controlled current source to the currently opened ELN Diagram", 0);
-        actions[ELN_IDEAL_TRANSFORMER] = new TAction("eln-ideal-transformer", "Add a ideal transformer", IconManager.imgic8025, IconManager.imgic8025, "Ideal transformer", "Add a ideal transformer to the currently opened ELN Diagram", 0);
-        actions[ELN_TRANSMISSION_LINE] = new TAction("eln-transmission-line", "Add a transmission line", IconManager.imgic8026, IconManager.imgic8026, "Transmission line", "Add a transmission line to the currently opened ELN Diagram", 0);
-        actions[ELN_INDEPENDENT_VOLTAGE_SOURCE] = new TAction("eln-vsource", "Add a independent voltage source", IconManager.imgic8027, IconManager.imgic8027, "Independent voltage source", "Add a independent voltage source to the currently opened ELN Diagram", 0);
-        actions[ELN_INDEPENDENT_CURRENT_SOURCE] = new TAction("eln-isource", "Add a independent current source", IconManager.imgic8028, IconManager.imgic8028, "Independent current source", "Add a independent current source to the currently opened ELN Diagram", 0);
-        actions[ELN_NODE_REF] = new TAction("eln-node-ref", "Add a reference node", IconManager.imgic8029, IconManager.imgic8029, "Reference node", "Add a reference node to the currently opened ELN Diagram", 0);        
-        actions[ELN_TDF_VOLTAGE_SINK] = new TAction("eln-tdf-vsink", "Add a conversion voltage to a TDF output signal", IconManager.imgic8030, IconManager.imgic8030, "Converts voltage to a TDF output signal", "Add a converts voltage to a TDF output signal to the currently opened ELN Diagram", 0);
-        actions[ELN_TDF_CURRENT_SINK] = new TAction("eln-tdf-isink", "Add a conversion current to a TDF output signal", IconManager.imgic8031, IconManager.imgic8031, "Converts current to a TDF output signal", "Add a converts current to a TDF output signal to the currently opened ELN Diagram", 0);
-        actions[ELN_MODULE] = new TAction("eln-module", "Add a SystemC module", IconManager.imgic8006, IconManager.imgic8006, "SystemC module", "Add a SystemC module to the currently opened ELN Diagram", 0);
-        actions[ELN_MODULE_TERMINAL] = new TAction("eln-module-terminal", "Add a module terminal", IconManager.imgic8032, IconManager.imgic8032, "Module terminal", "Add a module terminal to the currently opened ELN Diagram", 0);
+        actions[ELN_RESISTOR] = new TAction("eln-resistor", "Add a resistor", IconManager.imgic8010, IconManager.imgic8010, "Resistor", "Add a resistor to the currently opened ELN Diagram", 0);
+        actions[ELN_CAPACITOR] = new TAction("eln-capacitor", "Add a capacitor", IconManager.imgic8011, IconManager.imgic8011, "Capacitor", "Add a capacitor to the currently opened ELN Diagram", 0);
+        actions[ELN_INDUCTOR] = new TAction("eln-inductor", "Add a inductor", IconManager.imgic8012, IconManager.imgic8012, "Self", "Add a inductor to the currently opened ELN Diagram", 0);
+        actions[ELN_VOLTAGE_CONTROLLED_VOLTAGE_SOURCE] = new TAction("eln-VCVS", "Add a voltage controlled voltage source", IconManager.imgic8013, IconManager.imgic8013, "Voltage controlled voltage source", "Add a voltage controlled voltage source to the currently opened ELN Diagram", 0);
+        actions[ELN_VOLTAGE_CONTROLLED_CURRENT_SOURCE] = new TAction("eln-VCCS", "Add a voltage controlled current source", IconManager.imgic8014, IconManager.imgic8014, "Voltage controlled current source", "Add a voltage controlled current source to the currently opened ELN Diagram", 0);
+        actions[ELN_IDEAL_TRANSFORMER] = new TAction("eln-ideal-transformer", "Add a ideal transformer", IconManager.imgic8015, IconManager.imgic8015, "Ideal transformer", "Add a ideal transformer to the currently opened ELN Diagram", 0);
+        actions[ELN_TRANSMISSION_LINE] = new TAction("eln-transmission-line", "Add a transmission line", IconManager.imgic8016, IconManager.imgic8016, "Transmission line", "Add a transmission line to the currently opened ELN Diagram", 0);
+        actions[ELN_INDEPENDENT_VOLTAGE_SOURCE] = new TAction("eln-vsource", "Add a independent voltage source", IconManager.imgic8017, IconManager.imgic8017, "Independent voltage source", "Add a independent voltage source to the currently opened ELN Diagram", 0);
+        actions[ELN_INDEPENDENT_CURRENT_SOURCE] = new TAction("eln-isource", "Add a independent current source", IconManager.imgic8018, IconManager.imgic8018, "Independent current source", "Add a independent current source to the currently opened ELN Diagram", 0);
+        actions[ELN_NODE_REF] = new TAction("eln-node-ref", "Add a node reference", IconManager.imgic8019, IconManager.imgic8019, "Reference node", "Add a node reference to the currently opened ELN Diagram", 0);        
+        actions[ELN_TDF_VOLTAGE_SINK] = new TAction("eln-tdf-vsink", "Add a conversion voltage to a TDF output signal", IconManager.imgic8020, IconManager.imgic8020, "Converts voltage to a TDF output signal", "Add a converts voltage to a TDF output signal to the currently opened ELN Diagram", 0);
+        actions[ELN_TDF_CURRENT_SINK] = new TAction("eln-tdf-isink", "Add a conversion current to a TDF output signal", IconManager.imgic8021, IconManager.imgic8021, "Converts current to a TDF output signal", "Add a converts current to a TDF output signal to the currently opened ELN Diagram", 0);
+        actions[ELN_MODULE] = new TAction("eln-module", "Add a SystemC module", IconManager.imgic8025, IconManager.imgic8025, "Module", "Add a module to the currently opened ELN Diagram", 0);
+        actions[ELN_MODULE_TERMINAL] = new TAction("eln-module-terminal", "Add a module terminal", IconManager.imgic8022, IconManager.imgic8022, "Module terminal", "Add a module terminal to the currently opened ELN Diagram", 0);
         actions[ELN_TOGGLE_ATTR] = new TAction("eln-toggle-attr-command", "Show / hide attributes in ELN", IconManager.imgic138, IconManager.imgic138, "Show / hide element attributes in ELN", "Show / hide attributes to the currently opened ELN Diagram", 0);
-        actions[ELN_TDF_VOLTAGE_SOURCE] = new TAction("eln-tdf-vsource", "Add a voltage source driven by a TDF input signal", IconManager.imgic8033, IconManager.imgic8033, "Voltage source driven by a TDF input signal", "Add a voltage source driven by a TDF input signal to the currently opened ELN Diagram", 0);
-        actions[ELN_TDF_CURRENT_SOURCE] = new TAction("eln-tdf-isource", "Add a current source driven by a TDF input signal", IconManager.imgic8034, IconManager.imgic8034, "Current source driven by a TDF input signal", "Add a current source driven by a TDF input signal to the currently opened ELN Diagram", 0);
-        actions[ELN_CLUSTER] = new TAction("eln-cluster", "Add a cluster", IconManager.imgic8006, IconManager.imgic8006, "Cluster", "Add a cluster to the currently opened ELN Diagram", 0);
+        actions[ELN_TDF_VOLTAGE_SOURCE] = new TAction("eln-tdf-vsource", "Add a voltage source driven by a TDF input signal", IconManager.imgic8023, IconManager.imgic8023, "Voltage source driven by a TDF input signal", "Add a voltage source driven by a TDF input signal to the currently opened ELN Diagram", 0);
+        actions[ELN_TDF_CURRENT_SOURCE] = new TAction("eln-tdf-isource", "Add a current source driven by a TDF input signal", IconManager.imgic8024, IconManager.imgic8024, "Current source driven by a TDF input signal", "Add a current source driven by a TDF input signal to the currently opened ELN Diagram", 0);
+        actions[ELN_CLUSTER] = new TAction("eln-cluster", "Add a cluster", IconManager.imgic8003, IconManager.imgic8003, "Cluster", "Add a cluster to the currently opened ELN Diagram", 0);
+        actions[ELN_GENCODE] = new TAction("eln-gencode", "ELN code generation", IconManager.imgic94, IconManager.imgic94, "Generate ELN code", "ELN diagram without check syntax", 0);
+        actions[ELN_MODULE_PORT_DE] = new TAction("eln-module-port-DE", "Add a module port DE", IconManager.imgic8001, IconManager.imgic8001, "Module port DE", "Add a module port DE to the currently opened ELN Diagram", 0);
+        actions[ELN_MODULE_PORT_TDF] = new TAction("eln-module-port-TDF", "Add a module port TDF", IconManager.imgic8000, IconManager.imgic8000, "Module port TDF", "Add a module port TDF to the currently opened ELN Diagram", 0);
+        actions[ELN_CLUSTER_TERMINAL] = new TAction("eln-cluster-terminal", "Add a cluster terminal", IconManager.imgic8022, IconManager.imgic8022, "Cluster terminal", "Add a cluster terminal to the currently opened ELN Diagram", 0);
+        actions[ELN_CLUSTER_PORT_DE] = new TAction("eln-cluster-port-DE", "Add a cluster port DE", IconManager.imgic8001, IconManager.imgic8001, "Cluster port DE", "Add a cluster port DE to the currently opened ELN Diagram", 0);
+        actions[ELN_CLUSTER_PORT_TDF] = new TAction("eln-cluster-port-TDF", "Add a cluster port TDF", IconManager.imgic8000, IconManager.imgic8000, "Cluster port TDF", "Add a cluster port TDF to the currently opened ELN Diagram", 0);
+        actions[ELN_DE_CURRENT_SINK] = new TAction("eln-de-isink", "Add a conversion current to a DE output signal", IconManager.imgic8026, IconManager.imgic8026, "Converts current to a DE output signal", "Add a converts current to a DE output signal to the currently opened ELN Diagram", 0);
+        actions[ELN_DE_CURRENT_SOURCE] = new TAction("eln-de-isource", "Add a current source driven by a DE input signal", IconManager.imgic8027, IconManager.imgic8027, "Current source driven by a DE input signal", "Add a current source driven by a DE input signal to the currently opened ELN Diagram", 0);
+        actions[ELN_DE_VOLTAGE_SINK] = new TAction("eln-de-vsink", "Add a conversion voltage to a DE output signal", IconManager.imgic8028, IconManager.imgic8028, "Converts voltage to a DE output signal", "Add a converts voltage to a DE output signal to the currently opened ELN Diagram", 0);
+        actions[ELN_DE_VOLTAGE_SOURCE] = new TAction("eln-de-vsource", "Add a voltage source driven by a DE input signal", IconManager.imgic8029, IconManager.imgic8029, "Voltage source driven by a DE input signal", "Add a voltage source driven by a DE input signal to the currently opened ELN Diagram", 0);
 
         //ProActive State Machine Diagram
         actions[PROSMD_EDIT] = new TAction("edit-prosmd-diagram", "Edit ProActive state machine diagram", IconManager.imgic100, IconManager.imgic101, "Edit ProActive state machine diagram", "Make it possible to edit the currently opened ProActive state machine diagram", 0);
@@ -1285,7 +1301,7 @@ public class TGUIAction extends AbstractAction {
         actions[ASMD_RECEIVE_SIGNAL] = new TAction("add-asmd-receivesignal", "Receive signal", IconManager.imgic2016, IconManager.imgic2016, "Receive signal", "Add a receive signal operator to the currently opened AVATAR state machine diagram", 0);
         // TODO: change icon
         actions[ASMD_LIBRARY_FUNCTION_CALL] = new TAction("add-asmd-libraryfunctioncall", "Library function call", IconManager.imgic2018, IconManager.imgic2018, "Library function call", "Add a library function call to the currently opened AVATAR state machine diagram", 0);
-        actions[ASMD_PARALLEL] = new TAction("add-asmd-parallel", "Parallel", IconManager.imgic206, IconManager.imgic206, "Parallel", "Add a parallel operator to the currently opened AVATAR state machine diagram", 0);
+        //actions[ASMD_PARALLEL] = new TAction("add-asmd-parallel", "Parallel", IconManager.imgic206, IconManager.imgic206, "Parallel", "Add a parallel operator to the currently opened AVATAR state machine diagram", 0);
         actions[ASMD_STATE] = new TAction("add-asmd-state", "State", IconManager.imgic5036, IconManager.imgic5036, "State", "Add a new state to the currently opened AVATAR state machine diagram", 0);
         actions[ASMD_CHOICE] = new TAction("add-asmd-choice", "Add Choice", IconManager.imgic208, IconManager.imgic208, "Choice", "Add a choice - non-deterministic or guarded - to the currently opened AVATAR state machine diagram", 0);
         actions[ASMD_RANDOM] = new TAction("add-asmd-random", "Add random", IconManager.imgic924, IconManager.imgic924, "Select random", "Add a random operator to the currently opened AVATAR State Machine diagram", 0);
@@ -1366,10 +1382,9 @@ public class TGUIAction extends AbstractAction {
         actions[ACT_GENERATE_ONTOLOGIES_ALL_DIAGRAMS] = new TAction("generate-ontology-all-diagrams", "Generate ontology (all diagrams)", IconManager.imgic338, IconManager.imgic339, "Generate ontology (all diagrams)",  "Generate the ontology for the diagrams under edition", 0);
 
         actions[MOVE_ENABLED] = new TAction("Move", "Move enabled", IconManager.imgic780, IconManager.imgic780, "Move enabled (shift + arrow)", "Move", 0);
-	actions[FIRST_DIAGRAM] = new TAction("FirstDiagram", "First Diagram", IconManager.imgic142, IconManager.imgic142, "Switch the the first diagram", "Switch to the first diagram", 0);
+        actions[FIRST_DIAGRAM] = new TAction("FirstDiagram", "First Diagram", IconManager.imgic142, IconManager.imgic142, "Switch the the first diagram", "Switch to the first diagram", 0);
     }
 
-
     public String getActionCommand()  {
         return (String)getValue(Action.ACTION_COMMAND_KEY);
     }
@@ -1382,6 +1397,7 @@ public class TGUIAction extends AbstractAction {
         return (String)getValue(Action.LONG_DESCRIPTION);
     }
 
+    @Override
     public void actionPerformed(ActionEvent evt)  {
         if (listeners != null) {
             Object[] listenerList = listeners.getListenerList();
diff --git a/src/main/java/ui/TURTLEModelChecker.java b/src/main/java/ui/TURTLEModelChecker.java
index f5d9ab4d1c492cbf3189668ba87ed53f01f129f9..716b0ac696eead79f1b8289e0f9f33a67a4c9251 100755
--- a/src/main/java/ui/TURTLEModelChecker.java
+++ b/src/main/java/ui/TURTLEModelChecker.java
@@ -36,21 +36,32 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
+import java.io.StringReader;
+import java.util.LinkedList;
+import java.util.List;
+
 import compiler.tmlparser.ParseException;
 import compiler.tmlparser.SimpleNode;
 import compiler.tmlparser.TMLExprParser;
 import compiler.tmlparser.TokenMgrError;
 import myutil.TraceManager;
-import translator.*;
-
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.LinkedList;
+import translator.ADActionStateWithGate;
+import translator.ADActionStateWithParam;
+import translator.ADChoice;
+import translator.ADComponent;
+import translator.ADDelay;
+import translator.ADLatency;
+import translator.ADParallel;
+import translator.ADTLO;
+import translator.ADTimeInterval;
+import translator.ActivityDiagram;
+import translator.CheckingError;
+import translator.Gate;
+import translator.Param;
+import translator.TClass;
+import translator.TURTLEModeling;
 
 
 /**
@@ -95,7 +106,7 @@ public class TURTLEModelChecker {
 	private String ERROR_AD_009_1 = " variable is not correctly used";
 	private String ERROR_AD_009_2 = " unknown variable";
 	private String ERROR_AD_009_3 = " unknown gate";
-	private String ERROR_AD_009_4 = " unknown param";
+	//private String ERROR_AD_009_4 = " unknown param";
 	private String ERROR_AD_009_5 = " null gate";
 	private String ERROR_AD_009_6 = " null param";
 	
@@ -581,7 +592,7 @@ public class TURTLEModelChecker {
 		}  
 		
 		// Tree analysis: if the tree contains a variable, then, this variable has not been declared
-		ArrayList<String> vars = root.getVariables();
+		List<String> vars = root.getVariables();
 		for(String s: vars) {
 			// is that string a variable?
 			if ((s.compareTo("true") != 0) && (s.compareTo("false") != 0) && (s.compareTo("nil") != 0)) {
diff --git a/src/main/java/ui/TURTLEPanel.java b/src/main/java/ui/TURTLEPanel.java
index 632faec35f68da4eb32a615b0c61a0c376fb2b69..f7a3fcb421a61cfc4967f2c41add019f63a2aa76 100755
--- a/src/main/java/ui/TURTLEPanel.java
+++ b/src/main/java/ui/TURTLEPanel.java
@@ -368,6 +368,10 @@ public abstract class TURTLEPanel implements GenericTree {
     	return false;
     }
     
+    public boolean isELNEnabled() {
+    	return false;
+    }
+    
     public MainGUI getMainGUI() {
         return mgui;
     }
diff --git a/src/main/java/ui/TURTLEPanelPopupListener.java b/src/main/java/ui/TURTLEPanelPopupListener.java
index 139c24dfab0b9feb091f72debcac488b2e03c111..d9e2a327ff53abad6de25753b7181a6ac150d778 100755
--- a/src/main/java/ui/TURTLEPanelPopupListener.java
+++ b/src/main/java/ui/TURTLEPanelPopupListener.java
@@ -65,7 +65,7 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t
     protected MainGUI mgui;
 
     private JMenuItem rename, remove, moveRight, moveLeft, sort, newucd, newsd, newsdzv, newsdfromucd, newreq,
-        newebrdd, newprosmd, newavatarrd, newavatarpd, newavatarcd, newavatarad, newavatarmad, newsyscams;
+        newebrdd, newprosmd, newavatarrd, newavatarpd, newavatarcd, newavatarad, newavatarmad, newsyscams, neweln;
     private JMenuItem newatd, newftd;
 
     public TURTLEPanelPopupListener(TURTLEPanel _tp, MainGUI _mgui) {
@@ -121,6 +121,7 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t
         newavatarad = createMenuItem("New Activity Diagram");
         newavatarmad = createMenuItem("New AVATAR Modeling Assumptions Diagram");
         newsyscams = createMenuItem("New SystemC-AMS Diagram");
+        neweln = createMenuItem("New ELN Diagram");
 
         menu = new JPopupMenu("TURTLE panel");
         menu.add(moveLeft);
@@ -157,6 +158,7 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t
         if (mgui.isSystemcOn()) {
         	menu.addSeparator();
             menu.add(newsyscams);
+            menu.add(neweln);
         }
     }
 
@@ -214,13 +216,14 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t
         newebrdd.setEnabled(tp.isReqEnabled());
         newprosmd.setEnabled(tp.isProSMDEnabled());
         newatd.setEnabled(tp.isATDEnabled());
-	newftd.setEnabled(tp.isFTDEnabled());
+        newftd.setEnabled(tp.isFTDEnabled());
         newavatarrd.setEnabled(tp.isAvatarRDEnabled());
         newavatarpd.setEnabled(tp.isAvatarPDEnabled());
         newavatarcd.setEnabled(tp.isAvatarCDEnabled());
         newavatarad.setEnabled(tp.isAvatarADEnabled());
         newavatarmad.setEnabled(tp.isAvatarMADEnabled());
         newsyscams.setEnabled(tp.isSystemCAMSEnabled());
+        neweln.setEnabled(tp.isELNEnabled());
     }
 
     private Action listener = new AbstractAction() {
@@ -258,7 +261,7 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t
                 } else if (ac.equals("New Attack Tree Diagram")) {
                     mgui.createAttackTreeDiagram(tp, "Attack Tree");
                     mgui.changeMade(null, -1);
-		} else if (e.getSource() == newftd) {
+                } else if (e.getSource() == newftd) {
                     mgui.createFaultTreeDiagram(tp, "Fault Tree");
                     mgui.changeMade(null, -1);
                 } else if (ac.equals("New Event-Based Requirement Description Diagram")) {
@@ -285,6 +288,9 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t
                 } else if (e.getSource() == newsyscams) {
                 	mgui.createSysCAMS(tp, "SystemC-AMS Component Diagram");
                 	mgui.changeMade(null, -1);
+                } else if (e.getSource() == neweln) {
+                	mgui.createELN(tp, "ELN Diagram");
+                	mgui.changeMade(null, -1);
                 }
             }
         };
diff --git a/src/main/java/ui/TrackingCDElementVisitor.java b/src/main/java/ui/TrackingCDElementVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..5dbfd6a684deb5a207329c38a2572e7d960ee6ab
--- /dev/null
+++ b/src/main/java/ui/TrackingCDElementVisitor.java
@@ -0,0 +1,18 @@
+package ui;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public abstract class TrackingCDElementVisitor implements ICDElementVisitor {
+	
+	private final Set<CDElement> visitedElements;
+	
+	protected TrackingCDElementVisitor() {
+		visitedElements = new HashSet<CDElement>();
+	}
+
+	@Override
+	public boolean visit(CDElement element) {
+		return visitedElements.add( element );
+	}
+}
diff --git a/src/main/java/ui/UICheckingError.java b/src/main/java/ui/UICheckingError.java
index bbbb281e7e56998126685e030bd9ef4ba0dac48d..b03b7feeba0e8b516c7e27b03e7734fffbce8911 100755
--- a/src/main/java/ui/UICheckingError.java
+++ b/src/main/java/ui/UICheckingError.java
@@ -36,16 +36,10 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package ui;
 
 import translator.CheckingError;
 
-
-
 /**
  * Class UICheckingError
  * Creation: 07/06/2017
@@ -54,7 +48,14 @@ import translator.CheckingError;
  */
 public class UICheckingError extends CheckingError {
 
-    private TDiagramPanel tdp;
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = -6532490783339577084L;
+	
+	public static final String MESSAGE_CHOICE_BOTH_STOCHASTIC_DETERMINISTIC = "Badly formatted choice: it has both non-determinitic/ stochastic and regular guards";
+
+	private TDiagramPanel tdp;
     private TGComponent tgc;
 
     public UICheckingError(int _type, String _message) {
diff --git a/src/main/java/ui/ad/CanBeDisabledADElementVisitor.java b/src/main/java/ui/ad/CanBeDisabledADElementVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..19c917284485eff8540a826c529ee02b7d3d226a
--- /dev/null
+++ b/src/main/java/ui/ad/CanBeDisabledADElementVisitor.java
@@ -0,0 +1,53 @@
+package ui.ad;
+
+import ui.TrackingCDElementVisitor;
+import ui.CDElement;
+import ui.TGConnectingPoint;
+
+public class CanBeDisabledADElementVisitor extends TrackingCDElementVisitor {
+	
+	private boolean canBeDisabled;
+
+	public CanBeDisabledADElementVisitor() {
+		super();
+		
+		canBeDisabled = true;
+	}
+
+	/* Check that the element is not part of the inside loop of a for loop 
+	 * (non-Javadoc)
+	 * @see ui.ICDElementVisitor#visit(ui.CDElement)
+	 */
+	@Override
+	public boolean visit( final CDElement element ) {
+		if ( !super.visit( element ) ) {
+			return false;
+		}
+		
+		if ( element instanceof TGConnectingPoint ) {
+			final CDElement father = ( (TGConnectingPoint) element ).getFather();
+			
+			if ( father instanceof TADForLoop ) {
+				if ( element == ( (TADForLoop) father ).getInsideLoopConnectingPoint() && !father.isEnabled() ) {
+					canBeDisabled = false;
+					
+					return false;
+				}
+			}
+
+//			if ( father instanceof TADSequence ) {
+//				if ( element != ( (TADSequence) father ).getEnterSequenceConnectionPoint() && !father.isEnabled() ) {
+//					canBeDisabled = false;
+//					
+//					return false;
+//				}
+//			}
+		}
+		
+		return true;
+	}
+	
+	public boolean isCanBeDisabled() {
+		return canBeDisabled;
+	}
+}
diff --git a/src/main/java/ui/ad/EnablingADBranchVisitor.java b/src/main/java/ui/ad/EnablingADBranchVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..592367a6845dd8631968d4a8d777836a0be446ff
--- /dev/null
+++ b/src/main/java/ui/ad/EnablingADBranchVisitor.java
@@ -0,0 +1,30 @@
+package ui.ad;
+
+import ui.CDElement;
+import ui.TrackingCDElementVisitor;
+
+public class EnablingADBranchVisitor extends TrackingCDElementVisitor {
+	
+	private final boolean enabled;
+	
+	public EnablingADBranchVisitor( final boolean enabled ) {
+		super();
+		
+		this.enabled = enabled;
+	}
+
+	/* Disable everything of the branch
+	 * (non-Javadoc)
+	 * @see ui.ICDElementVisitor#visit(ui.CDElement)
+	 */
+	@Override
+	public boolean visit( final CDElement element ) {
+		if ( !super.visit( element ) ) {
+			return false;
+		}
+
+		element.doSetEnabled( enabled );
+
+		return true;
+	}
+}
diff --git a/src/main/java/ui/ad/EnablingADConnectorVisitor.java b/src/main/java/ui/ad/EnablingADConnectorVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..60a190a3501038aa1684ad691b32976d36ecdf9c
--- /dev/null
+++ b/src/main/java/ui/ad/EnablingADConnectorVisitor.java
@@ -0,0 +1,51 @@
+package ui.ad;
+
+import ui.CDElement;
+import ui.TGConnectingPoint;
+import ui.TGConnector;
+import ui.TrackingCDElementVisitor;
+
+public class EnablingADConnectorVisitor extends TrackingCDElementVisitor {
+	
+	private final boolean enabled;
+	
+	public EnablingADConnectorVisitor( final boolean enabled ) {
+		super();
+		
+		this.enabled = enabled;
+	}
+
+	@Override
+	public boolean visit( final CDElement element ) {
+		if ( !super.visit( element ) ) {
+			return false;
+		}
+
+		// Do not disable the stop
+		if ( element instanceof TADStopState ) {
+			return false;
+		}
+		
+		if ( element.canBeDisabled() && !( element instanceof TGConnector ) ) {
+			element.setEnabled( enabled );
+		}
+
+		if ( element instanceof TGConnectingPoint ) {
+			final TGConnectingPoint point = (TGConnectingPoint) element;
+			final CDElement father = point.getFather();
+			
+			// Only continue if the point does not belongs to the inside of the loop because it is managed by 
+			// the For itself
+			if ( father instanceof TADForLoop ) {
+				return point != ( (TADForLoop) father ).getInsideLoopConnectingPoint();
+			}
+			
+			// Disabling a sequence results in disabling all its branches so only continue if we are at entrance
+//			if ( father instanceof TADSequence ) {
+//				return point == ( (TADSequence) father ).getEnterSequenceConnectionPoint();
+//			}
+		}
+		
+		return true;
+	}
+}
diff --git a/src/main/java/ui/ad/TADActionState.java b/src/main/java/ui/ad/TADActionState.java
index 6188b2dcd4b27720e1b06adc48d5b987e3fbdba9..a99752dca2228217c788dc40d6377af4674ec437 100755
--- a/src/main/java/ui/ad/TADActionState.java
+++ b/src/main/java/ui/ad/TADActionState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -55,7 +52,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 12/08/2003
  * @author Ludovic APVRILLE
  */
-public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJavaCode, CheckableAccessibility, ActionStateErrorHighlight {
+public class TADActionState extends TADOneLineText/* Issue #69 TGCOneLineText*/ implements PreJavaCode, PostJavaCode, CheckableAccessibility, ActionStateErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -71,11 +68,12 @@ public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJ
         height = 20;
         minWidth = 30;
         
-        nbConnectingPoint = 2;
-        connectingPoint = new TGConnectingPoint[2];
-        connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
-        addTGConnectingPointsComment();
+        createConnectingPoints();
+//        nbConnectingPoint = 2;
+//        connectingPoint = new TGConnectingPoint[2];
+//        connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+//        connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
+//        addTGConnectingPointsComment();
         
         moveable = true;
         editable = true;
@@ -87,6 +85,16 @@ public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJ
         myImageIcon = IconManager.imgic204;
     }
     
+    protected void createConnectingPoints() {
+        nbConnectingPoint = 2;
+        connectingPoint = new TGConnectingPoint[ nbConnectingPoint ];
+        connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+        connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
+
+        addTGConnectingPointsComment();
+    }
+    
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -127,6 +135,7 @@ public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJ
 		}
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -175,19 +184,18 @@ public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJ
         return ret; 
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_ACTION_STATE;
     }
     
+    @Override
    	public int getDefaultConnector() {
       return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateAction = _stateAction;
 	}
-	
-
-    
-    
 }
diff --git a/src/main/java/ui/ad/TADArrayGetState.java b/src/main/java/ui/ad/TADArrayGetState.java
index 96138a63e5ab255b858990d9200648ec3edd4c98..47e708e4ac03371051471f2ac5a32b0f59b28000 100755
--- a/src/main/java/ui/ad/TADArrayGetState.java
+++ b/src/main/java/ui/ad/TADArrayGetState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -60,7 +57,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 20/03/2009
  * @author Ludovic APVRILLE
  */
-public class TADArrayGetState extends TGCWithoutInternalComponent implements BasicErrorHighlight {
+public class TADArrayGetState extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -98,8 +95,7 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas
         myImageIcon = IconManager.imgic230;
     }
 	
-
-    
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -136,8 +132,8 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas
 		}*/
     }
 	
+    @Override
 	public boolean editOndoubleClick(JFrame frame) {
-        
         String oldValue = value;
         
         JDialogArrayGet jdag = new JDialogArrayGet(frame, variable, array, index, "Getting value from an array");
@@ -161,6 +157,7 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas
 		value = variable + " = " + array + "[" + index + "]"; 
 	}
     
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Prop variable=\"");
@@ -213,6 +210,7 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas
         makeValue();
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -242,17 +240,18 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas
 		return index;
 	}
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_ARRAY_GET;
     }
     
+    @Override
    	public int getDefaultConnector() {
       return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateAction = _stateAction;
 	}
-    
-    
 }
diff --git a/src/main/java/ui/ad/TADArraySetState.java b/src/main/java/ui/ad/TADArraySetState.java
index 80517ed993c7f5068d46264f5903b37170c069f7..4e0060f2fc1db93fc6c34b44c2d523b670654ae8 100755
--- a/src/main/java/ui/ad/TADArraySetState.java
+++ b/src/main/java/ui/ad/TADArraySetState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -60,7 +57,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 20/03/2009
  * @author Ludovic APVRILLE
  */
-public class TADArraySetState extends TGCWithoutInternalComponent implements BasicErrorHighlight {
+public class TADArraySetState extends TADComponentWithoutSubcomponents/* Issue #69TGCWithoutInternalComponent */ implements BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -72,7 +69,6 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas
 	protected String expr = "x";
 	
 	protected int stateAction = 0; // 0: unchecked 1: ok; 2:unknown
-	
     
     public TADArraySetState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -97,8 +93,7 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas
         myImageIcon = IconManager.imgic232;
     }
 	
-
-    
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -126,11 +121,10 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas
         g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
         
         g.drawString(value, x + (width - w) / 2 , y + textY);
-		
     }
-	
+
+    @Override
 	public boolean editOndoubleClick(JFrame frame) {
-        
         String oldValue = value;
         
         JDialogArraySet jdas = new JDialogArraySet(frame, array, index, expr, "Setting value of an array location");
@@ -154,6 +148,7 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas
 		value = array + "[" + index + "] = " + expr; 
 	}
     
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Prop expr=\"");
@@ -206,6 +201,7 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas
         makeValue();
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -235,17 +231,18 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas
 		return index;
 	}
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_ARRAY_SET;
     }
     
+    @Override
    	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateAction = _stateAction;
 	}
-    
-    
 }
diff --git a/src/main/java/ui/ad/TADChoice.java b/src/main/java/ui/ad/TADChoice.java
index ab65e5b2111e537eaf38082eb68dae968dbb2c6c..67361b576a6755f4468f09759461bf9f01a61950 100755
--- a/src/main/java/ui/ad/TADChoice.java
+++ b/src/main/java/ui/ad/TADChoice.java
@@ -36,18 +36,18 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
 import ui.*;
 import ui.util.IconManager;
 
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Graphics;
 import java.awt.geom.Line2D;
-
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * Class TADChoice
@@ -56,11 +56,19 @@ import java.awt.geom.Line2D;
  * @version 1.0 21/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADChoice extends TGCWithInternalComponent  {
-    private int lineLength = 10;
-    private int lineOutLength = 25;
-    private int textX1, textY1, textX2, textY2, textX3, textY3;
+public class TADChoice extends TADComponentWithSubcomponents/* Issue #69  TGCWithInternalComponent */ {
+
+	public static final String EMPTY_GUARD_TEXT = "[ ]";
+    
+	private static final String TRUE_GUARD_TEXT = "[ true ]";
+
+	protected int lineLength = 10;
+    
+	protected int lineOutLength = 25;
     
+	private int textX1, textY1, textX2, textY2, textX3, textY3;
+    
+    protected int stateOfError = 0;
     
     public TADChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -74,31 +82,34 @@ public class TADChoice extends TGCWithInternalComponent  {
         textX3 = width /2 + 5;
         textY3 = height + 15;
         
-        nbConnectingPoint = 4;
-        connectingPoint = new TGConnectingPoint[nbConnectingPoint];
-        connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[1] = new TGConnectingPointAD(this, -lineOutLength, 0, false, true, 0.0, 0.5);
-        connectingPoint[2] = new TGConnectingPointAD(this, lineOutLength, 0, false, true, 1.0, 0.5);
-        connectingPoint[3] = new TGConnectingPointAD(this, 0, lineOutLength,  false, true, 0.5, 1.0);
-        addTGConnectingPointsComment();
+        createConnectingPoints();
+//        nbConnectingPoint = 4;
+//        connectingPoint = new TGConnectingPoint[nbConnectingPoint];
+//        connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+//        connectingPoint[1] = new TGConnectingPointAD(this, -lineOutLength, 0, false, true, 0.0, 0.5);
+//        connectingPoint[2] = new TGConnectingPointAD(this, lineOutLength, 0, false, true, 1.0, 0.5);
+//        connectingPoint[3] = new TGConnectingPointAD(this, 0, lineOutLength,  false, true, 0.5, 1.0);
+//        addTGConnectingPointsComment();
         
         nbInternalTGComponent = 3;
         tgcomponent = new TGComponent[nbInternalTGComponent];
+
+        createGuards();
         
-        TGCOneLineText tgc = new TGCOneLineText(x+textX1-50, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 1");
-        tgcomponent[0] = tgc;
-        
-        tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 2");
-        tgcomponent[1] = tgc;
-        
-        tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 3");
-        tgcomponent[2] = tgc;
+//        TGCOneLineText tgc = new TGCOneLineText(x+textX1-50, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 1");
+//        tgcomponent[0] = tgc;
+//        
+//        tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 2");
+//        tgcomponent[1] = tgc;
+//        
+//        tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 3");
+//        tgcomponent[2] = tgc;
         
         moveable = true;
         editable = false;
@@ -108,9 +119,53 @@ public class TADChoice extends TGCWithInternalComponent  {
         
         myImageIcon = IconManager.imgic208;
     }
+
+    protected void createConnectingPoints() {
+        nbConnectingPoint = 4;
+        connectingPoint = new TGConnectingPoint[nbConnectingPoint];
+        connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+        connectingPoint[1] = new TGConnectingPointAD(this, -lineOutLength, 0, false, true, 0.0, 0.5);
+        connectingPoint[2] = new TGConnectingPointAD(this, lineOutLength, 0, false, true, 1.0, 0.5);
+        connectingPoint[3] = new TGConnectingPointAD(this, 0, lineOutLength,  false, true, 0.5, 1.0);
+        addTGConnectingPointsComment();
+    }
     
+    protected void createGuards() {
+        TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, tdp);
+        tgc.setValue( EMPTY_GUARD_TEXT );
+        tgc.setName("guard 1");
+        tgcomponent[ 0 ] = tgc;
+        
+        tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, tdp);
+        tgc.setValue( EMPTY_GUARD_TEXT );
+        tgc.setName("guard 2");
+        tgcomponent[ 1 ] = tgc;
+        
+        tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, tdp);
+        tgc.setValue( EMPTY_GUARD_TEXT );
+        tgc.setName("guard 3");
+        tgcomponent[ 2 ] = tgc;
+    }
+    
+    @Override
     public void internalDrawing(Graphics g) {
-        g.drawLine(x+(width/2), y, x+width, y + height/2);
+		if (stateOfError > 0)  {
+			Color c = g.getColor();
+			switch(stateOfError) {
+			case ErrorHighlight.OK:
+				g.setColor(ColorManager.CHOICE);
+				break;
+			default:
+				g.setColor(ColorManager.UNKNOWN_BOX_ACTION);
+			}
+			// Making the polygon
+			int [] px1 = {x+(width/2), x+width+2, x + (width/2), x};
+			int [] py1 = {y, y + height/2, y+height+2, y+height/2};
+			g.fillPolygon(px1, py1, 4);
+			g.setColor(c);
+		}
+
+		g.drawLine(x+(width/2), y, x+width, y + height/2);
         g.drawLine(x, y + height / 2, x+width/2, y + height);
         g.drawLine(x + width/2, y, x, y + height/2);
         g.drawLine(x + width, y + height/2, x + width/2, y + height);
@@ -121,6 +176,7 @@ public class TADChoice extends TGCWithInternalComponent  {
         g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -158,20 +214,72 @@ public class TADChoice extends TGCWithInternalComponent  {
             tgcomponent[i].setValue(guard);
          }
     }
-    
+
+	public List<String> getGuards()        {
+		List<String> guards = new ArrayList<String>();
+		for( int i = 0; i < nbInternalTGComponent; i++ ) {
+			guards.add( getGuard(i) );
+		}
+		return guards;
+	}
+
+    /**
+     * Issue #69
+     * @param point
+     * @return
+     */
+    public TGCOneLineText getGuardForConnectingPoint( final TGConnectingPoint point ) {
+		final int index = Arrays.asList( connectingPoint ).indexOf( point );
+
+		if ( index < 0 ) {
+			throw new IllegalArgumentException( "No guard found for connecting point " + point );
+		}
+		
+		return (TGCOneLineText) tgcomponent[ index - 1 ];
+    }
+   
+    @Override
     public int getType() {
         return TGComponentManager.TAD_CHOICE;
     }
     
+    @Override
    	public int getDefaultConnector() {
       return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
+	
+	public void setStateAction(int _stateAction) {
+		stateOfError = _stateAction;
+	}
     
-}
-
-
-
-
-
-
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.AbstractCDElement#canBeDisabled()
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	return false;
+    }
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canLabelBeDisabled( final TGCOneLineText label ) {
+    	return label.getValue() != null && !label.getValue().isEmpty() && !EMPTY_GUARD_TEXT.equals( label.getValue() );
+    }
+    
+    /**
+     * Issue #69
+     * @param guard
+     * @return
+     */
+    public String getEffectiveCondition( final TGCOneLineText guard ) {
+    	if ( guard.isEnabled() ) {
+   	 	   return guard.getValue();
+ 	   	}
 
+		return TRUE_GUARD_TEXT;
+    }
+}
diff --git a/src/main/java/ui/ad/TADComponentWithSubcomponents.java b/src/main/java/ui/ad/TADComponentWithSubcomponents.java
new file mode 100644
index 0000000000000000000000000000000000000000..7faa2ecd2c04d57e79a02bc5b2ecb53a85072b2f
--- /dev/null
+++ b/src/main/java/ui/ad/TADComponentWithSubcomponents.java
@@ -0,0 +1,30 @@
+package ui.ad;
+
+import ui.TDiagramPanel;
+import ui.TGCScalableWithInternalComponent;
+import ui.TGComponent;
+
+/**
+ * Issue #69
+ * @author dblouin
+ *
+ */
+public abstract class TADComponentWithSubcomponents extends TGCScalableWithInternalComponent /*TGCWithInternalComponent*/ {
+
+	public TADComponentWithSubcomponents(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY,
+			boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+	}
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor();
+    	acceptBackward( visitor );
+    	
+    	return visitor.isCanBeDisabled();
+    }
+}
diff --git a/src/main/java/ui/ad/TADComponentWithoutSubcomponents.java b/src/main/java/ui/ad/TADComponentWithoutSubcomponents.java
new file mode 100644
index 0000000000000000000000000000000000000000..2317c348b68cf09cd9838446ae4956b3ad7342e5
--- /dev/null
+++ b/src/main/java/ui/ad/TADComponentWithoutSubcomponents.java
@@ -0,0 +1,30 @@
+package ui.ad;
+
+import ui.TDiagramPanel;
+import ui.TGCWithoutInternalComponent;
+import ui.TGComponent;
+
+/**
+ * Issue #69
+ * @author dblouin
+ *
+ */
+public abstract class TADComponentWithoutSubcomponents extends TGCWithoutInternalComponent {
+
+	public TADComponentWithoutSubcomponents(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY,
+			boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+	}
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor();
+    	acceptBackward( visitor );
+    	
+    	return visitor.isCanBeDisabled();
+    }
+}
diff --git a/src/main/java/ui/ad/TADConnector.java b/src/main/java/ui/ad/TADConnector.java
new file mode 100644
index 0000000000000000000000000000000000000000..8fc2736a95b9069d0a24af1c9345c50026dcb171
--- /dev/null
+++ b/src/main/java/ui/ad/TADConnector.java
@@ -0,0 +1,74 @@
+package ui.ad;
+
+import java.awt.Point;
+import java.util.Vector;
+
+import ui.ForwardComponentsEnabledVisitor;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGConnectingPoint;
+import ui.TGConnector;
+
+/**
+ * Issue #69
+ * @author dblouin
+ *
+ */
+public abstract class TADConnector extends TGConnector {
+
+	public TADConnector(	int _x, 
+							int _y,
+							int _minX,
+							int _maxX,
+							int _minY,
+							int _maxY,
+							boolean _pos,
+							TGComponent _father,
+							TDiagramPanel _tdp,
+							TGConnectingPoint _p1,
+							TGConnectingPoint _p2,
+							Vector<Point> _listPoint ) {
+		super( _x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint );
+	}
+	
+    /**
+     * Issue #69
+     * @param _enabled
+     */
+    @Override
+    public void setEnabled( final boolean _enabled ) {
+    	if ( p2 != null ) {
+    		p2.acceptForward( new EnablingADConnectorVisitor( _enabled ) );
+    	}
+    }
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	if ( p2 != null && p2.getFather() instanceof TADStopState ) {
+    		return false;
+    	}
+    	
+    	final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor();
+    	acceptBackward( visitor );
+    	
+    	return visitor.isCanBeDisabled();
+    }
+    
+    /** Issue #69
+     * @return
+     */
+    public boolean isEnabled( boolean checkBranch ) {
+    	if ( checkBranch && p2 != null ) {
+    		final ForwardComponentsEnabledVisitor visitor = new ForwardComponentsEnabledVisitor();
+    		p2.acceptForward( visitor );
+    		
+    		return visitor.isEnabled();
+    	}
+    	
+    	return super.isEnabled();
+    }
+}
diff --git a/src/main/java/ui/ad/TADDeterministicDelay.java b/src/main/java/ui/ad/TADDeterministicDelay.java
index f37a5a603d1227eeba7b253243a9d3fece2ad0c2..a326f06ad75e2c35d8b44823f2071bc6642bafce 100755
--- a/src/main/java/ui/ad/TADDeterministicDelay.java
+++ b/src/main/java/ui/ad/TADDeterministicDelay.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -55,9 +52,11 @@ import java.awt.geom.Line2D;
  * @version 1.0 21/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADDeterministicDelay extends TGCWithInternalComponent {
-    private int lineLength = 5;
-    private int textX, textY;
+public class TADDeterministicDelay extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent */{
+    
+	private int lineLength = 5;
+    
+	private int textX, textY;
     
     public TADDeterministicDelay(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -90,12 +89,14 @@ public class TADDeterministicDelay extends TGCWithInternalComponent {
         myImageIcon = IconManager.imgic214;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         g.drawRect(x, y, width, height);
         g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
         g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -116,13 +117,13 @@ public class TADDeterministicDelay extends TGCWithInternalComponent {
         tgcomponent[0].setValue(value);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_DETERMINISTIC_DELAY;
     }
     
+    @Override
    	public int getDefaultConnector() {
       return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
-    
 }
-
diff --git a/src/main/java/ui/ad/TADForLoop.java b/src/main/java/ui/ad/TADForLoop.java
new file mode 100644
index 0000000000000000000000000000000000000000..ebb66cde885f9c71fc3441933d1b03c95bd23846
--- /dev/null
+++ b/src/main/java/ui/ad/TADForLoop.java
@@ -0,0 +1,138 @@
+package ui.ad;
+
+import java.awt.geom.Line2D;
+
+import myutil.GraphicLib;
+import ui.BasicErrorHighlight;
+import ui.EmbeddedComment;
+import ui.ICDElementVisitor;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGConnectingPoint;
+import ui.util.IconManager;
+
+/**
+ * Issue #69
+ * @author dblouin
+ *
+ */
+public abstract class TADForLoop extends TADComponentWithoutSubcomponents implements EmbeddedComment, BasicErrorHighlight {
+
+	protected final static String IN_LOOP = "inside loop";
+	protected final static String EXIT_LOOP = "exit loop";
+	
+	protected static final int INDEX_ENTER_LOOP = 0;
+	protected static final int INDEX_INSIDE_LOOP = 1;
+	protected static final int INDEX_EXIT_LOOP = 2;
+
+	protected int lineLength = 5;
+    protected int textX =  5;
+    protected int textY =  15;
+    protected int arc = 5;
+
+    protected int stateOfError = 0;
+
+	public TADForLoop(	int _x, 
+						int _y,
+						int _minX,
+						int _maxX,
+						int _minY,
+						int _maxY,
+						boolean _pos,
+						TGComponent _father,
+						TDiagramPanel _tdp ) {
+		super( _x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp );
+
+		width = 30;
+        height = 20;
+        minWidth = 30;
+
+        moveable = true;
+        editable = true;
+        removable = true;
+        
+        myImageIcon = IconManager.imgic912;
+	}
+
+    @Override
+    public TGComponent isOnMe(int _x, int _y) {
+        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+            return this;
+        }
+
+        if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
+            return this;
+        }
+
+        if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) {
+            return this;
+        }
+
+        return null;
+    }
+	
+	@Override
+	public void setStateAction(int _stateAction) {
+		stateOfError = _stateAction;
+	}
+	
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.TGComponent#acceptForward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptForward( ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			final TGConnectingPoint insideLoopPoint = getInsideLoopConnectingPoint();
+			
+			if ( insideLoopPoint != null ) {
+				insideLoopPoint.acceptForward( visitor );
+			}
+			
+			final TGConnectingPoint exitPoint = getExitLoopConnectingPoint();
+			
+			if ( exitPoint != null ) {
+				exitPoint.acceptForward( visitor );
+			}
+		}
+    }
+    
+	
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.TGComponent#acceptBackward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptBackward( ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			final TGConnectingPoint enterLoopPoint = getEnterLoopConnectingPoint();
+			
+			if ( enterLoopPoint != null ) {
+				enterLoopPoint.acceptBackward( visitor );
+			}
+		}
+    }
+	
+    /**
+     * Issue #69
+     * @param _enabled
+     */
+    @Override
+    public void setEnabled( final boolean _enabled ) {
+    	super.setEnabled( _enabled );
+    	
+    	getInsideLoopConnectingPoint().acceptForward( new EnablingADBranchVisitor( _enabled ) );
+    }
+
+	public TGConnectingPoint getEnterLoopConnectingPoint() {
+		return connectingPoint[ INDEX_ENTER_LOOP ];
+	}
+
+	public TGConnectingPoint getInsideLoopConnectingPoint() {
+		return connectingPoint[ INDEX_INSIDE_LOOP ];
+	}
+
+	public TGConnectingPoint getExitLoopConnectingPoint() {
+		return connectingPoint[ INDEX_EXIT_LOOP ];
+	}
+}
diff --git a/src/main/java/ui/ad/TADJunction.java b/src/main/java/ui/ad/TADJunction.java
index 7990e48101933677625f4ab6520a92f27b3922a4..7fed85cbf3663c602acf04ecee2adcefeb90d9c7 100755
--- a/src/main/java/ui/ad/TADJunction.java
+++ b/src/main/java/ui/ad/TADJunction.java
@@ -35,9 +35,6 @@
  * 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 ui.ad;
 
@@ -47,7 +44,6 @@ import ui.util.IconManager;
 import java.awt.*;
 import java.awt.geom.Line2D;
 
-
 /**
  * Class TADJunction
  * Junction between several activities, without any synchronization. To be used in activity diagrams
@@ -55,7 +51,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 28/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADJunction extends TGCWithoutInternalComponent {
+public class TADJunction extends TADComponentWithoutSubcomponents /* Issue #69 TGCWithoutInternalComponent*/ {
 	
 	protected int range = 5;
 	
@@ -108,6 +104,7 @@ public class TADJunction extends TGCWithoutInternalComponent {
 		myImageIcon = IconManager.imgic212;
 	}
 
+	@Override
 	public void internalDrawing(Graphics g) {
 		//g.drawLine(x +width/2, y,  x+width/2, y + height);
 		//g.drawLine(x, y + (height/2), x+width, y + (height/2));
@@ -123,6 +120,7 @@ public class TADJunction extends TGCWithoutInternalComponent {
 		g.drawLine(x+width/2+range, y + height / 2, x+width/2, y+height/2+range);
 	}
 
+	@Override
 	public TGComponent isOnMe(int _x, int _y) {
 		// vertical line
 		if ((int)(Line2D.ptSegDistSq(x +width/2, y,  x+width/2, y + height, _x, _y)) < distanceSelected) {
@@ -135,19 +133,13 @@ public class TADJunction extends TGCWithoutInternalComponent {
 		return null;
 	}
 	
+	@Override
 	public int getType() {
 		return TGComponentManager.TAD_JUNCTION;
 	}
 	
+	@Override
 	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+		return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
-
 }
-
-
-
-
-    
-
-
diff --git a/src/main/java/ui/ad/TADNonDeterministicDelay.java b/src/main/java/ui/ad/TADNonDeterministicDelay.java
index 89b4f98895ff3037c570c3df8e2abaee0d59adaf..6eff783dcd5f1e0ac2c42ccba137630c485eea92 100755
--- a/src/main/java/ui/ad/TADNonDeterministicDelay.java
+++ b/src/main/java/ui/ad/TADNonDeterministicDelay.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -55,7 +52,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 10/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADNonDeterministicDelay extends TGCWithInternalComponent{
+public class TADNonDeterministicDelay extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ {
     private int lineLength = 5;
     private int textX = 5;
     private int textY = 5;
@@ -91,6 +88,7 @@ public class TADNonDeterministicDelay extends TGCWithInternalComponent{
         myImageIcon = IconManager.imgic216;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         int y1 = y;
         
@@ -108,6 +106,7 @@ public class TADNonDeterministicDelay extends TGCWithInternalComponent{
         
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -128,18 +127,13 @@ public class TADNonDeterministicDelay extends TGCWithInternalComponent{
         tgcomponent[0].setValue(value);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_NON_DETERMINISTIC_DELAY;
     }
     
+    @Override
    	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
 }
-
-
-
-
-
-
-
diff --git a/src/main/java/ui/ad/TADOneLineText.java b/src/main/java/ui/ad/TADOneLineText.java
new file mode 100644
index 0000000000000000000000000000000000000000..ffdc4a483f4caa2e5110ce13cf0ffc1e32d93189
--- /dev/null
+++ b/src/main/java/ui/ad/TADOneLineText.java
@@ -0,0 +1,25 @@
+package ui.ad;
+
+import ui.TDiagramPanel;
+import ui.TGCOneLineText;
+import ui.TGComponent;
+
+public abstract class TADOneLineText extends TGCOneLineText {
+
+	public TADOneLineText(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father,
+			TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+	}
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor();
+    	acceptBackward( visitor );
+    	
+    	return visitor.isCanBeDisabled();
+    }
+}
diff --git a/src/main/java/ui/ad/TADParallel.java b/src/main/java/ui/ad/TADParallel.java
index 7ab9862e2433660797069d6a615e5607eff80127..530ebc3c7adc5e5fcacff722dd1496d79d074a09 100755
--- a/src/main/java/ui/ad/TADParallel.java
+++ b/src/main/java/ui/ad/TADParallel.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -55,9 +52,11 @@ import java.awt.*;
  * @version 1.0 12/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADParallel extends TGCWithInternalComponent{
-    private int lineLength = 0;
-    private int textX, textY;
+public class TADParallel extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ {
+    
+	private int lineLength = 0;
+    
+	private int textX, textY;
     
     public TADParallel(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -100,11 +99,13 @@ public class TADParallel extends TGCWithInternalComponent{
         myImageIcon = IconManager.imgic206;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         g.drawRect(x, y, width, height);
         g.fillRect(x, y, width, height);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -120,18 +121,13 @@ public class TADParallel extends TGCWithInternalComponent{
         tgcomponent[0].setValue(val);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_PARALLEL;
     }
     
+    @Override
    	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
 }
-
-
-
-
-
-
-
diff --git a/src/main/java/ui/ad/TADPreemption.java b/src/main/java/ui/ad/TADPreemption.java
index c38308f22597af184fa3489d375b6fb053ff1f94..8f601cb48463b80b7fb7cd1fd0672547840b412b 100755
--- a/src/main/java/ui/ad/TADPreemption.java
+++ b/src/main/java/ui/ad/TADPreemption.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -55,9 +52,11 @@ import java.awt.*;
  * @version 1.0 12/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADPreemption extends TGCWithInternalComponent{
-    private int lineLength = 0;
-    private int textX, textY;
+public class TADPreemption extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent*/ {
+    
+	private int lineLength = 0;
+    
+	private int textX, textY;
     
     public TADPreemption(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -98,11 +97,13 @@ public class TADPreemption extends TGCWithInternalComponent{
         myImageIcon = IconManager.imgic206;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         g.drawRect(x, y, width, height);
         g.fillRect(x, y, width, height);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -110,11 +111,13 @@ public class TADPreemption extends TGCWithInternalComponent{
         return null;
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_PREEMPTION;
     }
     
+    @Override
    	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/ui/ad/TADSequence.java b/src/main/java/ui/ad/TADSequence.java
index 99eabaf2fd2c0ba804a7863f2b2ad15b7ddbf0ae..158a67935d557e89291ab82984b06b67532a8583 100755
--- a/src/main/java/ui/ad/TADSequence.java
+++ b/src/main/java/ui/ad/TADSequence.java
@@ -36,17 +36,16 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
+import java.awt.Graphics;
+import java.util.Arrays;
+import java.util.List;
+
 import myutil.GraphicLib;
 import ui.*;
 import ui.util.IconManager;
 
-import java.awt.*;
-
 /**
  * Class TADSequence
  * Sequence operator. Activities are executed in sequence from left to right
@@ -55,9 +54,11 @@ import java.awt.*;
  * @version 1.0 12/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADSequence extends TGCWithInternalComponent{
-    private int lineLength = 0;
-    private int textX, textY;
+public class TADSequence extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ {
+    
+	protected int lineLength = 0;
+    
+	private int textX, textY;
     
     public TADSequence(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -69,15 +70,16 @@ public class TADSequence extends TGCWithInternalComponent{
         textX = width - 6;
         textY = height + 2;
         
-        nbConnectingPoint = 6;
-        connectingPoint = new TGConnectingPoint[6];
-        connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.167, 1.0);
-        connectingPoint[2] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.333, 1.0);
-        connectingPoint[3] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
-        connectingPoint[4] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.667, 1.0);
-        connectingPoint[5] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.833, 1.0);
-        addTGConnectingPointsCommentCorner();
+        createConnectingPoints();
+//        nbConnectingPoint = 6;
+//        connectingPoint = new TGConnectingPoint[6];
+//        connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+//        connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.167, 1.0);
+//        connectingPoint[2] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.333, 1.0);
+//        connectingPoint[3] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
+//        connectingPoint[4] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.667, 1.0);
+//        connectingPoint[5] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.833, 1.0);
+//        addTGConnectingPointsCommentCorner();
         
         nbInternalTGComponent = 1;
         tgcomponent = new TGComponent[nbInternalTGComponent];
@@ -98,11 +100,25 @@ public class TADSequence extends TGCWithInternalComponent{
         myImageIcon = IconManager.imgic206;
     }
     
+    protected void createConnectingPoints() {
+        nbConnectingPoint = 6;
+        connectingPoint = new TGConnectingPoint[6];
+        connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+        connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.167, 1.0);
+        connectingPoint[2] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.333, 1.0);
+        connectingPoint[3] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
+        connectingPoint[4] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.667, 1.0);
+        connectingPoint[5] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.833, 1.0);
+        addTGConnectingPointsCommentCorner();
+    }
+    
+    @Override
     public void internalDrawing(Graphics g) {
         g.drawRect(x, y, width, height);
         g.fillRect(x, y, width, height);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -110,11 +126,36 @@ public class TADSequence extends TGCWithInternalComponent{
         return null;
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_SEQUENCE;
     }
     
+    @Override
    	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    }
+
+    public TGConnectingPoint getEnterConnectingPoint() {
+    	return connectingPoint[ 0 ];
+    }
+	
+    public List<TGConnectingPoint> getExitConnectingPoints() {
+    	return Arrays.asList( Arrays.copyOfRange( connectingPoint, 1, connectingPoint.length ) );
+    }
+	
+    /**
+     * Issue #69
+     * @param _enabled
+     */
+    @Override
+    public void setEnabled( final boolean _enabled ) {
+    	super.setEnabled( _enabled );
+    	
+    	for ( final TGConnectingPoint point : connectingPoint ) {
+    		if ( point != getEnterConnectingPoint() ) {
+    			point.acceptForward( new EnablingADConnectorVisitor( _enabled ) );
+        	}
+    	}
     }
 }
diff --git a/src/main/java/ui/ad/TADStartState.java b/src/main/java/ui/ad/TADStartState.java
index 0bf11c61a634b6c82cfefb012a4f6da185d47105..b4d21f778eae2d336594cca6ffb956005f9f68dc 100755
--- a/src/main/java/ui/ad/TADStartState.java
+++ b/src/main/java/ui/ad/TADStartState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
- 
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -55,8 +52,9 @@ import java.awt.geom.Line2D;
  * @version 1.0 12/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADStartState extends TGCWithoutInternalComponent{
-	private int lineLength = 5;
+public class TADStartState extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ {
+	
+	protected int lineLength = 5;
 
 	public TADStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -64,9 +62,10 @@ public class TADStartState extends TGCWithoutInternalComponent{
 		width = 15;
 		height = 15;
 
-		nbConnectingPoint = 1;
-		connectingPoint = new TGConnectingPoint[1];
-		connectingPoint[0] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
+		createConnectingPoints();
+//		nbConnectingPoint = 1;
+//		connectingPoint = new TGConnectingPoint[1];
+//		connectingPoint[0] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
 
 		nbInternalTGComponent = 0;
 
@@ -79,11 +78,19 @@ public class TADStartState extends TGCWithoutInternalComponent{
 		myImageIcon = IconManager.imgic222;
 	}
 
+    protected void createConnectingPoints() {
+		nbConnectingPoint = 1;
+		connectingPoint = new TGConnectingPoint[1];
+		connectingPoint[0] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
+    }
+
+    @Override
 	public void internalDrawing(Graphics g) {
 		g.fillOval(x, y, width, height);
 		g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
 	}
 
+    @Override
 	public TGComponent isOnMe(int _x, int _y) {
 		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
 			return this;
@@ -93,19 +100,25 @@ public class TADStartState extends TGCWithoutInternalComponent{
 			return this;	
 		}
 		
-		
-		
 		return null;
 	}
 	
+    @Override
 	public int getType() {
 		return TGComponentManager.TAD_START_STATE;
 	}
 	
+    @Override
 	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    }
+    
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.AbstractCDElement#canBeDisabled()
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	return false;
     }
-	
 }
-
-
diff --git a/src/main/java/ui/ad/TADStopState.java b/src/main/java/ui/ad/TADStopState.java
index a92f665a912de31efc0176a0e5ab934453860bbd..04dc7556e0493784bdcc0b6d14dcaa5137e9c0e0 100755
--- a/src/main/java/ui/ad/TADStopState.java
+++ b/src/main/java/ui/ad/TADStopState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
- 
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -54,9 +51,11 @@ import java.awt.*;
  * @version 1.0 12/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADStopState extends TGCWithoutInternalComponent{
+public class TADStopState extends TADComponentWithoutSubcomponents /* Issue #69 TGCWithoutInternalComponent*/ {
+	
 	private int internalCircleSize = 16;
-	private int lineLength = 5;
+	
+	protected int lineLength = 5;
 
 	public TADStopState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -64,9 +63,10 @@ public class TADStopState extends TGCWithoutInternalComponent{
 		width = 20;
 		height = 20;
 
-		nbConnectingPoint = 1;
-		connectingPoint = new TGConnectingPoint[1];
-		connectingPoint[0] = new TGConnectingPointAD(this, 0, - lineLength, true, false, 0.5, 0.0);
+		createConnectingPoints();
+//		nbConnectingPoint = 1;
+//		connectingPoint = new TGConnectingPoint[1];
+//		connectingPoint[0] = new TGConnectingPointAD(this, 0, - lineLength, true, false, 0.5, 0.0);
 
 		nbInternalTGComponent = 0;
 
@@ -79,14 +79,24 @@ public class TADStopState extends TGCWithoutInternalComponent{
 		myImageIcon = IconManager.imgic210;
 	}
 
+	protected void createConnectingPoints() {
+		nbConnectingPoint = 1;
+		connectingPoint = new TGConnectingPoint[1];
+		connectingPoint[0] = new TGConnectingPointAD(this, 0, - lineLength, true, false, 0.5, 0.0);
+	}
+
+	@Override
 	public void internalDrawing(Graphics g) {
-		ColorManager.setColor(g, state, 0);
+	
+		// Issue #69
+		ColorManager.setColor( g, state, 0, isEnabled() );
+//		ColorManager.setColor(g, state, 0);
 		g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize);
 		g.drawOval(x, y, width, height);
 		g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
 	}
 
-
+	@Override
 	public TGComponent isOnMe(int _x, int _y) {
 		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
 			return this;
@@ -94,19 +104,22 @@ public class TADStopState extends TGCWithoutInternalComponent{
 		return null;
 	}
 	
+	@Override
 	public int getType() {
 		return TGComponentManager.TAD_STOP_STATE;
 	}
 	
+	@Override
 	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+		return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
-	
-}
-
-
-
-
     
-
-
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.AbstractCDElement#canBeDisabled()
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	return false;
+    }
+}
diff --git a/src/main/java/ui/ad/TADTimeCapture.java b/src/main/java/ui/ad/TADTimeCapture.java
index 128a81da1ae89291aa99b343b0a6e92221f49e6c..5197e735757c8534ad221167e38044a352f546b3 100755
--- a/src/main/java/ui/ad/TADTimeCapture.java
+++ b/src/main/java/ui/ad/TADTimeCapture.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -55,14 +52,13 @@ import java.awt.geom.Line2D;
  * @version 1.0 23/07/2009
  * @author Ludovic APVRILLE
  */
-public class TADTimeCapture extends TGCOneLineText implements ActionStateErrorHighlight {
+public class TADTimeCapture extends TADOneLineText/* Issue #69 TGCOneLineText*/ implements ActionStateErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
     protected int arc = 5;
 	
 	protected int stateAction = 0; // 0: unchecked 1: attribute; 3:unknown
-
 	
     public TADTimeCapture(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -87,6 +83,7 @@ public class TADTimeCapture extends TGCOneLineText implements ActionStateErrorHi
         myImageIcon = IconManager.imgic204;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		String myVal = "time -> " + value;
         int w  = g.getFontMetrics().stringWidth(myVal);
@@ -110,15 +107,16 @@ public class TADTimeCapture extends TGCOneLineText implements ActionStateErrorHi
 			g.fillRoundRect(x, y, width, height, arc, arc);
 			g.setColor(c);
 		}
-        g.drawRoundRect(x, y, width, height, arc, arc);
+
+		g.drawRoundRect(x, y, width, height, arc, arc);
 		
         g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
         g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
         
         g.drawString(myVal, x + (width - w) / 2 , y + textY);
-		
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -127,22 +125,22 @@ public class TADTimeCapture extends TGCOneLineText implements ActionStateErrorHi
         if ((int)(Line2D.ptSegDistSq(x +width/2, y- lineLength,  x+width/2, y + lineLength + height, _x, _y)) < distanceSelected) {
 			return this;	
 		}
-        
 
         return null;
     }
     
-    
+    @Override
     public int getType() {
         return TGComponentManager.TAD_TIME_CAPTURE;
     }
     
+    @Override
    	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateAction = _stateAction;
 	}
-    
 }
diff --git a/src/main/java/ui/ad/TADTimeInterval.java b/src/main/java/ui/ad/TADTimeInterval.java
index 2b87cea962598cac2f171a1b8cbd284c8f1c75cc..fea95ac151e9b9e6f64548a7dcd8e1c7fdd2da1c 100755
--- a/src/main/java/ui/ad/TADTimeInterval.java
+++ b/src/main/java/ui/ad/TADTimeInterval.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -55,7 +52,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 12/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADTimeInterval extends TGCWithInternalComponent{
+public class TADTimeInterval extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent */{
     private int lineLength = 5;
     private int textX, textY;
     private int incrementY = 3;
@@ -70,7 +67,7 @@ public class TADTimeInterval extends TGCWithInternalComponent{
         textY = height/2 + 5;
         
         nbConnectingPoint = 2;
-        connectingPoint = new TGConnectingPoint[2];
+        connectingPoint = new TGConnectingPoint[ nbConnectingPoint ];
         connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
         connectingPoint[1] = new TGConnectingPointAD(this, 0, + lineLength, false, true, 0.5, 1.0);
         addTGConnectingPointsComment();
@@ -92,6 +89,7 @@ public class TADTimeInterval extends TGCWithInternalComponent{
         myImageIcon = IconManager.imgic224;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         g.drawRect(x, y, width, height);
         g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
@@ -109,6 +107,7 @@ public class TADTimeInterval extends TGCWithInternalComponent{
         }
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -137,19 +136,13 @@ public class TADTimeInterval extends TGCWithInternalComponent{
         ((TGCTimeInterval)(tgcomponent[0])).setMaxDelay(val);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_DELAY_NON_DETERMINISTIC_DELAY;
     }
     
+    @Override
    	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
-    
 }
-
-
-
-
-
-
-
diff --git a/src/main/java/ui/ad/TADTimeLimitedOffer.java b/src/main/java/ui/ad/TADTimeLimitedOffer.java
index 02785ec46b29070c66d5eaef01030dc62961eeb0..1298580e5d31a64031060697a3fc2edab6e294e7 100755
--- a/src/main/java/ui/ad/TADTimeLimitedOffer.java
+++ b/src/main/java/ui/ad/TADTimeLimitedOffer.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
- 
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -57,7 +54,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 12/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADTimeLimitedOffer extends TGCWithInternalComponent implements ActionStateErrorHighlight  {
+public class TADTimeLimitedOffer extends  TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent*/ implements ActionStateErrorHighlight {
 	protected int lineLength = 25;
 	protected int lineDistance = 10;
 	protected int textX =  5;
@@ -81,7 +78,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act
 		connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0);
 		connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0);
 		connectingPoint[2] = new TGConnectingPointAD(this, distanceTwoLines, lineLength, false, true, 0.5, 1.0);
-                addTGConnectingPointsComment();
+        addTGConnectingPointsComment();
 
 		nbInternalTGComponent = 1;
 		tgcomponent = new TGComponent[nbInternalTGComponent];
@@ -101,6 +98,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act
 		myImageIcon = IconManager.imgic218;
 	}
 
+	@Override
 	public void internalDrawing(Graphics g) {
 		int w  = g.getFontMetrics().stringWidth(value);
 		int w1 = Math.max(minWidth, w + 2 * textX);
@@ -142,6 +140,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act
 	
 	}
 
+	@Override
 	public TGComponent isOnOnlyMe(int x1, int y1) {
 		if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
 			return this;
@@ -175,7 +174,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act
 		connectingPoint[2].setCdX(width / 2 + distanceTwoLines);	
 	}*/
 	
-	public void updateInternalComponents(int diffWidth, int diffX) {
+	protected void updateInternalComponents(int diffWidth, int diffX) {
 		int x1 = tgcomponent[0].getX();
 		int y1 = tgcomponent[0].getY();
 		tgcomponent[0].setCdRectangle(width + distanceStateLine + 2, width + distanceStateLine + 10, textY - 10, textY + 10);
@@ -184,6 +183,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act
 		//
 	}
 	
+	@Override
 	public boolean editOndoubleClick(JFrame frame) {
 		String oldValue = value;
 		String text = getName() + ": ";
@@ -209,23 +209,18 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act
 		return tgcomponent[0].getValue();	
 	}
 	
+	@Override
 	public int getType() {
 		return TGComponentManager.TAD_TIME_LIMITED_OFFER;
 	}
 	
+	@Override
 	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+		return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
 	
+	@Override
 	public void setStateAction(int _stateAction) {
 		stateAction = _stateAction;
 	}
-
 }
-
-
-
-
-    
-
-
diff --git a/src/main/java/ui/ad/TADTimeLimitedOfferWithLatency.java b/src/main/java/ui/ad/TADTimeLimitedOfferWithLatency.java
index bc0cb533f7471cc138060256c27605118fd97343..c775d61df261687c5bec8f90e911311b190bcb2b 100755
--- a/src/main/java/ui/ad/TADTimeLimitedOfferWithLatency.java
+++ b/src/main/java/ui/ad/TADTimeLimitedOfferWithLatency.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import myutil.GraphicLib;
@@ -57,7 +54,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 12/12/2003
  * @author Ludovic APVRILLE
  */
-public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent implements ActionStateErrorHighlight {
+public class TADTimeLimitedOfferWithLatency extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent*/ implements ActionStateErrorHighlight {
     protected int lineLength = 25;
     protected int lineLengthLatency = 5;
     protected int lineDistance = 10;
@@ -116,9 +113,9 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp
         minWidth = 30;
         
         myImageIcon = IconManager.imgic220;
-        
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         //
         int w  = g.getFontMetrics().stringWidth(value);
@@ -170,6 +167,7 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp
         }
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         // state
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
@@ -210,7 +208,7 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp
                 connectingPoint[2].setCdX(width / 2 + distanceTwoLines);
         }*/
     
-    public void updateInternalComponents(int diffWidth, int diffX) {
+    protected void updateInternalComponents(int diffWidth, int diffX) {
         int x1 = tgcomponent[0].getX();
         int y1 = tgcomponent[0].getY();
         
@@ -223,6 +221,7 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp
         tgcomponent[1].setCdRectangle(posx, posx+10, posy - 10, posy + 10);
     }
     
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
         String text = getName() + ": ";
@@ -264,16 +263,18 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp
         tgcomponent[0].setValue(delay);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TAD_TIME_LIMITED_OFFER_WITH_LATENCY;
     }
     
+    @Override
    	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_AD_DIAGRAM;
+    	return TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateAction = _stateAction;
 	}
- 
-}
+ }
diff --git a/src/main/java/ui/ad/TActivityDiagramToolBar.java b/src/main/java/ui/ad/TActivityDiagramToolBar.java
index 5f84487b9c81deef28fc33c417b96ba421ab7703..02d83a32ba40d2454e58008d3b61263b3b47672a 100755
--- a/src/main/java/ui/ad/TActivityDiagramToolBar.java
+++ b/src/main/java/ui/ad/TActivityDiagramToolBar.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ad;
 
 import ui.MainGUI;
@@ -47,9 +44,6 @@ import ui.TToolBar;
 
 import javax.swing.*;
 
-//import java.awt.*;
-//import java.awt.event.*;
-
 /**
  * Class TActivityDiagramToolBar
  * Toolbar associated with activity diagrams
@@ -59,7 +53,6 @@ import javax.swing.*;
  */
 public class TActivityDiagramToolBar extends TToolBar {
     
-    
     public TActivityDiagramToolBar(MainGUI _mgui) {
         super(_mgui);
     }
@@ -185,8 +178,3 @@ public class TActivityDiagramToolBar extends TToolBar {
         button.addMouseListener(mgui.mouseHandler);
     }
 } // Class
-
-
-
-
-
diff --git a/src/main/java/ui/ad/TGConnectingPointAD.java b/src/main/java/ui/ad/TGConnectingPointAD.java
index bffd4f96631badb05b301211e4fc9509e19c3da1..df8f136712d9297ab99e3631732a41eb7cc37cab 100755
--- a/src/main/java/ui/ad/TGConnectingPointAD.java
+++ b/src/main/java/ui/ad/TGConnectingPointAD.java
@@ -35,9 +35,6 @@
  * 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 ui.ad;
 
@@ -52,21 +49,14 @@ import ui.TGConnectingPointWidthHeight;
  * @version 1.0 12/12/2003
  * @author Ludovic APVRILLE
  */
-public class TGConnectingPointAD extends  TGConnectingPointWidthHeight{
+public class TGConnectingPointAD extends TGConnectingPointWidthHeight{
 
 	public TGConnectingPointAD(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) {
 		super(_container, _x, _y, _in, _out, _w, _h);
 	}
 
+	@Override
 	public boolean isCompatibleWith(int type) {
         return type == TGComponentManager.CONNECTOR_AD_DIAGRAM;
     }
-       
 }
-
-
-
-
-    
-
-
diff --git a/src/main/java/ui/atd/ATDAttack.java b/src/main/java/ui/atd/ATDAttack.java
index e81ba2822b66199a8dd60965392b4febcdf1cb4e..ab9cc1a828da05e77f7a4ab4073046a9200fe309 100644
--- a/src/main/java/ui/atd/ATDAttack.java
+++ b/src/main/java/ui/atd/ATDAttack.java
@@ -59,7 +59,7 @@ import java.awt.*;
  * @author Ludovic APVRILLE
  * @version 1.0 09/12/2009
  */
-public class ATDAttack extends TGCScalableWithInternalComponent implements SwallowedTGComponent, WithAttributes, CheckableAccessibility, CanBeDisabled {
+public class ATDAttack extends TGCScalableWithInternalComponent implements SwallowedTGComponent, WithAttributes, CheckableAccessibility/*, CanBeDisabled*/ {
     private int textY1 = 3;
     //   private int textY2 = 3;
 
@@ -127,6 +127,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
         myImageIcon = IconManager.imgic702;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         String ster;
         if (isRootAttack) {
@@ -196,14 +197,20 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
         // Core of the attack
         Color c = g.getColor();
         g.draw3DRect(x, y, width, height, true);
+        
         if (isEnabled()) {
             if (isRootAttack) {
                 g.setColor(ColorManager.ATD_ROOT_ATTACK);
             } else {
                 g.setColor(ColorManager.ATD_ATTACK);
             }
-        } else {
-            g.setColor(ColorManager.ATD_ATTACK_DISABLED);
+        } 
+        else {
+    		// Issue #69: Disabled color now managed in TGComponent / ColorManager
+	    	// For filled shapes ensure background color is white so that text is
+	    	// readable
+	    	g.setColor( ColorManager.DISABLED_FILLING );
+//            g.setColor(ColorManager.ATD_ATTACK_DISABLED);
         }
 
         g.fill3DRect(x + 1, y + 1, width - 1, height - 1, true);
@@ -254,13 +261,14 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
                 }
             }
 
-            if (!isEnabled()) {
-                String val = "disabled";
-                w = g.getFontMetrics().stringWidth(val);
-                //int h =  currentFontSize + (int)(textY1 * tdp.getZoom());
-                g.setFont(f.deriveFont(Font.ITALIC));
-                g.drawString(val, x + (width - w - 5), y + height - 2);
-            }
+            // Issue #69: Use the same disabling UI as other components
+//            if (!isEnabled()) {
+//                String val = "disabled";
+//                w = g.getFontMetrics().stringWidth(val);
+//                //int h =  currentFontSize + (int)(textY1 * tdp.getZoom());
+//                g.setFont(f.deriveFont(Font.ITALIC));
+//                g.drawString(val, x + (width - w - 5), y + height - 2);
+//            }
 
 
         } else {
@@ -271,7 +279,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
 
     }
 
-    public void setValue(String val, Graphics g) {
+    private void setValue(String val, Graphics g) {
         oldValue = value;
         String ster;
         if (isRootAttack) {
@@ -299,10 +307,9 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
 
 
         g.setFont(f0);
-
-        //
     }
 
+    @Override
     public void resizeWithFather() {
         if ((father != null) && (father instanceof ATDBlock)) {
             //
@@ -312,7 +319,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
         }
     }
 
-
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String tmp;
         boolean error = false;
@@ -356,6 +363,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
         return !error;
     }
 
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
 
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
@@ -364,10 +372,12 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
         return null;
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.ATD_ATTACK;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<info description=\"" + description);
@@ -379,9 +389,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
 
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
-        //
         try {
-
             NodeList nli;
             Node n1, n2;
             Element elt;
@@ -420,7 +428,6 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
         }
     }
 
-
     public String getDescription() {
         return description;
     }
@@ -439,7 +446,6 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
         return s;
     }
 
-
     public boolean isRootAttack() {
         return isRootAttack;
     }
@@ -448,8 +454,14 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall
         setFather(null);
         TDiagramPanel tdp = getTDiagramPanel();
         setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
-
     }
-
-
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	return true;
+    }
 }
diff --git a/src/main/java/ui/atd/ATDAttackConnector.java b/src/main/java/ui/atd/ATDAttackConnector.java
index 7590b0414bd785dff05f6dd827d8d0d121630fc9..300ce4ea0e2b3f4b20046ae6fca522d34ff084f6 100644
--- a/src/main/java/ui/atd/ATDAttackConnector.java
+++ b/src/main/java/ui/atd/ATDAttackConnector.java
@@ -36,12 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.atd;
 
-
 import myutil.Conversion;
 import myutil.GraphicLib;
 import ui.*;
@@ -66,7 +62,6 @@ public  class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints
     protected double oldScaleFactor;
     protected int fontSize = 12;
 
-
     public ATDAttackConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) {
         super(_x, _y,  _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
         myImageIcon = IconManager.imgic202;
@@ -75,6 +70,7 @@ public  class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints
         oldScaleFactor = tdp.getZoom();
     }
 
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
         /*if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) {
           g.drawLine(x1, y1, x2, y2);
@@ -137,19 +133,19 @@ public  class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints
           g.fillRect(p1.getX()-(cz/2), p1.getY()-(cz/2), cz, cz);*/
 
         Point p = new Point(x2, y2);
-        if (p == null) {
+//        if (p == null) {
+//            //
+//        } else {
+        if (Point2D.distance(x1, y1, p.x, p.y) < GraphicLib.longueur * 1.5) {
             //
-        } else {
-            if (Point2D.distance(x1, y1, p.x, p.y) < GraphicLib.longueur * 1.5) {
+            if ((p.x != x1) || (p.y != y1)) {
+                g.drawLine(x1, y1, p.x, p.y);
                 //
-                if ((p.x != x1) || (p.y != y1)) {
-                    g.drawLine(x1, y1, p.x, p.y);
-                    //
-                }
-            } else {
-                GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, p.x, p.y, true);
             }
+        } else {
+            GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, p.x, p.y, true);
         }
+      //  }
 
         if (value.length() > 0) {
             Font f = g.getFont();
@@ -160,9 +156,9 @@ public  class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints
             g.drawString(value, x2+(cz/2)+1, y2);
             g.setFont(f);
         }
-
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
         String text = getName() + "Connector";
@@ -175,8 +171,6 @@ public  class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints
             s = Conversion.removeFirstSpaces(s);
         }
 
-        //
-
         if ((s != null) && (!s.equals(oldValue))) {
             setValue(s);
             return true;
@@ -185,11 +179,12 @@ public  class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints
         return false;
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.ATD_ATTACK_CONNECTOR;
     }
 
+    @Override
     public void rescale(double scaleFactor){
         //
         int xx, yy;
@@ -212,9 +207,4 @@ public  class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints
 
         oldScaleFactor = scaleFactor;
     }
-
-
-
-
-
 }
diff --git a/src/main/java/ui/atd/ATDCompositionConnector.java b/src/main/java/ui/atd/ATDCompositionConnector.java
index daa43954f2e0809bb4d9a4ab1412dac4f5acd591..52ee0ddb63974d72bb3740fd9898932473107cec 100644
--- a/src/main/java/ui/atd/ATDCompositionConnector.java
+++ b/src/main/java/ui/atd/ATDCompositionConnector.java
@@ -36,12 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.atd;
 
-
 import ui.*;
 import ui.util.IconManager;
 
@@ -63,8 +59,7 @@ public  class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo
 	protected int xp1, xp2, yp1, yp2;
 	protected double oldScaleFactor;
 	protected boolean rescaled;
-	
-    
+	    
     public ATDCompositionConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) {
         super(_x, _y,  _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
         myImageIcon = IconManager.imgic202;
@@ -74,6 +69,7 @@ public  class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo
 		rescaled = true;
     }
     
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
         /*if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) {
 		g.drawLine(x1, y1, x2, y2);
@@ -86,7 +82,7 @@ public  class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo
 			xp2 = x2;
 			yp1 = y1;
 			yp2 = y2;
-			Double alpha;
+			//Double alpha;
 			
 			int dd = (int)(d*tdp.getZoom());
 			int DD = (int)(D*tdp.getZoom());
@@ -169,6 +165,7 @@ public  class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo
 		rescaled = false;
     }
 	
+    @Override
 	public TGComponent extraIsOnOnlyMe(int x1, int y1) {
 		if (p != null) {
 			if (p.contains(x1, y1)) {
@@ -179,6 +176,7 @@ public  class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo
         return null;
     }
 	
+    @Override
 	public void rescale(double scaleFactor){
 		//
 		int xx, yy;
@@ -203,11 +201,8 @@ public  class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo
 		rescaled = true;
 	}
     
-    
+    @Override
     public int getType() {
         return TGComponentManager.ATD_COMPOSITION_CONNECTOR;
     }
-	
-	
-    
 }
diff --git a/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java b/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java
index 34987e1a285ba75f7b568c022cc95fb4d967a892..4c2cb5c0647315cbd26be50c6ed5c5b9ef672976 100755
--- a/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java
+++ b/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import myutil.GraphicLib;
@@ -56,7 +53,7 @@ import java.awt.geom.Line2D;
    * @version 1.0 02/09/2011
    * @author Ludovic APVRILLE
  */
-public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements EmbeddedComment, BasicErrorHighlight {
+public class AvatarADAcceptEventAction extends  AvatarADBasicCanBeDisabledComponent/* Issue #69 AvatarADBasicComponent*/ implements EmbeddedComment, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  6;
     protected int textY =  15;
@@ -69,8 +66,8 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements
     public AvatarADAcceptEventAction(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-	initScaling(30, 20);
-	minWidth = (int)(30* tdp.getZoom());
+        initScaling(30, 20);
+        minWidth = (int)(30* tdp.getZoom());
         oldScaleFactor = tdp.getZoom();
 
         nbConnectingPoint = 2;
@@ -89,6 +86,7 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements
         myImageIcon = IconManager.imgic904;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -142,6 +140,7 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements
 
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -154,15 +153,11 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements
         return null;
     }
 
-
-
     public String getEventName() {
         return value;
     }
 
-
-
-
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
 
@@ -182,15 +177,13 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements
 
     }
 
-
-
+    @Override
     public int getType() {
         return TGComponentManager.AAD_ACCEPT_EVENT_ACTION;
     }
 
-
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
-
 }
diff --git a/src/main/java/ui/avatarad/AvatarADAction.java b/src/main/java/ui/avatarad/AvatarADAction.java
index aef9de2da3743eafa3d042f7f52d78f2bb74e4b5..3d0e619b91a3c5eb614519cad869b7870684915a 100755
--- a/src/main/java/ui/avatarad/AvatarADAction.java
+++ b/src/main/java/ui/avatarad/AvatarADAction.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import myutil.GraphicLib;
@@ -56,7 +53,7 @@ import java.awt.geom.Line2D;
    * @version 1.0 02/09/2011
    * @author Ludovic APVRILLE
  */
-public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedComment, BasicErrorHighlight {
+public class AvatarADAction extends AvatarADBasicCanBeDisabledComponent/* Issue #69 AvatarADBasicComponent*/ implements EmbeddedComment, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -88,6 +85,7 @@ public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedCo
         myImageIcon = IconManager.imgic204;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -118,6 +116,7 @@ public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedCo
 
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -130,6 +129,7 @@ public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedCo
         return null;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         oldValue = value;
 
@@ -177,13 +177,13 @@ public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedCo
         return ret;
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.AAD_ACTION;
     }
 
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
-
-
 }
diff --git a/src/main/java/ui/avatarad/AvatarADActivity.java b/src/main/java/ui/avatarad/AvatarADActivity.java
index b8c4cc814ecd0c6d13f46a347e35e46414178e33..ad62604325f848346d9291e7a5dab126c6d741c5 100644
--- a/src/main/java/ui/avatarad/AvatarADActivity.java
+++ b/src/main/java/ui/avatarad/AvatarADActivity.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import myutil.GraphicLib;
@@ -46,9 +43,11 @@ import ui.*;
 import ui.util.IconManager;
 
 import javax.swing.*;
-import java.awt.*;
-import java.util.LinkedList;
 
+import java.awt.Font;
+import java.awt.Graphics;
+import java.util.LinkedList;
+import java.util.List;
 
 /**
    * Class AvatarADActivity
@@ -58,23 +57,22 @@ import java.util.LinkedList;
    * @author Ludovic APVRILLE
  */
 public class AvatarADActivity extends TGCScalableWithInternalComponent implements SwallowTGComponent, SwallowedTGComponent {
-    private int textY1 = 3;
+//    private int textY1 = 3;
 
-    private int maxFontSize = 12;
-    private int minFontSize = 4;
-    private int currentFontSize = -1;
+    //private int maxFontSize = 12;
+  //  private int minFontSize = 4;
+    //private int currentFontSize = -1;
     private boolean displayText = true;
     private int textX = 7;
 
-
     public String oldValue;
 
     public AvatarADActivity(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-	initScaling(100, 50);
-	minWidth = (int)(40* tdp.getZoom());
-	minHeight = (int)(30* tdp.getZoom());
+        initScaling(100, 50);
+        minWidth = (int)(40* tdp.getZoom());
+        minHeight = (int)(30* tdp.getZoom());
         oldScaleFactor = tdp.getZoom();
 
         nbConnectingPoint = 32;
@@ -137,7 +135,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         setValue(name);
         oldValue = value;
 
-        currentFontSize = maxFontSize;
+        //currentFontSize = maxFontSize;
         oldScaleFactor = tdp.getZoom();
 
         myImageIcon = IconManager.imgic700;
@@ -145,6 +143,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         //actionOnAdd();
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         Font f = g.getFont();
         Font fold = f;
@@ -200,7 +199,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         g.drawRect(x, y, width, height);
         int decY = (int)(15 * tdp.getZoom());
         int decX = (int)(20 * tdp.getZoom());
-	int h = g.getFontMetrics().getHeight();
+        int h = g.getFontMetrics().getHeight();
         if ((height > decY) && (width > decX)) {
             g.drawLine(x, y+decY, x+decY, y+decY);
             g.drawLine(x+decY, y+decY, x+decX, y+decY-5);
@@ -230,7 +229,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         g.setFont(fold);
     }
 
-
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
 
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
@@ -244,8 +243,8 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         return value;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
-
         oldValue = value;
 
         //String text = getName() + ": ";
@@ -272,11 +271,12 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
 
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.AAD_ACTIVITY;
     }
 
+    @Override
     public boolean acceptSwallowedTGComponent(TGComponent tgc) {
         if (tgc instanceof AvatarADBasicComponent) {
             return true;
@@ -290,6 +290,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
 
     }
 
+    @Override
     public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
         boolean swallowed = false;
 
@@ -340,6 +341,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         return true;
     }
 
+    @Override
     public void removeSwallowedTGComponent(TGComponent tgc) {
         removeMyInternalComponent(tgc, false);
     }
@@ -379,7 +381,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         return false;
     }
 
-
+    @Override
     public void hasBeenResized() {
         for(int i=0; i<nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarADBasicComponent) {
@@ -399,8 +401,8 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
 
     }
 
+    @Override
     public void resizeWithFather() {
-
         if ((father != null) && (father instanceof AvatarADActivity)) {
             // Too large to fit in the father? -> resize it!
             resizeToFatherSize();
@@ -410,8 +412,8 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         }
     }
 
-    public LinkedList<AvatarADActivity> getActivityList() {
-        LinkedList<AvatarADActivity> list = new LinkedList<AvatarADActivity>();
+    public List<AvatarADActivity> getActivityList() {
+        List<AvatarADActivity> list = new LinkedList<AvatarADActivity>();
         for(int i=0; i<nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarADActivity) {
                 list.add((AvatarADActivity)(tgcomponent[i]));
@@ -420,8 +422,8 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         return list;
     }
 
-    public LinkedList<AvatarADActivity> getFullActivityList() {
-        LinkedList<AvatarADActivity> list = new LinkedList<AvatarADActivity>();
+    public List<AvatarADActivity> getFullActivityList() {
+        List<AvatarADActivity> list = new LinkedList<AvatarADActivity>();
         for(int i=0; i<nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarADActivity) {
                 list.add((AvatarADActivity)(tgcomponent[i]));
@@ -432,7 +434,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
     }
 
     public boolean hasInternalActivityWithName(String name) {
-        LinkedList<AvatarADActivity> list  = getFullActivityList();
+        List<AvatarADActivity> list  = getFullActivityList();
         for(AvatarADActivity s: list) {
             if (s.getValue().compareTo(name) ==0) {
                 return true;
@@ -441,6 +443,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
         return false;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
     }
@@ -471,6 +474,13 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement
     public boolean isACompositeActivity() {
         return (nbInternalTGComponent > 0);
     }
-
-
+    
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.AbstractCDElement#canBeDisabled()
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	return true;
+    }
 }
diff --git a/src/main/java/ui/avatarad/AvatarADAssociationConnector.java b/src/main/java/ui/avatarad/AvatarADAssociationConnector.java
index e0944602b82b1b7b559e3d99b41d6f4d08cd5cdc..56b3f58357b1cd738545ee55d39677f0e5b6f9f8 100755
--- a/src/main/java/ui/avatarad/AvatarADAssociationConnector.java
+++ b/src/main/java/ui/avatarad/AvatarADAssociationConnector.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADConnector;
 
 import java.awt.*;
 import java.awt.geom.Point2D;
@@ -55,14 +53,14 @@ import java.util.Vector;
 * @version 1.0 01/09/2011
 * @author Ludovic APVRILLE
  */
-public  class AvatarADAssociationConnector extends TGConnector {
+public  class AvatarADAssociationConnector extends TADConnector/* Issue #69 TGConnector*/ {
     int w, h;
     
     public AvatarADAssociationConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) {
         super(_x, _y,  _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
     }
     
-    
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
         if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) {
             g.drawLine(x1, y1, x2, y2);
@@ -75,6 +73,7 @@ public  class AvatarADAssociationConnector extends TGConnector {
     GraphicLib.dashedLine(g, x1, y1, x2, y2);
     }*/
     
+    @Override
     public TGComponent extraIsOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) {
             return this;
@@ -82,15 +81,21 @@ public  class AvatarADAssociationConnector extends TGConnector {
         return null;
     }
 	
+    @Override
     public int getType() {
         return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
     }
     
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	if ( p2 != null && ( p2.getFather() instanceof AvatarADStopState || p2.getFather() instanceof AvatarADStopFlow ) ) {
+    		return false;
+    	}
+    	
+    	return super.canBeDisabled();
+    }
 }
-
-
-
-
-
-
-
diff --git a/src/main/java/ui/avatarad/AvatarADBasicCanBeDisabledComponent.java b/src/main/java/ui/avatarad/AvatarADBasicCanBeDisabledComponent.java
new file mode 100644
index 0000000000000000000000000000000000000000..3465351a35fd8d8b989cd9dba0d3d7b8ff3c58f4
--- /dev/null
+++ b/src/main/java/ui/avatarad/AvatarADBasicCanBeDisabledComponent.java
@@ -0,0 +1,17 @@
+package ui.avatarad;
+
+import ui.TDiagramPanel;
+import ui.TGComponent;
+
+public abstract class AvatarADBasicCanBeDisabledComponent extends AvatarADBasicComponent {
+    
+    public AvatarADBasicCanBeDisabledComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos,
+			TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+	}
+
+	@Override
+    public boolean canBeDisabled() {
+    	return true;
+    }
+}
diff --git a/src/main/java/ui/avatarad/AvatarADBasicComponent.java b/src/main/java/ui/avatarad/AvatarADBasicComponent.java
index 3721dec6eb48bca9156d717f45c839ab9a869360..8dc5982201fc7ef212c8ad9df97a754425d6f725 100644
--- a/src/main/java/ui/avatarad/AvatarADBasicComponent.java
+++ b/src/main/java/ui/avatarad/AvatarADBasicComponent.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import ui.*;
@@ -51,16 +48,18 @@ import ui.*;
  * @author Ludovic APVRILLE
  */
 public abstract class AvatarADBasicComponent extends TGCScalableWithoutInternalComponent implements SwallowedTGComponent {
-    private int lineLength = 5;
+   // private int lineLength = 5;
 
     public AvatarADBasicComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
     }
 
+    @Override
     public void resizeWithFather() {
         if ((father != null) && (father instanceof AvatarADActivity)) {
             // Too large to fit in the father? -> resize it!
@@ -70,5 +69,4 @@ public abstract class AvatarADBasicComponent extends TGCScalableWithoutInternalC
             setMoveCd(x, y);
         }
     }
-
 }
diff --git a/src/main/java/ui/avatarad/AvatarADChoice.java b/src/main/java/ui/avatarad/AvatarADChoice.java
index 7830ed0ca7308baa6bd7ad3ee2d7c1ba32901121..b261c689a536b2cd5b9a24190771f5bf4b004693 100755
--- a/src/main/java/ui/avatarad/AvatarADChoice.java
+++ b/src/main/java/ui/avatarad/AvatarADChoice.java
@@ -36,17 +36,15 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
-import java.awt.geom.Line2D;
+import ui.EmbeddedComment;
+import ui.SwallowedTGComponent;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADChoice;
 
 /**
    * Class AvatarADChoice
@@ -55,125 +53,138 @@ import java.awt.geom.Line2D;
    * @version 1.0 01/09/2011
    * @author Ludovic APVRILLE
  */
-public class AvatarADChoice extends TGCScalableWithInternalComponent implements SwallowedTGComponent, EmbeddedComment, BasicErrorHighlight {
-    private int lineLength = 10;
-    private int lineOutLength = 25;
-    private int textX1, textY1, textX2, textY2, textX3, textY3;
+public class AvatarADChoice extends TADChoice /* Issue #69 TGCScalableWithInternalComponent*/ implements SwallowedTGComponent, EmbeddedComment/*, BasicErrorHighlight*/ {
+//    private int lineLength = 10;
+//    private int lineOutLength = 25;
+//    private int textX1, textY1, textX2, textY2, textX3, textY3;
 
     protected int stateOfError = 0; // Not yet checked
 
     public AvatarADChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-
-        initScaling(30, 30);
-        oldScaleFactor = tdp.getZoom();
-
-        textX1 = -lineOutLength;
-        textY1 = height/2 - 5;
-        textX2 = width + 5;
-        textY2 = height/2 - 5;
-        textX3 = width /2 + 5;
-        textY3 = height + 15;
-
+//
+//        initScaling(30, 30);
+//        oldScaleFactor = tdp.getZoom();
+//
+//        textX1 = -lineOutLength;
+//        textY1 = height/2 - 5;
+//        textX2 = width + 5;
+//        textY2 = height/2 - 5;
+//        textX3 = width /2 + 5;
+//        textY3 = height + 15;
+//
+//        nbConnectingPoint = 4;
+//        connectingPoint = new TGConnectingPoint[nbConnectingPoint];
+//        connectingPoint[0] = new AvatarADConnectingPoint(this, 0, -lineLength, true, false, 0.5, 0.0);
+//        connectingPoint[1] = new AvatarADConnectingPoint(this, -lineOutLength, 0, false, true, 0.0, 0.5);
+//        connectingPoint[2] = new AvatarADConnectingPoint(this, lineOutLength, 0, false, true, 1.0, 0.5);
+//        connectingPoint[3] = new AvatarADConnectingPoint(this, 0, lineOutLength,  false, true, 0.5, 1.0);
+//
+//        nbInternalTGComponent = 3;
+//        tgcomponent = new TGComponent[nbInternalTGComponent];
+//
+//        TGCScalableOneLineText tgc = new TGCScalableOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 1");
+//        tgcomponent[0] = tgc;
+//
+//        tgc = new TGCScalableOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 2");
+//        tgcomponent[1] = tgc;
+//
+//        tgc = new TGCScalableOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 3");
+//        tgcomponent[2] = tgc;
+//
+//        moveable = true;
+//        editable = false;
+//        removable = true;
+//
+//        name = "choice";
+//
+//        myImageIcon = IconManager.imgic208;
+    }
+    
+    @Override
+    protected void createConnectingPoints() {
         nbConnectingPoint = 4;
         connectingPoint = new TGConnectingPoint[nbConnectingPoint];
         connectingPoint[0] = new AvatarADConnectingPoint(this, 0, -lineLength, true, false, 0.5, 0.0);
         connectingPoint[1] = new AvatarADConnectingPoint(this, -lineOutLength, 0, false, true, 0.0, 0.5);
         connectingPoint[2] = new AvatarADConnectingPoint(this, lineOutLength, 0, false, true, 1.0, 0.5);
         connectingPoint[3] = new AvatarADConnectingPoint(this, 0, lineOutLength,  false, true, 0.5, 1.0);
-
-        nbInternalTGComponent = 3;
-        tgcomponent = new TGComponent[nbInternalTGComponent];
-
-        TGCScalableOneLineText tgc = new TGCScalableOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 1");
-        tgcomponent[0] = tgc;
-
-        tgc = new TGCScalableOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 2");
-        tgcomponent[1] = tgc;
-
-        tgc = new TGCScalableOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 3");
-        tgcomponent[2] = tgc;
-
-        moveable = true;
-        editable = false;
-        removable = true;
-
-        name = "choice";
-
-        myImageIcon = IconManager.imgic208;
-    }
-
-    public void internalDrawing(Graphics g) {
-        if (stateOfError > 0)  {
-            Color c = g.getColor();
-            switch(stateOfError) {
-            case ErrorHighlight.OK:
-                g.setColor(ColorManager.CHOICE);
-                break;
-            default:
-                g.setColor(ColorManager.UNKNOWN_BOX_ACTION);
-            }
-            // Making the polygon
-            int [] px1 = {x+(width/2), x+width+2, x + (width/2), x};
-            int [] py1 = {y, y + height/2, y+height+2, y+height/2};
-            g.fillPolygon(px1, py1, 4);
-            g.setColor(c);
-        }
-
-        g.drawLine(x+(width/2), y, x+width, y + height/2);
-        g.drawLine(x, y + height / 2, x+width/2, y + height);
-        g.drawLine(x + width/2, y, x, y + height/2);
-        g.drawLine(x + width, y + height/2, x + width/2, y + height);
-
-        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
-        g.drawLine(x, y + height/2, x-lineOutLength, y + height/2);
-        g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2);
-        g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength);
-    }
-
-    public TGComponent isOnOnlyMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-
-        if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        return null;
     }
-
-    public String getGuard(int i) {
-        if ((i>=0) && (i<nbInternalTGComponent)) {
-            return tgcomponent[i].getValue();
-        }
-        return "";
-    }
-
-    public void setGuard(String guard, int i) {
-        if ((i>=0) && (i<nbInternalTGComponent)) {
-            tgcomponent[i].setValue(guard);
-        }
-    }
-
+//
+//    @Override
+//    public void internalDrawing(Graphics g) {
+//        if (stateOfError > 0)  {
+//            Color c = g.getColor();
+//            switch(stateOfError) {
+//            case ErrorHighlight.OK:
+//                g.setColor(ColorManager.CHOICE);
+//                break;
+//            default:
+//                g.setColor(ColorManager.UNKNOWN_BOX_ACTION);
+//            }
+//            // Making the polygon
+//            int [] px1 = {x+(width/2), x+width+2, x + (width/2), x};
+//            int [] py1 = {y, y + height/2, y+height+2, y+height/2};
+//            g.fillPolygon(px1, py1, 4);
+//            g.setColor(c);
+//        }
+//
+//        g.drawLine(x+(width/2), y, x+width, y + height/2);
+//        g.drawLine(x, y + height / 2, x+width/2, y + height);
+//        g.drawLine(x + width/2, y, x, y + height/2);
+//        g.drawLine(x + width, y + height/2, x + width/2, y + height);
+//
+//        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
+//        g.drawLine(x, y + height/2, x-lineOutLength, y + height/2);
+//        g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2);
+//        g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength);
+//    }
+//
+//    @Override
+//    public TGComponent isOnOnlyMe(int _x, int _y) {
+//        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//            return this;
+//        }
+//
+//        if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        return null;
+//    }
+//
+//    public String getGuard(int i) {
+//        if ((i>=0) && (i<nbInternalTGComponent)) {
+//            return tgcomponent[i].getValue();
+//        }
+//        return "";
+//    }
+//
+//    public void setGuard(String guard, int i) {
+//        if ((i>=0) && (i<nbInternalTGComponent)) {
+//            tgcomponent[i].setValue(guard);
+//        }
+//    }
+
+    @Override
     public void resizeWithFather() {
         if ((father != null) && (father instanceof AvatarADActivity)) {
             // Too large to fit in the father? -> resize it!
@@ -184,16 +195,17 @@ public class AvatarADChoice extends TGCScalableWithInternalComponent implements
         }
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.AAD_CHOICE;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
     }
-
-    public void setStateAction(int _stateAction) {
-        stateOfError = _stateAction;
-    }
-
+//
+//    public void setStateAction(int _stateAction) {
+//        stateOfError = _stateAction;
+//    }
 }
diff --git a/src/main/java/ui/avatarad/AvatarADConnectingPoint.java b/src/main/java/ui/avatarad/AvatarADConnectingPoint.java
index 655f69cda3e4c7caa38512a1da0612ec3f911cdc..607ee7b091f836835dce051d07551b1d627140ec 100644
--- a/src/main/java/ui/avatarad/AvatarADConnectingPoint.java
+++ b/src/main/java/ui/avatarad/AvatarADConnectingPoint.java
@@ -36,12 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
-
 import ui.CDElement;
 import ui.TGComponentManager;
 import ui.TGConnectingPointWidthHeight;
@@ -53,14 +49,14 @@ import ui.TGConnectingPointWidthHeight;
  * @version 1.0 01/09/2011
  * @author Ludovic APVRILLE
  */
-public class AvatarADConnectingPoint extends  TGConnectingPointWidthHeight {
+public class AvatarADConnectingPoint extends TGConnectingPointWidthHeight {
     
     public AvatarADConnectingPoint(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) {
         super(_container, _x, _y, _in, _out, _w, _h);
     }
     
+    @Override
     public boolean isCompatibleWith(int type) {
         return type == TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
     }
-    
 }
diff --git a/src/main/java/ui/avatarad/AvatarADJunction.java b/src/main/java/ui/avatarad/AvatarADJunction.java
index da184855f6160a4612d9c4756e472263fc8d1cca..31af72842d15137bd73303c2d5ce0d136aaee6ea 100755
--- a/src/main/java/ui/avatarad/AvatarADJunction.java
+++ b/src/main/java/ui/avatarad/AvatarADJunction.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarad;
 
 import ui.TDiagramPanel;
@@ -48,7 +47,6 @@ import ui.util.IconManager;
 import java.awt.*;
 import java.awt.geom.Line2D;
 
-
 /**
  * Class AvatarADJunction
  * Junction between several activities, without any synchronization. To be used in avatar activity diagrams
@@ -102,7 +100,7 @@ public class AvatarADJunction extends AvatarADBasicComponent {
         myImageIcon = IconManager.imgic212;
     }
 
-
+    @Override
     public void internalDrawing(Graphics g) {
         //g.drawLine(x +width/2, y,  x+width/2, y + height);
         //g.drawLine(x, y + (height/2), x+width, y + (height/2));
@@ -118,6 +116,7 @@ public class AvatarADJunction extends AvatarADBasicComponent {
         g.drawLine(x + width / 2 + range, y + height / 2, x + width / 2, y + height / 2 + range);
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         // vertical line
         if ((int) (Line2D.ptSegDistSq(x + width / 2, y, x + width / 2, y + height, _x, _y)) < distanceSelected) {
@@ -130,12 +129,12 @@ public class AvatarADJunction extends AvatarADBasicComponent {
         return null;
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.AAD_JUNCTION;
     }
 
-    public int getDefaultConnector() {
-        return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
-    }
-
+//    public int getDefaultConnector() {
+//        return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
+//    }
 }
diff --git a/src/main/java/ui/avatarad/AvatarADPanel.java b/src/main/java/ui/avatarad/AvatarADPanel.java
index 8681fecd95e2140d52642c9042d56ce1298f56ed..a45b09bfcc201193d63fa4277fbe1a2dcbc733f8 100644
--- a/src/main/java/ui/avatarad/AvatarADPanel.java
+++ b/src/main/java/ui/avatarad/AvatarADPanel.java
@@ -36,21 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
-//import java.awt.*;
-
 import ui.*;
 
 import java.util.ArrayList;
 import java.util.Iterator;
-
-//import org.w3c.dom.*;
-//import org.xml.sax.*;
-//import javax.xml.parsers.*;
+import java.util.List;
 
 /**
  * Class AvatarADPanel
@@ -71,41 +63,52 @@ public class AvatarADPanel extends TDiagramPanel implements TDPWithAttributes{
         addMouseMotionListener(tdmm);*/
     }
     
+    @Override
     public boolean actionOnDoubleClick(TGComponent tgc) {
         return true;
     }
     
+    @Override
     public boolean actionOnAdd(TGComponent tgc) {
         return false;
     }
+
+    @Override
     public boolean actionOnValueChanged(TGComponent tgc) {
         return false;
     }
     
+    @Override
     public  boolean actionOnRemove(TGComponent tgc) {
         return false;
     }
     
+    @Override
     public String getXMLHead() {
         return "<AvatarADPanel name=\"" + name + "\"" + sizeParam() + zoomParam() + " >";
     }
     
+    @Override
     public String getXMLTail() {
         return "</AvatarADPanel>";
     }
     
+    @Override
     public String getXMLSelectedHead() {
         return "<AvatarADPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >";
     }
     
+    @Override
     public String getXMLSelectedTail() {
         return "</AvatarADPanelCopy>";
     }
     
+    @Override
     public String getXMLCloneHead() {
         return "<AvatarADPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >";
     }
     
+    @Override
     public String getXMLCloneTail() {
         return "</AvatarADPanelCopy>";
     }
@@ -118,47 +121,41 @@ public class AvatarADPanel extends TDiagramPanel implements TDPWithAttributes{
         // Position correctly guards of choice
     }
     
-    
-	
+    @Override
 	public boolean hasAutoConnect() {
 		return false;
 	}
 	
 	public void setConnectorsToFront() {
 		TGComponent tgc;
-		
-		//
-		
-        Iterator iterator = componentList.listIterator();
+        Iterator<TGComponent> iterator = componentList.listIterator();
         
-		ArrayList<TGComponent> list = new ArrayList<TGComponent>();
+		List<TGComponent> list = new ArrayList<TGComponent>();
 		
         while(iterator.hasNext()) {
-            tgc = (TGComponent)(iterator.next());
+            tgc = iterator.next();
 			if (!(tgc instanceof TGConnector)) {
 				list.add(tgc);
 			}
 		}
 		
-		//
 		for(TGComponent tgc1: list) {
-			//
 			componentList.remove(tgc1);
 			componentList.add(tgc1);
 		}
 	}
 	
 	public void alignPartitions() {
-        AvatarADPartition ontheLeft = null, sdi;
+        AvatarADPartition ontheLeft = null;//, sdi;
         int x = getMaxX(),xtmp;
         int y;
         int i;
         TGComponent tgc;
-        Iterator iterator = componentList.listIterator();
+        Iterator<TGComponent> iterator = componentList.listIterator();
         
         // search for the instances which is the most on the left
         while(iterator.hasNext()) {
-            tgc = (TGComponent)(iterator.next());
+            tgc = iterator.next();
             if (tgc instanceof AvatarADPartition) {
                 xtmp = tgc.getX();
                 if (xtmp < x) {
@@ -180,7 +177,5 @@ public class AvatarADPanel extends TDiagramPanel implements TDPWithAttributes{
                 tgc.setCd(tgc.getX(), y);
             }
         }
-        
     }
-    
 }
diff --git a/src/main/java/ui/avatarad/AvatarADParallel.java b/src/main/java/ui/avatarad/AvatarADParallel.java
index 311bf463dc4decc522b57ec22daa145a0f039ed2..0a583b428351df3d88ac7321c0b8f2b91165fb69 100755
--- a/src/main/java/ui/avatarad/AvatarADParallel.java
+++ b/src/main/java/ui/avatarad/AvatarADParallel.java
@@ -36,17 +36,17 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
+import java.awt.Graphics;
+import java.util.Arrays;
+import java.util.List;
+
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.EnablingADConnectorVisitor;
 import ui.util.IconManager;
 
-import java.awt.*;
-
 /**
  * Class AvatarADParallel
  * Parallel operator. All activities start together
@@ -55,9 +55,9 @@ import java.awt.*;
  * @version 1.0 02/09/2011
  * @author Ludovic APVRILLE
  */
-public class AvatarADParallel extends AvatarADBasicComponent{
+public class AvatarADParallel extends AvatarADBasicCanBeDisabledComponent /* Issue #69 AvatarADBasicComponent*/ {
     private int lineLength = 0;
-    private int textX, textY;
+   // private int textX, textY;
     
     public AvatarADParallel(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -65,8 +65,8 @@ public class AvatarADParallel extends AvatarADBasicComponent{
         initScaling(150, 5);
         oldScaleFactor = tdp.getZoom();
         
-        textX = width - 10;
-        textY = height - 8;
+//        textX = width - 10;
+//        textY = height - 8;
         
         nbConnectingPoint = 10;
         connectingPoint = new TGConnectingPoint[10];
@@ -93,11 +93,13 @@ public class AvatarADParallel extends AvatarADBasicComponent{
         myImageIcon = IconManager.imgic206;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         g.drawRect(x, y, width, height);
         g.fillRect(x, y, width, height);
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -113,18 +115,37 @@ public class AvatarADParallel extends AvatarADBasicComponent{
         tgcomponent[0].setValue(val);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.AAD_PARALLEL;
     }
+//    
+//   	public int getDefaultConnector() {
+//      return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
+//    }
+	
+    public List<TGConnectingPoint> getEnterConnectingPoints() {
+    	return Arrays.asList( Arrays.copyOfRange( connectingPoint, 0, 5 ) );
+    }
+	
+    public List<TGConnectingPoint> getExitConnectingPoints() {
+    	return Arrays.asList( Arrays.copyOfRange( connectingPoint, 5, connectingPoint.length ) );
+    }
     
-   	public int getDefaultConnector() {
-      return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
+    /**
+     * Issue #69
+     * @param _enabled
+     */
+    @Override
+    public void setEnabled( final boolean _enabled ) {
+    	super.setEnabled( _enabled );
+    	
+    	final List<TGConnectingPoint> enterConPoints = getEnterConnectingPoints();
+    	
+    	for ( final TGConnectingPoint point : connectingPoint ) {
+    		if ( !enterConPoints.contains( point ) ) {
+    			point.acceptForward( new EnablingADConnectorVisitor( _enabled ) );
+        	}
+    	}
     }
 }
-
-
-
-
-
-
-
diff --git a/src/main/java/ui/avatarad/AvatarADPartition.java b/src/main/java/ui/avatarad/AvatarADPartition.java
index 4719fb9847c0482ff66b05174577a7201285243f..7410edfa4fe4373a61b04cc8ed0c8bf987b15359 100755
--- a/src/main/java/ui/avatarad/AvatarADPartition.java
+++ b/src/main/java/ui/avatarad/AvatarADPartition.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import myutil.GraphicLib;
@@ -55,18 +52,18 @@ import java.awt.*;
  * @author Ludovic APVRILLE
  */
 public class AvatarADPartition extends AvatarADBasicComponent implements EmbeddedComment{
-    private int lineLength = 5;
+    //private int lineLength = 5;
     
     public AvatarADPartition(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
         
-	initScaling(10, 500);
-	oldScaleFactor = tdp.getZoom();
-	
-	minWidth = (int)(10* tdp.getZoom());
-	maxWidth = (int)(30* tdp.getZoom());
-	minHeight = (int)(250* tdp.getZoom());
-	maxHeight = (int)(1500* tdp.getZoom());
+		initScaling(10, 500);
+		oldScaleFactor = tdp.getZoom();
+		
+		minWidth = (int)(10* tdp.getZoom());
+		maxWidth = (int)(30* tdp.getZoom());
+		minHeight = (int)(250* tdp.getZoom());
+		maxHeight = (int)(1500* tdp.getZoom());
 	
         nbConnectingPoint = 0;
 
@@ -81,11 +78,13 @@ public class AvatarADPartition extends AvatarADBasicComponent implements Embedde
         myImageIcon = IconManager.imgic222;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
        g.drawLine(x+(width/2), y, x+(width/2), y +height);
        g.drawLine(x+(width/2)+1, y, x+(width/2)+1, y +height);
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -94,12 +93,12 @@ public class AvatarADPartition extends AvatarADBasicComponent implements Embedde
         return null;
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.AAD_PARTITION;
     }
-    
-    public int getDefaultConnector() {
-      return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
-    }
-    
+//    
+//    public int getDefaultConnector() {
+//      return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
+//    }
 }
diff --git a/src/main/java/ui/avatarad/AvatarADSendSignalAction.java b/src/main/java/ui/avatarad/AvatarADSendSignalAction.java
index 6b48304f34acbff3edaaa46b7d60e39206c6c682..6c01f804d1f0ef66e6ab9c7633e580a3f2ce83e3 100755
--- a/src/main/java/ui/avatarad/AvatarADSendSignalAction.java
+++ b/src/main/java/ui/avatarad/AvatarADSendSignalAction.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import myutil.GraphicLib;
@@ -56,7 +53,7 @@ import java.awt.geom.Line2D;
    * @version 1.0 02/09/2011
    * @author Ludovic APVRILLE
  */
-public class AvatarADSendSignalAction extends AvatarADBasicComponent implements EmbeddedComment, BasicErrorHighlight {
+public class AvatarADSendSignalAction extends AvatarADBasicCanBeDisabledComponent/* Issue #69 AvatarADBasicComponent*/ implements EmbeddedComment, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -72,7 +69,7 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements
         minWidth = (int)(30* tdp.getZoom());
         oldScaleFactor = tdp.getZoom();
 	
-	nbConnectingPoint = 2;
+        nbConnectingPoint = 2;
         connectingPoint = new TGConnectingPoint[2];
         connectingPoint[0] = new AvatarADConnectingPoint(this, 0, -lineLength, true, false, 0.5, 0.0);
         connectingPoint[1] = new AvatarADConnectingPoint(this, 0, lineLength, false, true, 0.5, 1.0);
@@ -87,8 +84,8 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements
         myImageIcon = IconManager.imgic904;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
-
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -142,14 +139,11 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements
         g.drawLine(x+width-linebreak, y, x+width, y+height/2);
         g.drawLine(x+width-linebreak, y+height, x+width, y+height/2);
 
-
-
         g.drawString("sig", x+(width-w) / 2, y);
         g.drawString(value, x + (width - w) / 2 , y + (int)((textY*tdp.getZoom())));
-
-
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -166,6 +160,7 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements
         return value;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
 
@@ -185,12 +180,12 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements
 
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.AAD_SEND_SIGNAL_ACTION;
     }
 
-
-
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
diff --git a/src/main/java/ui/avatarad/AvatarADStartState.java b/src/main/java/ui/avatarad/AvatarADStartState.java
index f24098652cec127dcd02f5f17817c18d880018d5..4bbe93d0e61fbc5430960480516e552317f1404e 100755
--- a/src/main/java/ui/avatarad/AvatarADStartState.java
+++ b/src/main/java/ui/avatarad/AvatarADStartState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import myutil.GraphicLib;
@@ -55,13 +52,13 @@ import java.awt.geom.Line2D;
  * @version 1.0 01/09/2011
  * @author Ludovic APVRILLE
  */
-public class AvatarADStartState extends AvatarADBasicComponent implements EmbeddedComment{
+public class AvatarADStartState extends AvatarADBasicComponent implements EmbeddedComment {
     private int lineLength = 5;
     
     public AvatarADStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-	initScaling(15, 15);
+        initScaling(15, 15);
         oldScaleFactor = tdp.getZoom();
         
         nbConnectingPoint = 1;
@@ -79,11 +76,13 @@ public class AvatarADStartState extends AvatarADBasicComponent implements Embedd
         myImageIcon = IconManager.imgic222;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         g.fillOval(x, y, width, height);
         g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -96,12 +95,13 @@ public class AvatarADStartState extends AvatarADBasicComponent implements Embedd
         return null;
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.AAD_START_STATE;
     }
-    
-    public int getDefaultConnector() {
-      return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
-    }
+//    
+//    public int getDefaultConnector() {
+//      return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
+//    }
     
 }
diff --git a/src/main/java/ui/avatarad/AvatarADStopFlow.java b/src/main/java/ui/avatarad/AvatarADStopFlow.java
index a3bbdfb88d77142023f144e635a80517d215cf06..be3ca80a2346c96112430d54a94e4a4312b3a525 100755
--- a/src/main/java/ui/avatarad/AvatarADStopFlow.java
+++ b/src/main/java/ui/avatarad/AvatarADStopFlow.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import myutil.GraphicLib;
@@ -55,7 +52,7 @@ import java.awt.*;
  * @author Ludovic APVRILLE
  */
 public class AvatarADStopFlow extends AvatarADBasicComponent implements EmbeddedComment, AllowedBreakpoint {
-    private int internalCircleSize = 16;
+//    private int internalCircleSize = 16;
     private int lineLength = 5;
 
     public AvatarADStopFlow(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
@@ -79,6 +76,7 @@ public class AvatarADStopFlow extends AvatarADBasicComponent implements Embedded
         myImageIcon = IconManager.imgic210;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         ColorManager.setColor(g, state, 0);
         //g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize);
@@ -88,6 +86,7 @@ public class AvatarADStopFlow extends AvatarADBasicComponent implements Embedded
         g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -95,12 +94,12 @@ public class AvatarADStopFlow extends AvatarADBasicComponent implements Embedded
         return null;
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.AAD_STOP_FLOW;
     }
-
-    public int getDefaultConnector() {
-        return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
-    }
-
+//
+//    public int getDefaultConnector() {
+//        return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
+//    }
 }
diff --git a/src/main/java/ui/avatarad/AvatarADStopState.java b/src/main/java/ui/avatarad/AvatarADStopState.java
index 875892b8efc6209b852efa54df0bbf0342b7a59a..e3f1e919f418aef0ab767360d4ae4c034d8fe472 100755
--- a/src/main/java/ui/avatarad/AvatarADStopState.java
+++ b/src/main/java/ui/avatarad/AvatarADStopState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarad;
 
 import myutil.GraphicLib;
@@ -79,6 +76,7 @@ public class AvatarADStopState extends AvatarADBasicComponent implements Embedde
         myImageIcon = IconManager.imgic210;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         ColorManager.setColor(g, state, 0);
         g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize);
@@ -86,7 +84,7 @@ public class AvatarADStopState extends AvatarADBasicComponent implements Embedde
         g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
     }
 
-
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -94,12 +92,12 @@ public class AvatarADStopState extends AvatarADBasicComponent implements Embedde
         return null;
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.AAD_STOP_STATE;
     }
-
-    public int getDefaultConnector() {
-        return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
-    }
-
+//
+//    public int getDefaultConnector() {
+//        return TGComponentManager.AAD_ASSOCIATION_CONNECTOR;
+//    }
 }
diff --git a/src/main/java/ui/avatarad/AvatarADToolBar.java b/src/main/java/ui/avatarad/AvatarADToolBar.java
index f491f119af557e68cd28ca8bf28f2b94e23632e9..b1ba6354ffc0924c3f5b0bee4f23f5e6a1ebe3c2 100644
--- a/src/main/java/ui/avatarad/AvatarADToolBar.java
+++ b/src/main/java/ui/avatarad/AvatarADToolBar.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarad;
 
 import ui.MainGUI;
@@ -45,9 +44,6 @@ import ui.TToolBar;
 
 import javax.swing.*;
 
-//import java.awt.*;
-//import java.awt.event.*;
-
 /**
  * Class AvatarADToolBar
  * Implements the toolbar to be used in conjunction with the panel of
@@ -62,7 +58,6 @@ public class AvatarADToolBar extends TToolBar {
 
     public AvatarADToolBar(MainGUI _mgui) {
         super(_mgui);
-
     }
 
     protected void setActive(boolean b) {
@@ -162,14 +157,10 @@ public class AvatarADToolBar extends TToolBar {
         button = this.add(mgui.actions[TGUIAction.AAD_ALIGN_PARTITION]);
         button.addMouseListener(mgui.mouseHandler);
 
-
         /*this.addSeparator();
           this.addSeparator();
 
           button = this.add(mgui.actions[TGUIAction.ACT_TOGGLE_ATTR]);
           button.addMouseListener(mgui.mouseHandler);*/
-
-
     }
-
 } // Class
diff --git a/src/main/java/ui/avatarbd/AvatarBDBlock.java b/src/main/java/ui/avatarbd/AvatarBDBlock.java
index e5e329766904ad9895140bb6227f5caf972fb344..5edc8eddbf1208c35bd8a3ee7ad96d7af27385a9 100644
--- a/src/main/java/ui/avatarbd/AvatarBDBlock.java
+++ b/src/main/java/ui/avatarbd/AvatarBDBlock.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarbd;
 
 import myutil.Conversion;
@@ -57,16 +56,20 @@ import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.io.PipedInputStream;
 import java.io.PipedOutputStream;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 
 
 import javax.swing.*;
-import java.awt.*;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 import java.util.HashMap;
 import proverifspec.ProVerifResultTrace;
 import proverifspec.ProVerifResultTraceStep;
@@ -89,8 +92,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
     private static String stereotype = "block";
     private static String stereotypeCrypto = "cryptoblock";
 
-    protected static ArrayList<String> BLOCK_TYPE_STR = new ArrayList<String>(Arrays.asList("block", "cryptoblock"));
-    protected static ArrayList<Color> BLOCK_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_BLOCK, ColorManager.AVATAR_BLOCK));
+    protected static List<String> BLOCK_TYPE_STR = new ArrayList<String>(Arrays.asList("block", "cryptoblock"));
+    protected static List<Color> BLOCK_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_BLOCK, ColorManager.AVATAR_BLOCK));
     private int typeStereotype = 0; // <<block>> by default
 
     private int maxFontSize = 12;
@@ -111,13 +114,13 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
 
     // TAttribute, AvatarMethod, AvatarSignal
-    protected LinkedList<TAttribute> myAttributes;
-    protected LinkedList<AvatarMethod> myMethods;
-    protected LinkedList<AvatarSignal> mySignals;
+    protected List<TAttribute> myAttributes;
+    protected List<AvatarMethod> myMethods;
+    protected List<AvatarSignal> mySignals;
     protected String[] globalCode;
 
-	protected HashMap<TAttribute, ProVerifResultTrace> attrTraceMap = new HashMap<TAttribute, ProVerifResultTrace>();
-	protected HashMap<TAttribute, Integer> attrLocMap = new HashMap<TAttribute, Integer>();
+	protected Map<TAttribute, ProVerifResultTrace> attrTraceMap = new HashMap<TAttribute, ProVerifResultTrace>();
+	protected Map<TAttribute, Integer> attrLocMap = new HashMap<TAttribute, Integer>();
 	
     public String oldValue;
 
@@ -195,7 +198,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         this.mySignals.add(sig);
     }
 
-    public void internalDrawingAux(Graphics graph) {
+    private void internalDrawingAux(Graphics graph) {
 
         //TraceManager.addDev("Block drawing aux = " + this);
 
@@ -595,7 +598,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
     }
 
-
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -621,6 +624,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return result;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
         int textX = (int) (this.textX * this.tdp.getZoom());
         if (iconIsDrawn) {
@@ -814,16 +818,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         _jdab.enableJavaKeyword(false);
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.AVATARBD_BLOCK;
     }
 
+    @Override
     public boolean acceptSwallowedTGComponent(TGComponent tgc) {
         return tgc instanceof AvatarBDBlock || tgc instanceof AvatarBDLibraryFunction;
 
     }
 
+    @Override
     public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
         boolean swallowed = false;
 
@@ -871,6 +877,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return true;
     }
 
+    @Override
     public void removeSwallowedTGComponent(TGComponent tgc) {
         removeMyInternalComponent(tgc, false);
     }
@@ -908,6 +915,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return false;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<blockType data=\"");
@@ -1123,7 +1131,6 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         }
 
         //TraceManager.addDev("LEP End Block  = " + this);
-
     }
 
     public boolean addStereotype(String s, int rgb) {
@@ -1191,7 +1198,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return ret;
     }
 
-
+    @Override
     public void hasBeenResized() {
         for (int i = 0; i < nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarBDBlock) {
@@ -1207,6 +1214,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
     }
 
+    @Override
     public void resizeWithFather() {
         if ((father != null) && (father instanceof AvatarBDBlock)) {
             // Too large to fit in the father? -> resize it!
@@ -1217,8 +1225,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         }
     }
 
-    public LinkedList<AvatarBDBlock> getBlockList() {
-        LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>();
+    public List<AvatarBDBlock> getBlockList() {
+        List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>();
         for (int i = 0; i < nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarBDBlock) {
                 list.add((AvatarBDBlock) (tgcomponent[i]));
@@ -1227,8 +1235,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return list;
     }
 
-    public LinkedList<AvatarBDBlock> getFullBlockList() {
-        LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>();
+    public List<AvatarBDBlock> getFullBlockList() {
+        List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>();
         for (int i = 0; i < nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarBDBlock) {
                 list.add((AvatarBDBlock) (tgcomponent[i]));
@@ -1238,8 +1246,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return list;
     }
 
-    public LinkedList<AvatarBDLibraryFunction> getFullLibraryFunctionList() {
-        LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction>();
+    public List<AvatarBDLibraryFunction> getFullLibraryFunctionList() {
+        List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction>();
         for (int i = 0; i < nbInternalTGComponent; i++) {
             if (this.tgcomponent[i] instanceof AvatarBDLibraryFunction)
                 list.add((AvatarBDLibraryFunction) this.tgcomponent[i]);
@@ -1251,13 +1259,13 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
     }
 
     public boolean hasInternalBlockWithName(String name) {
-        LinkedList<AvatarBDBlock> list = getFullBlockList();
+        List<AvatarBDBlock> list = getFullBlockList();
         for (AvatarBDBlock b : list) {
             if (b.getValue().compareTo(name) == 0) {
                 return true;
             }
         }
-        LinkedList<AvatarBDLibraryFunction> llist = getFullLibraryFunctionList();
+        List<AvatarBDLibraryFunction> llist = getFullLibraryFunctionList();
         for (AvatarBDLibraryFunction b : llist) {
             if (b.getFunctionName().compareTo(name) == 0) {
                 return true;
@@ -1267,12 +1275,12 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return false;
     }
 
-
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.AVATARBD_PORT_CONNECTOR;
     }
 
-    public LinkedList<TAttribute> getAttributeList() {
+    public List<TAttribute> getAttributeList() {
         return this.myAttributes;
     }
 
@@ -1287,54 +1295,54 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         this.myAttributes.add(ta);
     }
 
-    public LinkedList<AvatarMethod> getMethodList() {
+    public List<AvatarMethod> getMethodList() {
         return this.myMethods;
     }
 
-    public LinkedList<AvatarSignal> getSignalList() {
+    public List<AvatarSignal> getSignalList() {
         return this.mySignals;
     }
 
-    public LinkedList<AvatarSignal> getOutSignalList() {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>();
+    public List<AvatarSignal> getOutSignalList() {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal>();
         for (AvatarSignal s : this.mySignals)
             if (s.getInOut() == AvatarSignal.OUT)
                 v.add(s);
         return v;
     }
 
-    public LinkedList<AvatarSignal> getInSignalList() {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>();
+    public List<AvatarSignal> getInSignalList() {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal>();
         for (AvatarSignal s : this.mySignals)
             if (s.getInOut() == AvatarSignal.IN)
                 v.add(s);
         return v;
     }
 
-    public LinkedList<AvatarMethod> getAllMethodList() {
+    public List<AvatarMethod> getAllMethodList() {
         if (getFather() == null) {
             return this.myMethods;
         }
 
-        LinkedList<AvatarMethod> v = new LinkedList<AvatarMethod>();
+        List<AvatarMethod> v = new LinkedList<AvatarMethod>();
         v.addAll(this.myMethods);
         v.addAll(((AvatarBDBlock) getFather()).getAllMethodList());
         return v;
     }
 
-    public LinkedList<AvatarSignal> getAllSignalList() {
+    public List<AvatarSignal> getAllSignalList() {
         if (getFather() == null) {
             return this.mySignals;
         }
 
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>();
+        List<AvatarSignal> v = new LinkedList<AvatarSignal>();
         v.addAll(this.mySignals);
         v.addAll(((AvatarBDBlock) getFather()).getAllSignalList());
         return v;
     }
 
-    public LinkedList<String> getAllTimerList() {
-        LinkedList<String> v = new LinkedList<String>();
+    public List<String> getAllTimerList() {
+        List<String> v = new LinkedList<String>();
 
         for (TAttribute a : this.myAttributes)
             if (a.getType() == TAttribute.TIMER)
@@ -1349,19 +1357,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return null;
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableSignals() {
+    public List<AvatarSignal> getListOfAvailableSignals() {
         return ((AvatarBDPanel) (tdp)).getListOfAvailableSignals(this);
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableOutSignals() {
+    public List<AvatarSignal> getListOfAvailableOutSignals() {
         return ((AvatarBDPanel) (tdp)).getListOfAvailableOutSignals(this);
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableInSignals() {
+    public List<AvatarSignal> getListOfAvailableInSignals() {
         return ((AvatarBDPanel) (tdp)).getListOfAvailableInSignals(this);
     }
 
-
     // _id may contain the full signal
     public AvatarSignal getSignalNameBySignalDef(String _id) {
         int index0 = _id.indexOf('(');
@@ -1494,6 +1501,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return -1;
     }
 
+    @Override
     public ImageIcon getImageIcon() {
         return myImageIcon;
     }
@@ -1507,11 +1515,11 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return this.getBlockName();
     }
 
+    @Override
     public String toString() {
         return "Block: " + getValue();
     }
 
-
     public String getAttributes() {
         String attr = "";
         for (TAttribute a: myAttributes) {
@@ -1525,9 +1533,4 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         }
         return attr;
     }
-
-
-
-
-
 }
diff --git a/src/main/java/ui/avatarbd/AvatarBDPanel.java b/src/main/java/ui/avatarbd/AvatarBDPanel.java
index 9d2e308199a6a3fb64df1decaaaf1d983904d3c1..70c04c57584998067fb3580f8e379caa8d44142b 100644
--- a/src/main/java/ui/avatarbd/AvatarBDPanel.java
+++ b/src/main/java/ui/avatarbd/AvatarBDPanel.java
@@ -36,12 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarbd;
 
-
 import myutil.Conversion;
 import myutil.TraceManager;
 import org.w3c.dom.Element;
@@ -61,7 +57,8 @@ import java.util.*;
    * @author Ludovic APVRILLE
  */
 public class AvatarBDPanel extends TDiagramPanel {
-    private LinkedList<AvatarBDStateMachineOwner> validated, ignored;
+    
+	private List<AvatarBDStateMachineOwner> validated, ignored;
     private String val = null, ign = null;
     private boolean optimized = true;
 
@@ -78,6 +75,7 @@ public class AvatarBDPanel extends TDiagramPanel {
           addMouseMotionListener(tdmm);*/
     }
 
+    @Override
     public boolean actionOnDoubleClick(TGComponent tgc) {
         //
         if (tgc instanceof AvatarBDBlock) {
@@ -94,6 +92,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return false;
     }
 
+    @Override
     public boolean actionOnAdd(TGComponent tgc) {
         if (tgc instanceof AvatarBDBlock) {
             AvatarBDBlock abdb = (AvatarBDBlock)(tgc);
@@ -109,12 +108,13 @@ public class AvatarBDPanel extends TDiagramPanel {
         return false;
     }
 
+    @Override
     public boolean actionOnRemove(TGComponent tgc) {
         if (tgc instanceof AvatarBDStateMachineOwner) {
             AvatarBDStateMachineOwner abdb = (AvatarBDStateMachineOwner) tgc;
             this.mgui.removeAvatarBlock (tp, abdb.getOwnerName());
             if (tgc instanceof AvatarBDBlock) {
-                LinkedList<AvatarBDBlock> list  = ((AvatarBDBlock) abdb).getFullBlockList();
+                List<AvatarBDBlock> list  = ((AvatarBDBlock) abdb).getFullBlockList();
                 for(AvatarBDBlock b: list)
                     mgui.removeAvatarBlock(tp, b.getBlockName());
 
@@ -130,44 +130,46 @@ public class AvatarBDPanel extends TDiagramPanel {
 
     public void updateSignalAttachement(AvatarBDBlock _b, AvatarBDPortConnector _conn) {
 
-	
-	// Set all signals of B as non connected
-	_b.setSignalsAsNonAttached();
-	
-	
-	Iterator iterator = getComponentList().listIterator();
-	while(iterator.hasNext()) {
-            TGComponent tgc = (TGComponent)(iterator.next());
-            if (tgc instanceof AvatarBDPortConnector) {
-		AvatarBDPortConnector port = (AvatarBDPortConnector)tgc;
-                AvatarBDBlock block1 = port.getAvatarBDBlock1();
-                AvatarBDBlock block2 = port.getAvatarBDBlock2();
-		if ((block1 != null) && (block2 != null)) {
-		    if ((_b == block1) || (_b == block2)) {
-			//TraceManager.addDev("Relation found");
-			LinkedList<String> l;
-			if (_b == block1) {
-			    l = port.getListOfSignalsOrigin();
-			} else {
-			    l = port.getListOfSignalsDestination();
-			}
-
-			for(String name: l) {
-			    name = AvatarSignal.getSignalNameFromFullSignalString(name);
-			    //TraceManager.addDev("Searching for " + name + " in block " + _b);
-			    AvatarSignal sig = _b.getAvatarSignalFromName(name);
-			    if (sig != null) {
-				//TraceManager.addDev("Sig " + name + " is attached to a relation");
-				sig.attachedToARelation = true;
-			    }
-			}
-		    }
-		}
-	    }
-	}
-    }
-    
-
+    	// Set all signals of B as non connected
+    	_b.setSignalsAsNonAttached();
+
+    	Iterator<TGComponent> iterator = getComponentList().listIterator();
+
+    	while(iterator.hasNext()) {
+    		TGComponent tgc = iterator.next();
+    		
+    		if (tgc instanceof AvatarBDPortConnector) {
+    			AvatarBDPortConnector port = (AvatarBDPortConnector)tgc;
+    			AvatarBDBlock block1 = port.getAvatarBDBlock1();
+    			AvatarBDBlock block2 = port.getAvatarBDBlock2();
+    			
+    			if ((block1 != null) && (block2 != null)) {
+    				if ((_b == block1) || (_b == block2)) {
+    					//TraceManager.addDev("Relation found");
+    					List<String> l;
+    					
+    					if (_b == block1) {
+    						l = port.getListOfSignalsOrigin();
+    					} else {
+    						l = port.getListOfSignalsDestination();
+    					}
+
+    					for(String name: l) {
+    						name = AvatarSignal.getSignalNameFromFullSignalString(name);
+    						//TraceManager.addDev("Searching for " + name + " in block " + _b);
+    						AvatarSignal sig = _b.getAvatarSignalFromName(name);
+    						if (sig != null) {
+    							//TraceManager.addDev("Sig " + name + " is attached to a relation");
+    							sig.attachedToARelation = true;
+    						}
+    					}
+    				}
+    			}
+    		}
+    	}
+    }
+
+    @Override
     public boolean actionOnValueChanged(TGComponent tgc) {
         if (tgc instanceof AvatarBDBlock) {
             //updateAllSignalsOnConnectors();
@@ -240,7 +242,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     public String displayParam() {
         String s = "";
         String [] tmp =  Conversion.wrapText(mainCode);
-        String tmps;
+        //String tmps;
         int i;
 
         for(i=0; i<tmp.length; i++) {
@@ -369,10 +371,10 @@ public class AvatarBDPanel extends TDiagramPanel {
             }
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableSignals(AvatarBDBlock _block) {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> ();
+    public List<AvatarSignal> getListOfAvailableSignals(AvatarBDBlock _block) {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal> ();
 
-        LinkedList<AvatarSignal> listOfBlock = _block.getSignalList();
+        List<AvatarSignal> listOfBlock = _block.getSignalList();
         if (listOfBlock.size() == 0)
             return v;
 
@@ -382,11 +384,11 @@ public class AvatarBDPanel extends TDiagramPanel {
             if (tgc instanceof AvatarBDPortConnector) {
                 AvatarBDPortConnector port = (AvatarBDPortConnector) tgc;
                 if (port.getAvatarBDBlock1() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsOrigin();
+                    List<String> ll = port.getListOfSignalsOrigin();
                     removeSignals(v, ll);
                 }
                 if (port.getAvatarBDBlock2() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsDestination();
+                    List<String> ll = port.getListOfSignalsDestination();
                     removeSignals(v, ll);
                 }
             }
@@ -394,10 +396,10 @@ public class AvatarBDPanel extends TDiagramPanel {
         return v;
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableOutSignals (AvatarBDBlock _block) {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> ();
+    public List<AvatarSignal> getListOfAvailableOutSignals (AvatarBDBlock _block) {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal> ();
 
-        LinkedList<AvatarSignal> listOfBlock = _block.getOutSignalList();
+        List<AvatarSignal> listOfBlock = _block.getOutSignalList();
         if (listOfBlock.size() == 0)
             return v;
 
@@ -407,11 +409,11 @@ public class AvatarBDPanel extends TDiagramPanel {
             if (tgc instanceof AvatarBDPortConnector) {
                 AvatarBDPortConnector port = (AvatarBDPortConnector)tgc;
                 if (port.getAvatarBDBlock1() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsOrigin();
+                    List<String> ll = port.getListOfSignalsOrigin();
                     removeSignals(v, ll);
                 }
                 if (port.getAvatarBDBlock2() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsDestination();
+                    List<String> ll = port.getListOfSignalsDestination();
                     removeSignals(v, ll);
                 }
             }
@@ -419,10 +421,10 @@ public class AvatarBDPanel extends TDiagramPanel {
         return v;
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableInSignals(AvatarBDBlock _block) {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> ();
+    public List<AvatarSignal> getListOfAvailableInSignals(AvatarBDBlock _block) {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal> ();
 
-        LinkedList<AvatarSignal> listOfBlock = _block.getInSignalList();
+        List<AvatarSignal> listOfBlock = _block.getInSignalList();
         if (listOfBlock.size() == 0)
             return v;
 
@@ -432,11 +434,11 @@ public class AvatarBDPanel extends TDiagramPanel {
             if (tgc instanceof AvatarBDPortConnector) {
                 AvatarBDPortConnector port = (AvatarBDPortConnector)tgc;
                 if (port.getAvatarBDBlock1() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsOrigin();
+                    List<String> ll = port.getListOfSignalsOrigin();
                     removeSignals(v, ll);
                 }
                 if (port.getAvatarBDBlock2() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsDestination();
+                    List<String> ll = port.getListOfSignalsDestination();
                     removeSignals(v, ll);
                 }
             }
@@ -445,7 +447,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     }
 
     // Remove AvatarSignals of v which name is provided in list
-    private static void removeSignals(List<AvatarSignal> v, LinkedList<String> list) {
+    private static void removeSignals(List<AvatarSignal> v, List<String> list) {
         for(String s: list) {
             Iterator<AvatarSignal> iterator = v.iterator ();
             while (iterator.hasNext ()) {
@@ -458,8 +460,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         }
     }
 
-	public HashMap<String, List<String>> getBlockStrings(boolean addAttributes, boolean addStates, boolean addSignals){
-		HashMap<String,List<String>> blockStringMap = new HashMap<String, List<String>>();
+	public Map<String, List<String>> getBlockStrings(boolean addAttributes, boolean addStates, boolean addSignals){
+		Map<String,List<String>> blockStringMap = new HashMap<String, List<String>>();
 		for (AvatarBDBlock block: getFullBlockList()){
 			List<String> strs = new ArrayList<String>();
 			if (addAttributes){
@@ -481,8 +483,8 @@ public class AvatarBDPanel extends TDiagramPanel {
 		return blockStringMap;
 	}
 
-    public LinkedList<AvatarBDStateMachineOwner> getFullStateMachineOwnerList() {
-        LinkedList<AvatarBDStateMachineOwner> list = new LinkedList<AvatarBDStateMachineOwner>();
+    public List<AvatarBDStateMachineOwner> getFullStateMachineOwnerList() {
+        List<AvatarBDStateMachineOwner> list = new LinkedList<AvatarBDStateMachineOwner>();
 
         for (TGComponent tgc: this.componentList)
             if (tgc instanceof AvatarBDStateMachineOwner) {
@@ -496,8 +498,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         return list;
     }
 
-    public LinkedList<AvatarBDBlock> getFullBlockList () {
-        LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock> ();
+    public List<AvatarBDBlock> getFullBlockList () {
+        List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock> ();
 
         for (TGComponent tgc: this.componentList)
             if (tgc instanceof AvatarBDBlock) {
@@ -538,8 +540,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<AvatarBDLibraryFunction> getFullLibraryFunctionList () {
-        LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> ();
+    public List<AvatarBDLibraryFunction> getFullLibraryFunctionList () {
+        List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> ();
 
         for (TGComponent tgc: this.componentList)
             if (tgc instanceof AvatarBDLibraryFunction)
@@ -548,8 +550,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         return list;
     }
 
-    public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctionsForBlock (String _name) {
-        LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> ();
+    public List<AvatarBDLibraryFunction> getAllLibraryFunctionsForBlock (String _name) {
+        List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> ();
 
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
         {
@@ -561,7 +563,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     }
 
     public TAttribute getAttributeByBlockName(String _blockName, String attributeName) {
-        TAttribute a;
+        //TAttribute a;
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
             if (block.getOwnerName().equals (_blockName))
                 return block.getAttributeByName(attributeName);
@@ -569,8 +571,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<TAttribute> getAllAttributesOfBlock (String _name) {
-        LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList ();
+    public List<TAttribute> getAllAttributesOfBlock (String _name) {
+        List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList ();
         for(AvatarBDStateMachineOwner block: list)
             if (block.getOwnerName ().equals (_name))
                 return block.getAttributeList ();
@@ -578,7 +580,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return new LinkedList<TAttribute> ();
     }
 
-    public LinkedList<AvatarMethod> getAllMethodsOfBlock(String _name) {
+    public List<AvatarMethod> getAllMethodsOfBlock(String _name) {
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
             if (block.getOwnerName().equals (_name))
                 return block.getAllMethodList();
@@ -586,7 +588,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<AvatarSignal> getAllSignalsOfBlock(String _name) {
+    public List<AvatarSignal> getAllSignalsOfBlock(String _name) {
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
             if (block.getOwnerName().equals (_name))
                 return block.getAllSignalList();
@@ -594,7 +596,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<String> getAllTimersOfBlock(String _name) {
+    public List<String> getAllTimersOfBlock(String _name) {
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
             if (block.getOwnerName().equals (_name))
                 return block.getAllTimerList();
@@ -602,7 +604,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<TAttribute> getAttributesOfDataType(String _name) {
+    public List<TAttribute> getAttributesOfDataType(String _name) {
         for (TGComponent tgc: this.componentList)
             if (tgc instanceof AvatarBDDataType) {
                 AvatarBDDataType adt = (AvatarBDDataType)tgc;
@@ -628,14 +630,14 @@ public class AvatarBDPanel extends TDiagramPanel {
         return mainCode;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getValidated() {
+    public List<AvatarBDStateMachineOwner> getValidated() {
         if ((val != null) && (validated == null)) {
             makeValidated();
         }
         return validated;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getIgnored() {
+    public List<AvatarBDStateMachineOwner> getIgnored() {
         if ((ign != null) && (ignored == null)) {
             makeIgnored();
         }
@@ -646,12 +648,11 @@ public class AvatarBDPanel extends TDiagramPanel {
         return optimized;
     }
 
-
-    public void setValidated(LinkedList<AvatarBDStateMachineOwner> _validated) {
+    public void setValidated( List<AvatarBDStateMachineOwner> _validated) {
         validated = _validated;
     }
 
-    public void setIgnored(LinkedList<AvatarBDStateMachineOwner> _ignored) {
+    public void setIgnored( List<AvatarBDStateMachineOwner> _ignored) {
         ignored = _ignored;
     }
 
@@ -662,7 +663,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     public void makeValidated() {
         TraceManager.addDev("Making validated with val=" + val);
         validated = new LinkedList<AvatarBDStateMachineOwner> ();
-        LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList();
+        List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList();
         String tmp;
 
         String split[] = val.split(";");
@@ -683,7 +684,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     public void makeIgnored() {
         TraceManager.addDev("Making ignored with ign=" + val);
         ignored = new LinkedList<AvatarBDStateMachineOwner> ();
-        LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList();
+        List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList();
         String tmp;
 
         String split[] = ign.split(";");
diff --git a/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java b/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java
index e09477549c1f2bbf82e48f49107959bc0e763022..af0b233b441903894c56236056d24aebb30e2c97 100644
--- a/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java
+++ b/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarbd;
 
 import myutil.Conversion;
@@ -49,10 +48,14 @@ import ui.util.IconManager;
 import ui.window.JDialogPerformancePragma;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -66,7 +69,7 @@ import java.util.Map;
 public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalComponent {
 
     protected String[] values;
-    protected LinkedList<String> properties;
+    protected List<String> properties;
     protected int textX = 40;
     protected int textY = 5;
     protected int marginY = 20;
@@ -74,7 +77,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
     protected int limit = 15;
     protected int lockX = 1;
     protected int lockY = 5;
-    public ArrayList<String> syntaxErrors;
+    public List<String> syntaxErrors;
     protected Graphics myg;
 
     protected Color myColor;
@@ -83,7 +86,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
     //    private int maxFontSize = 30;
 //    private int minFontSize = 4;
     private int currentFontSize = -1;
-    private final String[] pPragma = {"A[]", "A<>", "E[]", "E<>"};
+   // private final String[] pPragma = {"A[]", "A<>", "E[]", "E<>"};
     public Map<String, String> verifMap = new HashMap<String, String>();
 
     protected Graphics graphics;
@@ -129,10 +132,11 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
         return values;
     }
 
-    public LinkedList<String> getProperties() {
+    public List<String> getProperties() {
         return properties;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         Font f = g.getFont();
         Font fold = f;
@@ -223,7 +227,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
 
     }
 
-    public void makeValue() {
+    private void makeValue() {
         values = Conversion.wrapText(value);
         properties.clear();
         for (String s : values) {
@@ -255,7 +259,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
       }
       }*/
 
-
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
 
@@ -283,6 +287,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
         return null;
     }
 
+    @Override
     public void rescale(double scaleFactor) {
         /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor;
           lineHeight = (int)(dlineHeight);
@@ -294,10 +299,12 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
         super.rescale(scaleFactor);
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.PERFORMANCE_PRAGMA;
     }
 
+    @Override
     protected String translateExtraParam() {
         if (values == null) {
             makeValue();
diff --git a/src/main/java/ui/avatarbd/AvatarBDPragma.java b/src/main/java/ui/avatarbd/AvatarBDPragma.java
index 7dd4d58ffcd5f8878fcc683c6cc9c7b1d1a121a1..1fbb30ab86e9b7ea47d9908c5a70732c0c5c18d5 100755
--- a/src/main/java/ui/avatarbd/AvatarBDPragma.java
+++ b/src/main/java/ui/avatarbd/AvatarBDPragma.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarbd;
 
 import myutil.Conversion;
@@ -55,6 +54,9 @@ import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.io.PipedInputStream;
 import java.io.PipedOutputStream;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 
@@ -67,11 +69,11 @@ import proverifspec.ProVerifResultTraceStep;
 import ui.interactivesimulation.JFrameSimulationSDPanel;
 
 import javax.swing.*;
-import java.awt.*;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedList;
+import java.util.List;
 
 /**
  * Class Pragma
@@ -84,9 +86,9 @@ import java.util.LinkedList;
 public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
 
     protected String[] values;
-    protected LinkedList<String> models;
-    protected LinkedList<String> properties;
-    public ArrayList<String> syntaxErrors;
+    protected List<String> models;
+    protected List<String> properties;
+    public List<String> syntaxErrors;
     protected int textX = 25;
     protected int textY = 5;
     protected int marginY = 20;
@@ -165,14 +167,15 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
         makeValue();
     }
 
-    public LinkedList<String> getProperties() {
+    public List<String> getProperties() {
         return properties;
     }
 
-    public LinkedList<String> getModels() {
+    public List<String> getModels() {
         return this.models;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         Font f = g.getFont();
         Font fold = f;
@@ -299,7 +302,6 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
         }
 */
         g.setColor(c);
-
     }
 
     public void makeValue() {
@@ -402,9 +404,9 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
 //	if (c1==Color.gray){
 //	    g.drawString("?", _x+4, _y+2);
 //	}
-
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
 
@@ -418,7 +420,7 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
 
         String s = jdn.getText();
         if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
-            String tmp = s;
+           // String tmp = s;
             setValue(s);
             makeValue();
             return true;
@@ -426,6 +428,7 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
         return false;
     }
 
+    @Override
     public TGComponent isOnMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -433,10 +436,12 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
         return null;
     }
 
+    @Override
     public String getToolTipText() {
         return "The lock shows status of weak and strong authenticity. Green: Proved True, Red: Proved False, Grey: Cannot be proved";
     }
 
+    @Override
     public void rescale(double scaleFactor) {
         //TraceManager.addDev("Rescaling BD Pragma");
         /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor;
@@ -449,10 +454,12 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
         super.rescale(scaleFactor);
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.PRAGMA;
     }
 
+    @Override
     protected String translateExtraParam() {
         if (values == null) {
             makeValue();
@@ -540,10 +547,9 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
         	    	} catch (IOException ignored) {
         			}
         		}
-        		break;
 
+       			break;
     		}
     	}
-		//
 	}
 }
diff --git a/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java b/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java
index 1e9e99b5387549f7d1e57ec4b6294b0fe956d8b3..bbf87cdbbb7a6628aeaf3b688d51e9baa038f7e6 100644
--- a/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java
+++ b/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarbd;
 
 import myutil.Conversion;
@@ -49,7 +48,10 @@ import ui.util.IconManager;
 import ui.window.JDialogSafetyPragma;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
 import java.util.*;
 
 /**
@@ -63,7 +65,7 @@ import java.util.*;
 public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent {
 
     protected String[] values;
-    protected LinkedList<String> properties;
+    protected List<String> properties;
     protected int textX = 25;
     protected int textY = 5;
     protected int marginY = 20;
@@ -72,7 +74,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent {
     protected int lockX = 1;
     protected int lockY = 5;
     protected Graphics myg;
-    public ArrayList<String> syntaxErrors;
+    public List<String> syntaxErrors;
     protected Color myColor;
 
     private Font myFont;//, myFontB;
@@ -127,10 +129,11 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent {
         return values;
     }
 
-    public LinkedList<String> getProperties() {
+    public List<String> getProperties() {
         return properties;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         Font f = g.getFont();
         Font fold = f;
@@ -221,8 +224,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent {
 
     }
 
-    public void makeValue() {
-
+    private void makeValue() {
         values = Conversion.wrapText(value);
         properties.clear();
         for (String s : values) {
@@ -258,7 +260,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent {
       }
       }*/
 
-
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
 
@@ -279,6 +281,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent {
         return false;
     }
 
+    @Override
     public TGComponent isOnMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -286,6 +289,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent {
         return null;
     }
 
+    @Override
     public void rescale(double scaleFactor) {
         /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor;
           lineHeight = (int)(dlineHeight);
@@ -297,10 +301,12 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent {
         super.rescale(scaleFactor);
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.SAFETY_PRAGMA;
     }
 
+    @Override
     protected String translateExtraParam() {
         if (values == null) {
             makeValue();
diff --git a/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java b/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java
index f26e17890af344f312123045f944d3c58f91cc74..13b68cefd465fb4d00b24ab12f72c5be5aacfb45 100755
--- a/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java
+++ b/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java
@@ -36,19 +36,15 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarbd;
 
+import java.util.List;
+
 import ui.AvatarMethod;
 import ui.AvatarSignal;
 import ui.TAttribute;
 import ui.avatarsmd.AvatarSMDPanel;
 
-import java.util.LinkedList;
-
-
 /**
  * This interface represent block diagram elements that are associated to a state machine.
  * It defines the functions so that a state machine can deal transparently no matter if
@@ -59,14 +55,14 @@ import java.util.LinkedList;
  */
 public interface AvatarBDStateMachineOwner {
 
-    LinkedList<TAttribute> getAttributeList();
-    LinkedList<String> getAllTimerList();
+    List<TAttribute> getAttributeList();
+    List<String> getAllTimerList();
     TAttribute getAttributeByName(String _name);
-    LinkedList<AvatarSignal> getSignalList();
-    LinkedList<AvatarSignal> getAllSignalList();
+    List<AvatarSignal> getSignalList();
+    List<AvatarSignal> getAllSignalList();
     AvatarSignal getSignalNameBySignalDef(String _id);
-    LinkedList<AvatarMethod> getMethodList();
-    LinkedList<AvatarMethod> getAllMethodList();
+    List<AvatarMethod> getMethodList();
+    List<AvatarMethod> getAllMethodList();
 
     String getOwnerName();
     AvatarSMDPanel getAvatarSMDPanel();
diff --git a/src/main/java/ui/avatardd/ADDArtifact.java b/src/main/java/ui/avatardd/ADDArtifact.java
index 2570aa5fcee02688695a0867918c0d4517cd2a69..168176f98ae540799e9edccb7271b88f60ae759b 100755
--- a/src/main/java/ui/avatardd/ADDArtifact.java
+++ b/src/main/java/ui/avatardd/ADDArtifact.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatardd;
 
 import myutil.GraphicLib;
@@ -95,9 +92,8 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
         myImageIcon = IconManager.imgic702;
     }
 
-
+    @Override
     public void internalDrawing(Graphics g) {
-
         if (oldValue.compareTo(value) != 0) {
             setValue(value, g);
         }
@@ -136,6 +132,7 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
         //
     }
 
+    @Override
     public void resizeWithFather() {
         if ((father != null) && ((father instanceof ADDCPUNode))) {
             //
@@ -145,9 +142,9 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
         }
     }
 
-
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-        String tmp;
+//        String tmp;
         boolean error = false;
 
         /*JDialogTMLTaskArtifact dialog = new JDialogTMLTaskArtifact(frame, "Setting artifact attributes", this);
@@ -199,6 +196,7 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
         value = referenceTaskName + "::" + taskName;
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -206,10 +204,12 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
         return null;
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.ADD_ARTIFACT;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<info value=\"" + value + "\" taskName=\"" + taskName + "\" referenceTaskName=\"");
@@ -263,7 +263,7 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeFullValue();
     }
@@ -291,8 +291,4 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
     public String getAttributesToFile() {
         return "";
     }
-
-
-
-
 }
diff --git a/src/main/java/ui/avatardd/ADDBlockArtifact.java b/src/main/java/ui/avatardd/ADDBlockArtifact.java
index c5ca6a3cf1aca61d08ad2532be7f4e80fbd97031..bdca0ae1e8c6fa41e35b5d6ec5f3b63deb667c2a 100755
--- a/src/main/java/ui/avatardd/ADDBlockArtifact.java
+++ b/src/main/java/ui/avatardd/ADDBlockArtifact.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatardd;
 
 import myutil.GraphicLib;
@@ -96,9 +93,8 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
         myImageIcon = IconManager.imgic702;
     }
 	
-    
+    @Override
     public void internalDrawing(Graphics g) {
-        
         if (oldValue.compareTo(value) != 0) {
             setValue(value, g);
         }
@@ -137,6 +133,7 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
         //
     }
     
+    @Override
     public void resizeWithFather() {
         if ((father != null) && ((father instanceof ADDCPUNode))) {
             //
@@ -146,8 +143,8 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
         }
     }
     
-    
-     public boolean editOndoubleClick(JFrame frame) {
+    @Override
+    public boolean editOndoubleClick(JFrame frame) {
 		String tmp;
 		boolean error = false;
 		
@@ -191,15 +188,14 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
 		
 		makeFullValue();
 	
-			
 		return !error;
-      
     }
     
     private void makeFullValue() {
         value = referenceTaskName + "::" + taskName;
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -207,10 +203,12 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
         return null;
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.ADD_ARTIFACT;
     }
     
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<info value=\"" + value + "\" taskName=\"" + taskName + "\" referenceTaskName=\"");
@@ -224,7 +222,6 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
         //
         try {
-            
             NodeList nli;
             Node n1, n2;
             Element elt;
@@ -263,7 +260,7 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
             }
             
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeFullValue();
     }
@@ -284,5 +281,4 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
     public String getTaskName() {
         return taskName;
     }
-	
 }
diff --git a/src/main/java/ui/avatardd/ADDBridgeNode.java b/src/main/java/ui/avatardd/ADDBridgeNode.java
index 9961306d2b417f24695064140932154327ec384c..197ddca0fd89d31d204bc0de7a0e641d898806b6 100755
--- a/src/main/java/ui/avatardd/ADDBridgeNode.java
+++ b/src/main/java/ui/avatardd/ADDBridgeNode.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatardd;
 
 import org.w3c.dom.Element;
@@ -65,7 +62,6 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
     private int derivationy = 3;
     private String stereotype = "BRIDGE";
 	
-    
     public ADDBridgeNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
         
@@ -110,6 +106,7 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
         myImageIcon = IconManager.imgic700;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		Color c = g.getColor();
 		g.draw3DRect(x, y, width, height, true);
@@ -141,8 +138,8 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
 		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
-        
         Polygon pol = new Polygon();
         pol.addPoint(x, y);
         pol.addPoint(x + derivationx, y - derivationy);
@@ -166,6 +163,7 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
         return name;
     }
     
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
 	//	boolean error = false;
 		//String errors = "";
@@ -234,11 +232,12 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
         return true;
     }
     
-    
+    @Override
     public int getType() {
         return TGComponentManager.ADD_BRIDGENODE;
     }
     
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<info stereotype=\"" + stereotype + "\" nodeName=\"" + name);
@@ -295,17 +294,14 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
             }
             
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
     }
-    
-	  
-	  public String getAttributes() {
-		  String attr = "";
-		  //attr += "Buffer size (in byte) = " + bufferByteDataSize + "\n";
-		  //attr += "Clock ratio = " + clockRatio + "\n";
-		  return attr;
-	  }
-	  
-    
+
+    public String getAttributes() {
+    	String attr = "";
+    	//attr += "Buffer size (in byte) = " + bufferByteDataSize + "\n";
+    	//attr += "Clock ratio = " + clockRatio + "\n";
+    	return attr;
+    }
 }
diff --git a/src/main/java/ui/avatardd/ADDBusNode.java b/src/main/java/ui/avatardd/ADDBusNode.java
index 131b8d89a0833d7e893891a811d3abd7217b6d75..d01b97c8c5104fe52c161d2c7c80a22b2a2713c9 100755
--- a/src/main/java/ui/avatardd/ADDBusNode.java
+++ b/src/main/java/ui/avatardd/ADDBusNode.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatardd;
 
 import myutil.GraphicLib;
@@ -72,8 +69,6 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
     private int fifoDepth = 0;
     private int minLatency = 0;
 
-
-
     public ADDBusNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
@@ -118,6 +113,7 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
         myImageIcon = IconManager.imgic700;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         Color c = g.getColor();
         g.draw3DRect(x, y, width, height, true);
@@ -153,8 +149,8 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
         g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
-
         Polygon pol = new Polygon();
         pol.addPoint(x, y);
         pol.addPoint(x + derivationx, y - derivationy);
@@ -178,6 +174,7 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
         return name;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         boolean error = false;
         String errors = "";
@@ -204,8 +201,6 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
             }
         }
 
-
-
         if (dialog.getIndex().length() != 0) {
             try {
                 tmp = index;
@@ -236,7 +231,6 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
             }
         }
 
-
         if (dialog.getNbOfAttachedTargets().length() != 0) {
             try {
                 tmp = nbOfAttachedTargets;
@@ -294,11 +288,12 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
         return true;
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.ADD_BUSNODE;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<info stereotype=\"" + stereotype + "\" nodeName=\"" + name);
@@ -315,9 +310,7 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
 
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
-        //
         try {
-
             NodeList nli;
             Node n1, n2;
             Element elt;
@@ -363,13 +356,10 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
     }
 
-
-
-
     public String getAttributes() {
         String attr = "";
         attr += "index = " + index + "\n";
@@ -396,8 +386,8 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
     public int getFifoDepth() { return fifoDepth;}
     public int getMinLatency() { return minLatency;}
 
+    @Override
     public String toString(){
         return "Bus";
     }
-
 }
diff --git a/src/main/java/ui/avatardd/ADDChannelArtifact.java b/src/main/java/ui/avatardd/ADDChannelArtifact.java
index 4048be6ee3071dfc01d9ed6824aa4d2fda6095a9..7d5944d04d35fd29c1c731435c290dad1ea62a7c 100755
--- a/src/main/java/ui/avatardd/ADDChannelArtifact.java
+++ b/src/main/java/ui/avatardd/ADDChannelArtifact.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatardd;
 
 import myutil.GraphicLib;
@@ -97,9 +94,8 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
         myImageIcon = IconManager.imgic702;
     }
 
-
+    @Override
     public void internalDrawing(Graphics g) {
-
         if (oldValue.compareTo(value) != 0) {
             setValue(value, g);
         }
@@ -122,7 +118,6 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
         g.drawImage(IconManager.img9, x+width-space-fileX + 3, y + space + 7, null);
 
         g.drawString(value, x + textX , y + textY);
-
     }
 
     public void setValue(String val, Graphics g) {
@@ -138,6 +133,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
         //
     }
 
+    @Override
     public void resizeWithFather() {
         if ((father != null) && ((father instanceof ADDRAMNode))) {
             //
@@ -147,7 +143,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
         }
     }
 
-
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String tmp;
         boolean error = false;
@@ -204,6 +200,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
        value = referenceDiagram + "::" + channelName;
        }*/
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -215,6 +212,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
         return TGComponentManager.ADD_CHANNELARTIFACT;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<info value=\"" + value + "\" channelName=\"" + channelName + "\" fullChannelName=\"" + fullChannelName + "\" referenceDiagram=\"");
@@ -274,7 +272,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeFullValue();
     }
@@ -301,7 +299,6 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
     }
 
     public String getStatusInformation() {
-	return "Name of the channel: " + fullChannelName;
+    	return "Name of the channel: " + fullChannelName;
     }
-
 }
diff --git a/src/main/java/ui/avatarmad/AvatarMADCompositionConnector.java b/src/main/java/ui/avatarmad/AvatarMADCompositionConnector.java
index f4f325f904ea778edfefd46cfd3e987291874186..8708601a6cc7f820504486cafd4eacddab941feb 100644
--- a/src/main/java/ui/avatarmad/AvatarMADCompositionConnector.java
+++ b/src/main/java/ui/avatarmad/AvatarMADCompositionConnector.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarmad;
 
 import ui.*;
@@ -47,8 +44,6 @@ import ui.util.IconManager;
 import java.awt.*;
 import java.util.Vector;
 
-//import java.awt.geom.*;
-
 /**
  * Class AvatarMADCompositionConnector
  * Connector to be used in Avatar MAD. Connects two assumptions
@@ -57,7 +52,7 @@ import java.util.Vector;
  * @author Ludovic APVRILLE
  */
 public  class AvatarMADCompositionConnector extends TGConnectorWithCommentConnectionPoints {
-    int w, h;
+  //  int w, h;
 	private int radius = 5;
     
     public AvatarMADCompositionConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) {
@@ -67,7 +62,7 @@ public  class AvatarMADCompositionConnector extends TGConnectorWithCommentConnec
 		myImageIcon = IconManager.imgic1012;
     }
     
-    
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
 		 
         //g.drawLine(x1, y1, x2, y2);
diff --git a/src/main/java/ui/avatarmad/AvatarMADConnector.java b/src/main/java/ui/avatarmad/AvatarMADConnector.java
new file mode 100644
index 0000000000000000000000000000000000000000..421f6b4f825e8c5f40d717fdac177fd3b2b10a5b
--- /dev/null
+++ b/src/main/java/ui/avatarmad/AvatarMADConnector.java
@@ -0,0 +1,84 @@
+package ui.avatarmad;
+
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.util.Vector;
+
+import myutil.GraphicLib;
+import ui.ForwardComponentsEnabledVisitor;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGConnectingPoint;
+import ui.TGConnectorWithCommentConnectionPoints;
+import ui.ad.CanBeDisabledADElementVisitor;
+
+public abstract class AvatarMADConnector extends TGConnectorWithCommentConnectionPoints {
+
+	int w, h;
+
+	public AvatarMADConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos,
+			TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2,
+			Vector<Point> _listPoint) {
+		super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
+	}
+
+    @Override
+    protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
+
+        //g.drawLine(x1, y1, x2, y2);
+        GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false);
+
+        // Indicate semantics
+
+        Font f = g.getFont();
+        Font old = f;
+        if (f.getSize() != tdp.getFontSize()) {
+            f = f.deriveFont((float)tdp.getFontSize());
+            g.setFont(f);
+        }
+
+        w  = g.getFontMetrics().stringWidth(value);
+        h = g.getFontMetrics().getHeight();
+        g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2);
+        g.setFont(old);
+    }
+
+    @Override
+    public TGComponent extraIsOnOnlyMe(int x1, int y1) {
+        if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) {
+            return this;
+        }
+        return null;
+    }
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+//    	if ( p2 != null && p2.getFather() instanceof AvatarSMDStopState ) {
+//    		return false;
+//    	}
+    	
+    	final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor();
+    	acceptBackward( visitor );
+    	
+    	return visitor.isCanBeDisabled();
+    }
+    
+    /** Issue #69
+     * @return
+     */
+    public boolean isEnabled( boolean checkBranch ) {
+    	if ( checkBranch && p2 != null ) {
+    		final ForwardComponentsEnabledVisitor visitor = new ForwardComponentsEnabledVisitor();
+    		p2.acceptForward( visitor );
+    		
+    		return visitor.isEnabled();
+    	}
+    	
+    	return super.isEnabled();
+    }
+}
diff --git a/src/main/java/ui/avatarmad/AvatarMADImpactConnector.java b/src/main/java/ui/avatarmad/AvatarMADImpactConnector.java
index ae483cb1034f4011bb1b875c71d78476c956ecaf..9be09e1278fab21aa88b548e527378022b773ad0 100644
--- a/src/main/java/ui/avatarmad/AvatarMADImpactConnector.java
+++ b/src/main/java/ui/avatarmad/AvatarMADImpactConnector.java
@@ -36,19 +36,16 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarmad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
+import java.awt.Point;
 import java.util.Vector;
 
-//import java.awt.geom.*;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.util.IconManager;
 
 /**
  * Class AvatarMADImpactConnector
@@ -57,8 +54,8 @@ import java.util.Vector;
  * @version 1.0 27/08/2013
  * @author Ludovic APVRILLE
  */
-public  class AvatarMADImpactConnector extends TGConnectorWithCommentConnectionPoints {
-    int w, h;
+public  class AvatarMADImpactConnector extends AvatarMADConnector /* Issue #69 TGConnectorWithCommentConnectionPoints*/ {
+   // int w, h;
 
     public AvatarMADImpactConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) {
         super(_x, _y,  _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
@@ -67,36 +64,35 @@ public  class AvatarMADImpactConnector extends TGConnectorWithCommentConnectionP
         myImageIcon = IconManager.imgic1008;
     }
 
-
-    protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
-
-        //g.drawLine(x1, y1, x2, y2);
-        GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false);
-
-        // Indicate semantics
-
-        Font f = g.getFont();
-        Font old = f;
-        if (f.getSize() != tdp.getFontSize()) {
-            f = f.deriveFont((float)tdp.getFontSize());
-            g.setFont(f);
-        }
-
-        w  = g.getFontMetrics().stringWidth(value);
-        h = g.getFontMetrics().getHeight();
-        g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2);
-        g.setFont(old);
-    }
-
-    public TGComponent extraIsOnOnlyMe(int x1, int y1) {
-        if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) {
-            return this;
-        }
-        return null;
-    }
-
+//    protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
+//
+//        //g.drawLine(x1, y1, x2, y2);
+//        GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false);
+//
+//        // Indicate semantics
+//
+//        Font f = g.getFont();
+//        Font old = f;
+//        if (f.getSize() != tdp.getFontSize()) {
+//            f = f.deriveFont((float)tdp.getFontSize());
+//            g.setFont(f);
+//        }
+//
+//        w  = g.getFontMetrics().stringWidth(value);
+//        h = g.getFontMetrics().getHeight();
+//        g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2);
+//        g.setFont(old);
+//    }
+//
+//    public TGComponent extraIsOnOnlyMe(int x1, int y1) {
+//        if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) {
+//            return this;
+//        }
+//        return null;
+//    }
+
+    @Override
     public int getType() {
         return TGComponentManager.AVATARMAD_IMPACT_CONNECTOR;
     }
-
 }
diff --git a/src/main/java/ui/avatarmad/AvatarMADMeetConnector.java b/src/main/java/ui/avatarmad/AvatarMADMeetConnector.java
index 097ea94ff1a8271caeb929987343586731180076..f1b8e739b6cf6ff1319730b55702d77e11d37d24 100644
--- a/src/main/java/ui/avatarmad/AvatarMADMeetConnector.java
+++ b/src/main/java/ui/avatarmad/AvatarMADMeetConnector.java
@@ -36,19 +36,16 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarmad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
+import java.awt.Point;
 import java.util.Vector;
 
-//import java.awt.geom.*;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.util.IconManager;
 
 /**
  * Class AvatarMADMeetConnector
@@ -57,8 +54,8 @@ import java.util.Vector;
  * @version 1.0 05/02/2014
  * @author Ludovic APVRILLE
  */
-public  class AvatarMADMeetConnector extends TGConnectorWithCommentConnectionPoints {
-    int w, h;
+public  class AvatarMADMeetConnector extends AvatarMADConnector /* Issue #69 TGConnectorWithCommentConnectionPoints*/ {
+   // int w, h;
 
     public AvatarMADMeetConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) {
         super(_x, _y,  _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
@@ -67,36 +64,34 @@ public  class AvatarMADMeetConnector extends TGConnectorWithCommentConnectionPoi
         myImageIcon = IconManager.imgic1008;
     }
 
-
-    protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
-
-        //g.drawLine(x1, y1, x2, y2);
-        GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false);
-
-        // Indicate semantics
-
-        Font f = g.getFont();
-        Font old = f;
-        if (f.getSize() != tdp.getFontSize()) {
-            f = f.deriveFont((float)tdp.getFontSize());
-            g.setFont(f);
-        }
-
-        w  = g.getFontMetrics().stringWidth(value);
-        h = g.getFontMetrics().getHeight();
-        g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2);
-        g.setFont(old);
-    }
-
-    public TGComponent extraIsOnOnlyMe(int x1, int y1) {
-        if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) {
-            return this;
-        }
-        return null;
-    }
+//    protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
+//
+//        //g.drawLine(x1, y1, x2, y2);
+//        GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false);
+//
+//        // Indicate semantics
+//
+//        Font f = g.getFont();
+//        Font old = f;
+//        if (f.getSize() != tdp.getFontSize()) {
+//            f = f.deriveFont((float)tdp.getFontSize());
+//            g.setFont(f);
+//        }
+//
+//        w  = g.getFontMetrics().stringWidth(value);
+//        h = g.getFontMetrics().getHeight();
+//        g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2);
+//        g.setFont(old);
+//    }
+//
+//    public TGComponent extraIsOnOnlyMe(int x1, int y1) {
+//        if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) {
+//            return this;
+//        }
+//        return null;
+//    }
 
     public int getType() {
         return TGComponentManager.AVATARMAD_MEET_CONNECTOR;
     }
-
 }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDBasicCanBeDisabledComponent.java b/src/main/java/ui/avatarsmd/AvatarSMDBasicCanBeDisabledComponent.java
new file mode 100644
index 0000000000000000000000000000000000000000..2c6e38b07e0aa61bd520209b03a93835e78c6b8b
--- /dev/null
+++ b/src/main/java/ui/avatarsmd/AvatarSMDBasicCanBeDisabledComponent.java
@@ -0,0 +1,25 @@
+package ui.avatarsmd;
+
+import ui.TDiagramPanel;
+import ui.TGComponent;
+
+public abstract class AvatarSMDBasicCanBeDisabledComponent extends AvatarSMDBasicComponent {
+
+	public AvatarSMDBasicCanBeDisabledComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY,
+			boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+	}
+
+	/* Issue #69
+	 * (non-Javadoc)
+	 * @see ui.AbstractCDElement#canBeDisabled()
+	 */
+	@Override
+    public boolean canBeDisabled() {
+		if ( getFather() instanceof AvatarSMDState ) {
+			return getFather().isEnabled();
+		}
+		
+    	return true;
+    }
+}
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDBasicComponent.java b/src/main/java/ui/avatarsmd/AvatarSMDBasicComponent.java
index fa760549d9ed74ea867c974a66f227cd73fd69f8..3a80d4a6df0e8a5cd76d3ed91b112454339d5e2b 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDBasicComponent.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDBasicComponent.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarsmd;
 
 import ui.*;
@@ -51,16 +48,18 @@ import ui.*;
  * @author Ludovic APVRILLE
  */
 public abstract class AvatarSMDBasicComponent extends TGCWithoutInternalComponent implements SwallowedTGComponent {
-    private int lineLength = 5;
+    //private int lineLength = 5;
     
     public AvatarSMDBasicComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.AVATARSMD_CONNECTOR;
+    	return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 	
+    @Override
 	public void resizeWithFather() {
         if ((father != null) && (father instanceof AvatarSMDState)) {
 			// Too large to fit in the father? -> resize it!
@@ -70,5 +69,8 @@ public abstract class AvatarSMDBasicComponent extends TGCWithoutInternalComponen
             setMoveCd(x, y);
         }
     }
-    
+
+    protected boolean isContainedInEnabledState() {
+    	return getFather() instanceof AvatarSMDState && getFather().isEnabled();
+    }
 }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDChoice.java b/src/main/java/ui/avatarsmd/AvatarSMDChoice.java
index 8e7c4bf1d20027523ab21ee1a61216fe76e310c1..df16dedae65755a98a5fa4e63acacd5e3561a3b0 100755
--- a/src/main/java/ui/avatarsmd/AvatarSMDChoice.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDChoice.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarsmd;
 
 import myutil.GraphicLib;
@@ -58,21 +55,21 @@ import java.awt.geom.Line2D;
 public class AvatarSMDChoice extends AvatarSMDBasicComponent implements EmbeddedComment, BasicErrorHighlight, PartOfInvariant {
     private int lineLength = 10;
     private int lineOutLength = 10;
-    private int textX1, textY1, textX2, textY2, textX3, textY3;
+//    private int textX1, textY1, textX2, textY2, textX3, textY3;
 	
-	 protected int stateOfError = 0; // Not yet checked
+	protected int stateOfError = 0; // Not yet checked
 	
     public AvatarSMDChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
         
         width = 30;
         height = 30;
-        textX1 = -lineOutLength;
-        textY1 = height/2 - 5;
-        textX2 = width + 5;
-        textY2 = height/2 - 5;
-        textX3 = width /2 + 5;
-        textY3 = height + 15;
+//        textX1 = -lineOutLength;
+//        textY1 = height/2 - 5;
+//        textX2 = width + 5;
+//        textY2 = height/2 - 5;
+//        textX3 = width /2 + 5;
+//        textY3 = height + 15;
         
         nbConnectingPoint = 7;
         connectingPoint = new TGConnectingPoint[nbConnectingPoint];
@@ -98,6 +95,7 @@ public class AvatarSMDChoice extends AvatarSMDBasicComponent implements Embedded
         myImageIcon = IconManager.imgic208;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		if (stateOfError > 0)  {
 			Color c = g.getColor();
@@ -126,6 +124,7 @@ public class AvatarSMDChoice extends AvatarSMDBasicComponent implements Embedded
         g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength);
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -150,18 +149,18 @@ public class AvatarSMDChoice extends AvatarSMDBasicComponent implements Embedded
         return null;
     }
     
-    
+    @Override
     public int getType() {
         return TGComponentManager.AVATARSMD_CHOICE;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.AVATARSMD_CONNECTOR;
+    	return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
-	
-    
 }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java
index e12766e20c0d422098c0e2144397fe4b36d6d070..220f2703531b9c4ca34b3c40dded44e3129e4de4 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarsmd;
 
 import myutil.GraphicLib;
@@ -109,7 +108,6 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i
        }
        }*/
 
-
     public void setTransitionInfo(String guard, String action) {
         AvatarSMDTransitionInfo tgc = (AvatarSMDTransitionInfo) getInternalTGComponent(0);
         if (!guard.isEmpty()) {
@@ -125,6 +123,7 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i
         tgc.setTimes(minDelay, maxDelay, minCompute, maxCompute);
     }
 
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2) {
         if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) {
             g.drawLine(x1, y1, x2, y2);
@@ -133,6 +132,7 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i
         }
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         AvatarSMDTransitionInfo info = getAvatarSMDTransitionInfo();
         if (info == null) {
@@ -141,6 +141,7 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i
         return info.editOndoubleClick(frame);
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.AVATARSMD_CONNECTOR;
     }
@@ -158,66 +159,191 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i
         return getAvatarSMDTransitionInfo().getGuard();
     }
 
-    public String getTotalMinDelay() {
-        String s1 = getAvatarSMDTransitionInfo().getAfterMinDelay();
-        String s2 = getAvatarSMDTransitionInfo().getComputeMinDelay();
-        return addedDelays(s1, s2);
-    }
-
-    public String getTotalMaxDelay() {
-        String s1 = getAvatarSMDTransitionInfo().getAfterMaxDelay();
-        String s2 = getAvatarSMDTransitionInfo().getComputeMaxDelay();
-        return addedDelays(s1, s2);
-    }
-
-    public String addedDelays(String s1, String s2) {
-        if (s1.trim().length() == 0) {
-            return s2.trim();
-        } else {
-            if (s2.trim().length() == 0) {
-                return s1;
-            } else {
-                return "(" + s1 + ") + (" + s2 + ")";
-            }
-        }
+    public String getEffectiveGuard() {
+        return getAvatarSMDTransitionInfo().getEffectiveGuard();
     }
+//
+//    public String getTotalMinDelay() {
+//        String s1 = getAvatarSMDTransitionInfo().getAfterMinDelay();
+//        String s2 = getAvatarSMDTransitionInfo().getComputeMinDelay();
+//        return addedDelays(s1, s2);
+//    }
+//
+//    public String getTotalMaxDelay() {
+//        String s1 = getAvatarSMDTransitionInfo().getAfterMaxDelay();
+//        String s2 = getAvatarSMDTransitionInfo().getComputeMaxDelay();
+//        return addedDelays(s1, s2);
+//    }
+//
+//    public String addedDelays(String s1, String s2) {
+//        if (s1.trim().length() == 0) {
+//            return s2.trim();
+//        } else {
+//            if (s2.trim().length() == 0) {
+//                return s1;
+//            } else {
+//                return "(" + s1 + ") + (" + s2 + ")";
+//            }
+//        }
+//    }
 
     public Vector<String> getActions() {
         return getAvatarSMDTransitionInfo().getActions();
     }
+  
+    public Vector<String> getEffectiveActions() {
+        return getAvatarSMDTransitionInfo().getEffectiveActions();
+    }
 
     public String getAfterMinDelay() {
         return getAvatarSMDTransitionInfo().getAfterMinDelay();
     }
+    
+    public String getEffectiveAfterMinDelay() {
+        return getAvatarSMDTransitionInfo().getEffectiveAfterMinDelay();
+    }
 
     public String getAfterMaxDelay() {
         return getAvatarSMDTransitionInfo().getAfterMaxDelay();
     }
+    public String getEffectiveAfterMaxDelay() {
+        return getAvatarSMDTransitionInfo().getEffectiveAfterMaxDelay();
+    }
 
     public String getComputeMinDelay() {
         return getAvatarSMDTransitionInfo().getComputeMinDelay();
     }
+    
+    public String getEffectiveComputeMinDelay() {
+        return getAvatarSMDTransitionInfo().getEffectiveComputeMinDelay();
+    }
 
     public String getComputeMaxDelay() {
         return getAvatarSMDTransitionInfo().getComputeMaxDelay();
     }
 
-    public String getProbability() {
-        return getAvatarSMDTransitionInfo().getProbability();
+    public String getEffectiveComputeMaxDelay() {
+        return getAvatarSMDTransitionInfo().getEffectiveComputeMaxDelay();
     }
 
-
-
-
-    public String getFilesToInclude() {
-        return getAvatarSMDTransitionInfo().getFilesToInclude();
+    public String getProbability() {
+        return getAvatarSMDTransitionInfo().getProbability();
     }
 
-    public String getCodeToInclude() {
-        return getAvatarSMDTransitionInfo().getCodeToInclude();
+    public String getEffectiveProbability() {
+        return getAvatarSMDTransitionInfo().getEffectiveProbability();
     }
+//
+//    public String getFilesToInclude() {
+//        return getAvatarSMDTransitionInfo().getFilesToInclude();
+//    }
+//
+//    public String getCodeToInclude() {
+//        return getAvatarSMDTransitionInfo().getCodeToInclude();
+//    }
 
     public String getAttributes() {
         return getAvatarSMDTransitionInfo().getAttributes();
     }
+	
+    /**
+     * Issue #69
+     * @param _enabled
+     */
+    @Override
+    public void setEnabled( final boolean _enabled ) {
+    	if ( p2 != null ) {
+    		p2.acceptForward( new EnablingAvatarSMDConnectorVisitor( _enabled ) );
+    	}
+    }
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+		if ( p2 != null ) {
+			if ( p2.getFather() instanceof AvatarSMDStopState ) {
+				return false;
+			}
+		}
+
+		return canBeDisabledContainer();
+    }
+    
+    public boolean canBeDisabledContainer() {
+		if ( p2 != null ) {
+			if ( p2.getFather() instanceof TGComponent && ( (TGComponent) p2.getFather() ).getFather() instanceof AvatarSMDState ) {
+				if ( !( (TGComponent) p2.getFather() ).getFather().isEnabled() ) {
+					return false;
+				}
+			}
+		}
+		
+		if ( p1 != null ) {
+			if ( p1.getFather() instanceof TGComponent && ( (TGComponent) p1.getFather() ).getFather() instanceof AvatarSMDState ) {
+				if ( !( (TGComponent) p1.getFather() ).getFather().isEnabled() ) {
+					return false;
+				}
+			}
+		}
+		
+		return true;
+    }
+    
+    public boolean isContainedInEnabledState() {
+    	final AvatarSMDState sourceContainingState = getContainingState( p1 );
+    	
+    	if ( sourceContainingState != null && sourceContainingState.isEnabled() ) {
+    		return true;
+    	}
+    	
+    	final AvatarSMDState targetContainingState = getContainingState( p2 );
+    	
+    	return targetContainingState != null && targetContainingState.isEnabled();
+    }
+
+    public AvatarSMDState getContainingState() {
+    	final AvatarSMDState sourceContainingState = getContainingState( p1 );
+    	
+    	final AvatarSMDState targetContainingState = getContainingState( p2 );
+    	
+    	if ( sourceContainingState == targetContainingState ) {
+    		return sourceContainingState;
+    	}
+    	
+    	return null;
+    }
+    
+    private AvatarSMDState getContainingState( final TGConnectingPoint point ) {
+    	if ( p1 == null ) {
+    		return null;
+    	}
+
+    	if ( point.getFather() instanceof TGComponent ) {
+    		final TGComponent sourceComponent = (TGComponent) point.getFather();
+    		
+    		if ( sourceComponent.getFather() instanceof AvatarSMDState ) {
+    			return (AvatarSMDState) sourceComponent.getFather();
+    		}
+    	}
+    	
+    	return null;
+    }
+    
+    
+    /** Issue #69
+     * @return
+     */
+    public boolean isEnabled( boolean checkBranch ) {
+    	if ( checkBranch && p2 != null ) {
+    		final ForwardComponentsEnabledVisitor visitor = new ForwardComponentsEnabledVisitor();
+    		p2.acceptForward( visitor );
+    		
+    		return visitor.isEnabled();
+    	}
+    	
+    	return super.isEnabled();
+    }
 }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java
index 802ff5f9fcb8764c111a24c4717480b78cbd3163..da260e9cb69575c3359a7b772615b57eb6419349 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java
@@ -36,22 +36,31 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.avatarsmd;
 
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Polygon;
+import java.awt.geom.Line2D;
+import java.util.List;
 
-
-package ui.avatarsmd;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
 import myutil.GraphicLib;
 import myutil.TraceManager;
-import ui.*;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
 import ui.util.IconManager;
 import ui.window.JDialogAvatarTimer;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.LinkedList;
-
 /**
    * Class AvatarSMDExpireTimer
    * Action of waiting for the expiration of a timer
@@ -59,17 +68,22 @@ import java.util.LinkedList;
    * @version 1.0 15/07/2010
    * @author Ludovic APVRILLE
  */
-public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements BasicErrorHighlight, PartOfInvariant {
-    protected int lineLength = 5;
-    protected int textX =  5;
-    protected int textY =  15;
-    protected int arc = 5;
-    protected int linebreak = 10;
+public class AvatarSMDExpireTimer extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements BasicErrorHighlight, PartOfInvariant {
+    
+	protected int lineLength = 5;
+    
+	protected int textX =  5;
+    
+	protected int textY =  15;
+    
+	protected int arc = 5;
+    
+	protected int linebreak = 10;
 
     protected int hourglassWidth = 10;
+    
     protected int hourglassSpace = 2;
 
-
     protected int stateOfError = 0; // Not yet checked
 
     public AvatarSMDExpireTimer(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
@@ -97,8 +111,8 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
         myImageIcon = IconManager.imgic904;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
-
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX + linebreak);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -106,7 +120,6 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
             width = w1;            //updateConnectingPoints();
         }
 
-
         if (stateOfError > 0)  {
             Color c = g.getColor();
             switch(stateOfError) {
@@ -146,13 +159,27 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
         g.drawLine(x1, y1+height1, x1+linebreak, y1+height1/2);
         g.setColor(c);
 
-        g.drawLine(x, y, x+width, y);
-        g.drawLine(x+width, y, x+width, y+height);
-        g.drawLine(x, y+height, x+width, y+height);
-        g.drawLine(x, y, x+linebreak, y+height/2);
-        g.drawLine(x, y+height, x+linebreak, y+height/2);
-
-        // hourglass
+		final Polygon shape = new Polygon();
+		shape.addPoint( x, y );
+		shape.addPoint( x + width, y );
+		shape.addPoint( x + width, y + height );
+		shape.addPoint( x, y + height );
+		shape.addPoint( x + linebreak, y + height / 2 );
+		g.drawPolygon( shape );
+//        g.drawLine(x, y, x+width, y);
+//        g.drawLine(x+width, y, x+width, y+height);
+//        g.drawLine(x, y+height, x+width, y+height);
+//        g.drawLine(x, y, x+linebreak, y+height/2);
+//        g.drawLine(x, y+height, x+linebreak, y+height/2);
+
+        // Issue #69
+    	if ( !isEnabled() && isContainedInEnabledState() ) {
+	    	g.setColor( ColorManager.DISABLED_FILLING );
+	    	g.fillPolygon( shape );
+	    	g.setColor( c );
+    	}
+
+    	// hourglass
         g.setColor(ColorManager.AVATAR_SET_TIMER);
         g.drawLine(x+width+hourglassSpace+1, y+1, x+width+hourglassSpace + hourglassWidth+1, y+1);
         g.drawLine(x+width+hourglassSpace+1, y+height+1, x+width+hourglassSpace + hourglassWidth+1, y+height+1);
@@ -166,10 +193,9 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
 
         //g.drawString("sig()", x+(width-w) / 2, y);
         g.drawString(value, x + (width - w) / 2  + textX, y + textY);
-
-
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) {
             return this;
@@ -182,15 +208,16 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
         return null;
     }
 
-    public void makeValue() {
-    }
+//    public void makeValue() {
+//    }
 
     public String getTimerName() {
         return AvatarSignal.getValue(value, 0);
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-        LinkedList<String> timers = tdp.getMGUI().getAllTimers();
+        List<String> timers = tdp.getMGUI().getAllTimers();
         TraceManager.addDev("Nb of timers:" + timers.size());
 
         JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Timer expiration",  getTimerName(), "", timers, false);
@@ -216,20 +243,19 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
         value = "expire(" + val0 + ")";
 
         return true;
-
     }
 
-
-
-
+    @Override
     public int getType() {
         return TGComponentManager.AVATARSMD_EXPIRE_TIMER;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDLibraryFunctionCall.java b/src/main/java/ui/avatarsmd/AvatarSMDLibraryFunctionCall.java
index 97ee9c8ee5a6e585eb8239de40ec8fd8d91cae89..289727f7299a19725103e6378669b3cd4297d937 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDLibraryFunctionCall.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDLibraryFunctionCall.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarsmd;
 
 import myutil.GraphicLib;
@@ -51,18 +48,23 @@ import ui.util.IconManager;
 import ui.window.JDialogSMDLibraryFunctionCall;
 
 import javax.swing.*;
-import java.awt.*;
-import java.util.LinkedList;
 
+import java.awt.Color;
+import java.awt.Graphics;
+import java.util.LinkedList;
+import java.util.List;
 
 /**
 * @version 1.0 04.18.2016
 * @author Florian LUGOU
 */
-public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComponent implements BasicErrorHighlight {
-    private LinkedList<TAttribute> parameters;
-    private LinkedList<AvatarSignal> signals;
-    private LinkedList<TAttribute> returnAttributes;
+public class AvatarSMDLibraryFunctionCall extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 TGCScalableWithoutInternalComponent*/ implements BasicErrorHighlight {
+    
+	private List<TAttribute> parameters;
+    
+	private List<AvatarSignal> signals;
+    
+	private List<TAttribute> returnAttributes;
 
     private AvatarBDLibraryFunction libraryFunction;
 
@@ -104,8 +106,8 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp
         this.myImageIcon = IconManager.imgic904;
     }
 
+    @Override
     public void internalDrawing(Graphics graph) {
-
         this.value = this.prettyPrint ();
 
         int [] px1 = {this.x, this.x+this.width-AvatarSMDLibraryFunctionCall.linebreak, this.x+this.width, this.x+this.width-AvatarSMDLibraryFunctionCall.linebreak, this.x, this.x+AvatarSMDLibraryFunctionCall.linebreak};
@@ -128,6 +130,13 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp
 
         graph.drawPolygon (px1, py1, 6);
 
+        // Issue #69
+    	if ( !isEnabled() && isContainedInEnabledState() ) {
+    		graph.setColor( ColorManager.DISABLED_FILLING );
+    		graph.fillPolygon( px1, py1, 6  );
+    		graph.setColor( c );
+    	}
+
         graph.drawLine (this.x+this.width/2, this.y, this.x+this.width/2, this.y - AvatarSMDLibraryFunctionCall.lineLength);
         graph.drawLine (this.x+this.width/2, this.y+this.height, this.x+this.width/2, this.y + AvatarSMDLibraryFunctionCall.lineLength + this.height);
 
@@ -149,6 +158,7 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp
             graph.drawString (this.value, this.x + (this.width - stringWidth) / 2 , this.y + (this.height+h)/2);
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (_x < this.x || _x > this.x + this.width || _y > this.y + this.height || _y < this.y)
             return null;
@@ -175,6 +185,7 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp
         return this;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         JDialogSMDLibraryFunctionCall dialog = new JDialogSMDLibraryFunctionCall (
                 this,
@@ -196,27 +207,27 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp
         this.libraryFunction = libraryFunction;
     }
 
-    public LinkedList<TAttribute> getParameters () {
+    public List<TAttribute> getParameters () {
         return this.parameters;
     }
 
-    public void setParameters (LinkedList<TAttribute> parameters) {
+    public void setParameters( List<TAttribute> parameters) {
         this.parameters = parameters;
     }
 
-    public LinkedList<AvatarSignal> getSignals () {
+    public List<AvatarSignal> getSignals () {
         return this.signals;
     }
 
-    public void setSignals (LinkedList<AvatarSignal> signals) {
+    public void setSignals( List<AvatarSignal> signals) {
         this.signals = signals;
     }
 
-    public LinkedList<TAttribute> getReturnAttributes () {
+    public List<TAttribute> getReturnAttributes () {
         return this.returnAttributes;
     }
 
-    public void setReturnAttributes (LinkedList<TAttribute> returnAttributes) {
+    public void setReturnAttributes( List<TAttribute> returnAttributes) {
         this.returnAttributes = returnAttributes;
     }
 
@@ -264,10 +275,12 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp
         return builder.toString ();
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
@@ -426,7 +439,7 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp
         } catch (MalformedModelingException e) {
             throw e;
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
 
         if (this.libraryFunction != null &&
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDParallel.java b/src/main/java/ui/avatarsmd/AvatarSMDParallel.java
deleted file mode 100755
index f36631d091a3d77e5a97cf692f414cb218ee8a05..0000000000000000000000000000000000000000
--- a/src/main/java/ui/avatarsmd/AvatarSMDParallel.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/* 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 ui.avatarsmd;
-
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
-
-/**
- * Class AvatarSMDParallel
- * Parallel operator.
- * To be used in Avatar State Machine Diagrams
- * Creation: 13/04/2010
- * @version 1.0 13/04/2010
- * @author Ludovic APVRILLE
- */
-public class AvatarSMDParallel extends AvatarSMDBasicComponent{
-    private int lineLength = 0;
-    private int textX, textY;
-    
-    public AvatarSMDParallel(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
-        super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-        
-        
-        width = 150;
-        height = 5;
-        
-        textX = width - 10;
-        textY = height - 8;
-        
-        nbConnectingPoint = 10;
-        connectingPoint = new TGConnectingPoint[10];
-        connectingPoint[0] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.167, 0.0);
-        connectingPoint[1] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.333, 0.0);
-        connectingPoint[2] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[3] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.667, 0.0);
-        connectingPoint[4] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.833, 0.0);
-        connectingPoint[5] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.167, 1.0);
-        connectingPoint[6] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.333, 1.0);
-        connectingPoint[7] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.5, 1.0);
-        connectingPoint[8] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.667, 1.0);
-        connectingPoint[9] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.833, 1.0);
-        addTGConnectingPointsCommentCorner();
-        
-        nbInternalTGComponent = 0;
-
-		moveable = true;
-		editable = false;
-		removable = true;
-
-		name = "parallel / synchro";
-		
-		myImageIcon = IconManager.imgic206;
-    }
-    
-    public void internalDrawing(Graphics g) {
-		g.drawRect(x, y, width, height);
-		g.fillRect(x, y, width, height);
-	}
-
-	public TGComponent isOnMe(int x1, int y1) {
-		if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
-			return this;
-		}
-		return null;
-	}
-	
-	public int getType() {
-		return TGComponentManager.AVATARSMD_PARALLEL;
-	}
-	
-	public int getDefaultConnector() {
-      return TGComponentManager.AVATARSMD_CONNECTOR;
-    }
-}
-
-
-
-
-
-
-
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDRandom.java b/src/main/java/ui/avatarsmd/AvatarSMDRandom.java
index 79528c6ccbbef9c1f5d8f958a55f637870fa969a..2b4fce07b79bbefeb1018bcb81454528d3f1928d 100755
--- a/src/main/java/ui/avatarsmd/AvatarSMDRandom.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDRandom.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarsmd;
 
 import myutil.GraphicLib;
@@ -60,7 +57,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 12/07/2010
  * @author Ludovic APVRILLE
  */
-public class AvatarSMDRandom  extends AvatarSMDBasicComponent implements EmbeddedComment, BasicErrorHighlight {
+public class AvatarSMDRandom extends  AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements EmbeddedComment, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -97,15 +94,16 @@ public class AvatarSMDRandom  extends AvatarSMDBasicComponent implements Embedde
         myImageIcon = IconManager.imgic912;
     }
 
-    public void makeValue() {
+    private void makeValue() {
         valueRandom = variable + " = RANDOM" + functionId + "[" + minValue + ", " + maxValue + "]";
     }
 
 	public void setVariable(String v){
 		variable=v;
 	}
-    public void internalDrawing(Graphics g) {
 
+	@Override
+    public void internalDrawing(Graphics g) {
         if (valueRandom.length() == 0) {
             makeValue();
         }
@@ -118,8 +116,9 @@ public class AvatarSMDRandom  extends AvatarSMDBasicComponent implements Embedde
             //updateConnectingPoints();
         }
 
+        Color c = g.getColor();
+
         if (stateOfError > 0)  {
-            Color c = g.getColor();
             switch(stateOfError) {
             case ErrorHighlight.OK:
                 g.setColor(ColorManager.RANDOM);
@@ -132,13 +131,22 @@ public class AvatarSMDRandom  extends AvatarSMDBasicComponent implements Embedde
         }
 
         g.drawRoundRect(x, y, width, height, arc, arc);
-        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
+
+        // Issue #69
+    	if ( !isEnabled() && isContainedInEnabledState() ) {
+	    	g.setColor( ColorManager.DISABLED_FILLING );
+	    	g.fillRoundRect(x, y, width, height, arc, arc);
+	    	g.setColor( c );
+    	}
+
+    	g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
         g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
         //g.drawLine(x+width, y+height/2, x+width +lineLength, y+height/2);
 
         g.drawString(valueRandom, x + (width - w) / 2 , y + textY);
     }
 
+	@Override
     public boolean editOndoubleClick(JFrame frame) {
         boolean error = false;
         String errors = "";
@@ -194,6 +202,7 @@ public class AvatarSMDRandom  extends AvatarSMDBasicComponent implements Embedde
         return true;
     }
 
+	@Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -226,6 +235,7 @@ public class AvatarSMDRandom  extends AvatarSMDBasicComponent implements Embedde
         return functionId;
     }
 
+	@Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data variable=\"");
@@ -243,18 +253,13 @@ public class AvatarSMDRandom  extends AvatarSMDBasicComponent implements Embedde
 
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
-        //
         try {
-
             NodeList nli;
             Node n1, n2;
             Element elt;
         //    int k;
             String s;
 
-            //
-            //
-
             for(int i=0; i<nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
@@ -284,19 +289,18 @@ public class AvatarSMDRandom  extends AvatarSMDBasicComponent implements Embedde
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeValue();
     }
 
-
+	@Override
     public int getType() {
         return TGComponentManager.AVATARSMD_RANDOM;
     }
 
+	@Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
-
-
 }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java b/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java
index ad21ef15f3329e08c73cbf48bbf0b8460cb0f9cc..b705e2a4c382fc40585864f40aa41471df5dc4d0 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java
@@ -36,29 +36,38 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.avatarsmd;
 
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Polygon;
+import java.awt.geom.Line2D;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+import java.util.concurrent.ConcurrentHashMap;
 
-
-package ui.avatarsmd;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
 import myutil.GraphicLib;
 import myutil.TraceManager;
-import ui.*;
-import ui.util.IconManager;
-import ui.window.JDialogAvatarSignal;
-
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.LinkedList;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Vector;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.CheckableAccessibility;
+import ui.CheckableLatency;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.LinkedReference;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
 import ui.avatarrd.AvatarRDRequirement;
-
 import ui.tmlad.TMLADReadChannel;
+import ui.util.IconManager;
+import ui.window.JDialogAvatarSignal;
 /**
  * Class AvatarSMDReceiveSignal
  * Action of receiving a signal
@@ -66,7 +75,7 @@ import ui.tmlad.TMLADReadChannel;
  * @version 1.0 12/04/2010
  * @author Ludovic APVRILLE
  */
-public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements CheckableAccessibility, LinkedReference, CheckableLatency, BasicErrorHighlight, PartOfInvariant {
+public class AvatarSMDReceiveSignal extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements CheckableAccessibility, LinkedReference, CheckableLatency, BasicErrorHighlight, PartOfInvariant {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -74,14 +83,12 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
     protected int linebreak = 10;
 	protected int textX1 = 2;
    
-	private ConcurrentHashMap<String, String> latencyVals;
-
+	private Map<String, String> latencyVals;
 
 	protected int latencyX=30;
 	protected int latencyY=25;
 	protected int textWidth=10;
 	protected int textHeight=20;
-	
 
 	protected int stateOfError = 0; // Not yet checked
     
@@ -112,12 +119,12 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
 		//latencyVals.put("sendChannel: sensorData", "15");
     }
     
-
 	public void addLatency(String name, String num){
 		latencyVals.put(name,num);
 	}
-    public void internalDrawing(Graphics g) {
-		
+    
+	@Override
+	public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value + textX1);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -126,7 +133,6 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
             //updateConnectingPoints();
         }
 		
-		
 		if (stateOfError > 0)  {
 			Color c = g.getColor();
 			switch(stateOfError) {
@@ -165,13 +171,27 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
         g.drawLine(x1, y1, x1+linebreak, y1+height1/2);
         g.drawLine(x1, y1+height1, x1+linebreak, y1+height1/2);
 		g.setColor(c);
+
+		final Polygon shape = new Polygon();
+		shape.addPoint( x, y );
+		shape.addPoint( x + width, y );
+		shape.addPoint( x + width, y + height );
+		shape.addPoint( x, y + height );
+		shape.addPoint( x + linebreak, y + height / 2 );
+		g.drawPolygon( shape );
 		
-        g.drawLine(x, y, x+width, y);
-        g.drawLine(x+width, y, x+width, y+height);
-        g.drawLine(x, y+height, x+width, y+height);
-        g.drawLine(x, y, x+linebreak, y+height/2);
-        g.drawLine(x, y+height, x+linebreak, y+height/2);
+//        g.drawLine(x, y, x+width, y);
+//        g.drawLine(x+width, y, x+width, y+height);
+//        g.drawLine(x, y+height, x+width, y+height);
+//        g.drawLine(x, y, x+linebreak, y+height/2);
+//        g.drawLine(x, y+height, x+linebreak, y+height/2);
 		
+        // Issue #69
+    	if ( !isEnabled() && isContainedInEnabledState() ) {
+	    	g.setColor( ColorManager.DISABLED_FILLING );
+	    	g.fillPolygon( shape );
+	    	g.setColor( c );
+    	}
 		   
         //g.drawString("sig()", x+(width-w) / 2, y);
         g.drawString(value, x + linebreak + textX1, y + textY);
@@ -183,6 +203,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
 				drawLatencyInformation(g);
 			}
 		}
+		
 		if (reference!=null){
 			if (reference instanceof AvatarRDRequirement){
 				AvatarRDRequirement refReq = (AvatarRDRequirement) reference;
@@ -190,7 +211,8 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
 			}
 		}
     }
-	public void drawLatencyInformation(Graphics g){
+	
+	private void drawLatencyInformation(Graphics g){
 		int index=1;
 		for (String s:latencyVals.keySet()){
 			int w  = g.getFontMetrics().stringWidth(s);
@@ -270,9 +292,8 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
 					}
 				}
 				if (reference instanceof TMLADReadChannel){
-				//	
 					TMLADReadChannel rc = (TMLADReadChannel) reference;
-					ConcurrentHashMap<String, String> refLats =rc.getLatencyMap();
+					Map<String, String> refLats =rc.getLatencyMap();
 					//
 					for (String checkpoint:refLats.keySet()){
 						if (s.split("\\-")[1].split(":")[0].equals(checkpoint.split("channel:")[1].split(" ")[0])){
@@ -296,6 +317,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
 		}
 	}
     
+	@Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -308,7 +330,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
         return null;
     }
     
-    public void makeValue() {
+    //public void makeValue() {
         /*boolean first = true;
         value = eventName + "(";
         for(int i=0; i<nParam; i++) {
@@ -324,7 +346,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
         }
         value += ")";*/
         
-    }
+  //  }
     
     public String getSignalName() {
        if (value == null) {
@@ -360,14 +382,14 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
         return nParam;
     }*/
 	
-    
+
+	@Override
     public boolean editOndoubleClick(JFrame frame) {
-    //	
-		LinkedList<AvatarSignal> signals = tdp.getMGUI().getAllSignals();
+		List<AvatarSignal> signals = tdp.getMGUI().getAllSignals();
 		TraceManager.addDev("Nb of signals:" + signals.size());
 		
 
-		ArrayList<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks();
+		List<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks();
 		Vector<TGComponent> refs = new Vector<TGComponent>();
 		for (TGComponent req: tdp.getMGUI().getAllRequirements()){
             //
@@ -380,6 +402,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
 				refs.add(tg);
 			}
 		}
+		
 		JDialogAvatarSignal jdas = new JDialogAvatarSignal(frame, "Setting receive signal",  value, signals, false, reference, refs);
 		//jdas.setSize(350, 300);
         GraphicLib.centerOnParent(jdas, 550, 300);
@@ -411,15 +434,17 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
          
     }
     
-
+	@Override
     public int getType() {
         return TGComponentManager.AVATARSMD_RECEIVE_SIGNAL;
     }
     
-     public int getDefaultConnector() {
-      return TGComponentManager.AVATARSMD_CONNECTOR;
+	@Override
+    public int getDefaultConnector() {
+		return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 	
+	@Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java
index 2498e1f818897605d529e1d8b496d6fed5314480..6eab76979e64f20b527b7d8fa475bd9095d2c9f3 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java
@@ -36,22 +36,31 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.avatarsmd;
 
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Polygon;
+import java.awt.geom.Line2D;
+import java.util.List;
 
-
-package ui.avatarsmd;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
 import myutil.GraphicLib;
 import myutil.TraceManager;
-import ui.*;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
 import ui.util.IconManager;
 import ui.window.JDialogAvatarTimer;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.LinkedList;
-
 /**
  * Class AvatarSMDResetTimer
  * Action of resetting a timer
@@ -59,7 +68,7 @@ import java.util.LinkedList;
  * @version 1.0 15/07/2010
  * @author Ludovic APVRILLE
  */
-public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements BasicErrorHighlight, PartOfInvariant {
+public class AvatarSMDResetTimer extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements BasicErrorHighlight, PartOfInvariant {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -97,8 +106,8 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi
         myImageIcon = IconManager.imgic904;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
-		
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -142,11 +151,26 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi
         g.drawLine(x1+width1-linebreak, y1+height1, x1+width1, y1+height1/2);
 		g.setColor(c);
 		
-		g.drawLine(x, y, x+width-linebreak, y);
-        g.drawLine(x, y+height, x+width-linebreak, y+height);
-        g.drawLine(x, y, x, y+height);
-        g.drawLine(x+width-linebreak, y, x+width, y+height/2);
-        g.drawLine(x+width-linebreak, y+height, x+width, y+height/2);
+		final Polygon shape = new Polygon();
+		shape.addPoint( x, y );
+		shape.addPoint( x + width - linebreak, y );
+		shape.addPoint( x + width, y + height / 2 );
+		shape.addPoint( x + width - linebreak, y + height );
+		shape.addPoint(x, y + height );
+		
+		g.drawPolygon( shape );
+//		g.drawLine(x, y, x+width-linebreak, y);
+//        g.drawLine(x, y+height, x+width-linebreak, y+height);
+//        g.drawLine(x, y, x, y+height);
+//        g.drawLine(x+width-linebreak, y, x+width, y+height/2);
+//        g.drawLine(x+width-linebreak, y+height, x+width, y+height/2);
+
+        // Issue #69
+    	if ( !isEnabled() && isContainedInEnabledState() ) {
+	    	g.setColor( ColorManager.DISABLED_FILLING );
+	    	g.fillPolygon( shape );
+	    	g.setColor( c );
+    	}
 		
 		// hourglass
 		g.setColor(ColorManager.AVATAR_SET_TIMER);
@@ -162,10 +186,9 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi
 		
         //g.drawString("sig()", x+(width-w) / 2, y);
         g.drawString(value, x + (width - w) / 2 , y + textY);
-		
-		
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) {
             return this;
@@ -178,15 +201,16 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi
         return null;
     }
     
-    public void makeValue() {
-    }
+//    public void makeValue() {
+//    }
     
     public String getTimerName() {
         return AvatarSignal.getValue(value, 0);
     }
     
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-		LinkedList<String> timers = tdp.getMGUI().getAllTimers();
+		List<String> timers = tdp.getMGUI().getAllTimers();
 		TraceManager.addDev("Nb of timers:" + timers.size());
 		
 		JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Reset timer",  getTimerName(), "", timers, false);
@@ -212,20 +236,19 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi
 		value = "reset(" + val0 + ")";
 		
 		return true;
-         
     }
-    
-  
-    
 
+    @Override
     public int getType() {
         return TGComponentManager.AVATARSMD_RESET_TIMER;
     }
     
-     public int getDefaultConnector() {
-      return TGComponentManager.AVATARSMD_CONNECTOR;
+    @Override
+    public int getDefaultConnector() {
+    	return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java b/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java
index b9000b58a5f4d83d6ed1a3a2663759589615c420..aefcf54dface93a33001f78b6cf39474a4137f4d 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java
@@ -36,27 +36,37 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarsmd;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-import ui.window.JDialogAvatarSignal;
-
-import javax.swing.*;
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Polygon;
 import java.awt.geom.Line2D;
-import java.util.LinkedList;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.Vector;
-import ui.avatarrd.AvatarRDRequirement;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
+import myutil.GraphicLib;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.CheckableAccessibility;
+import ui.CheckableLatency;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.LinkedReference;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.avatarrd.AvatarRDRequirement;
 import ui.tmlad.TMLADWriteChannel;
+import ui.util.IconManager;
+import ui.window.JDialogAvatarSignal;
 /**
    * Class AvatarSMDSendSignal
    * Action of sending a signal
@@ -64,7 +74,7 @@ import ui.tmlad.TMLADWriteChannel;
    * @version 1.0 12/04/2010
    * @author Ludovic APVRILLE
  */
-public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements CheckableAccessibility, LinkedReference, CheckableLatency, BasicErrorHighlight, PartOfInvariant {
+public class AvatarSMDSendSignal extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements CheckableAccessibility, LinkedReference, CheckableLatency, BasicErrorHighlight, PartOfInvariant {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -105,11 +115,13 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
         myImageIcon = IconManager.imgic904;
 		latencyVals = new ConcurrentHashMap<String, String>();
     }
+    
 	public void addLatency(String name, String num){
 		latencyVals.put(name,num);
 	}
+	
+	@Override
     public void internalDrawing(Graphics g) {
-
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -117,7 +129,6 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
             width = w1;            //updateConnectingPoints();
         }
 
-
         if (stateOfError > 0)  {
             Color c = g.getColor();
             switch(stateOfError) {
@@ -157,17 +168,33 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
         g.drawLine(x1+width1-linebreak, y1+height1, x1+width1, y1+height1/2);
         g.setColor(c);
 
-        g.drawLine(x, y, x+width-linebreak, y);
-        g.drawLine(x, y+height, x+width-linebreak, y+height);
-        g.drawLine(x, y, x, y+height);
-        g.drawLine(x+width-linebreak, y, x+width, y+height/2);
-        g.drawLine(x+width-linebreak, y+height, x+width, y+height/2);
+        final Polygon shape = new Polygon();
+        shape.addPoint( x, y );
+        shape.addPoint( x + width - linebreak, y );
+        shape.addPoint( x + width, y + height / 2 );
+        shape.addPoint( x + width - linebreak, y + height );
+        shape.addPoint( x, y + height );
+        
+        g.drawPolygon( shape );
+
+        // Issue #69
+    	if ( !isEnabled() && isContainedInEnabledState() ) {
+	    	g.setColor( ColorManager.DISABLED_FILLING );
+	    	g.fillPolygon( shape );
+	    	g.setColor( c );
+    	}
+//        g.drawLine(x, y, x+width-linebreak, y);
+//        g.drawLine(x, y+height, x+width-linebreak, y+height);
+//        g.drawLine(x, y, x, y+height);
+//        g.drawLine(x+width-linebreak, y, x+width, y+height/2);
+//        g.drawLine(x+width-linebreak, y+height, x+width, y+height/2);
 
 
         //g.drawString("sig()", x+(width-w) / 2, y);
         g.drawString(value, x + (width - w) / 2 , y + textY);
 		//g.drawString("Reference " + reference, x-latencyX/2, y+latencyY/2);
-		if (getCheckLatency()){
+		
+        if (getCheckLatency()){
 			ConcurrentHashMap<String, String> latency =tdp.getMGUI().getLatencyVals(getAVATARID());
 			if (latency!=null){
 				latencyVals=latency;
@@ -182,7 +209,7 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
 		}
     }
 
-	public void drawLatencyInformation(Graphics g){
+	private void drawLatencyInformation(Graphics g){
 		int index=1;
 		for (String s:latencyVals.keySet()){
 			int w  = g.getFontMetrics().stringWidth(s);
@@ -264,7 +291,7 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
 				if (reference instanceof TMLADWriteChannel){
 					//	
 					TMLADWriteChannel rc = (TMLADWriteChannel) reference;
-					ConcurrentHashMap<String, String> refLats =rc.getLatencyMap();
+					Map<String, String> refLats =rc.getLatencyMap();
 					//
 					for (String checkpoint:refLats.keySet()){
 						if (s.split("\\-")[1].split(":")[0].equals(checkpoint.split(":")[1].split(" ")[0])){
@@ -282,13 +309,13 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
 				}
 			}
 			
-			
 			g.drawString(latencyVals.get(s), x-latencyX/2, y-latencyY*index/2);
 			g.setColor(c);
 			index++;
 		}
 	}
 
+	@Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -301,23 +328,23 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
         return null;
     }
 
-    public void makeValue() {
-        /*boolean first = true;
-          value = eventName + "(";
-          for(int i=0; i<nParam; i++) {
-          if (params[i].length() > 0) {
-          if (!first) {
-          value += ", " + params[i];
-          } else {
-          first = false;
-          value += params[i];
-          }
-
-          }
-          }
-          value += ")";*/
-
-    }
+//    public void makeValue() {
+//        /*boolean first = true;
+//          value = eventName + "(";
+//          for(int i=0; i<nParam; i++) {
+//          if (params[i].length() > 0) {
+//          if (!first) {
+//          value += ", " + params[i];
+//          } else {
+//          first = false;
+//          value += params[i];
+//          }
+//
+//          }
+//          }
+//          value += ")";*/
+//
+//    }
 
     public String getSignalName() {
         if (value == null) {
@@ -353,10 +380,11 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
         return AvatarSignal.getValue(value, _index);
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-        LinkedList<AvatarSignal> signals = tdp.getMGUI().getAllSignals();
+        List<AvatarSignal> signals = tdp.getMGUI().getAllSignals();
         //TraceManager.addDev("Nb of signals:" + signals.size());
-		ArrayList<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks();
+		List<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks();
 		
 		Vector<TGComponent> refs = new Vector<TGComponent>();
 		for (TGComponent req: tdp.getMGUI().getAllRequirements()){
@@ -466,15 +494,17 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
       makeValue();
       }*/
 
-
+	@Override
     public int getType() {
         return TGComponentManager.AVATARSMD_SEND_SIGNAL;
     }
 
+	@Override
     public int getDefaultConnector() {
         return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 
+	@Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java
index ee71ee48658042a58015a793021c627d9331cc1f..d5915ffa4f2ec4fd11e375d407685bcede6759a0 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java
@@ -36,22 +36,31 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.avatarsmd;
 
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Polygon;
+import java.awt.geom.Line2D;
+import java.util.List;
 
-
-package ui.avatarsmd;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
 import myutil.GraphicLib;
 import myutil.TraceManager;
-import ui.*;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
 import ui.util.IconManager;
 import ui.window.JDialogAvatarTimer;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.LinkedList;
-
 /**
  * Class AvatarSMDSetTimer
  * Action of setting a timer
@@ -59,7 +68,7 @@ import java.util.LinkedList;
  * @version 1.0 15/07/2010
  * @author Ludovic APVRILLE
  */
-public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicErrorHighlight, PartOfInvariant {
+public class AvatarSMDSetTimer extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements BasicErrorHighlight, PartOfInvariant {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -97,9 +106,9 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
         myImageIcon = IconManager.imgic904;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
-		
-        int w  = g.getFontMetrics().stringWidth(value);
+		int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
             setCd(x + width/2 - w1/2, y);
@@ -141,14 +150,30 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
         g.drawLine(x1+width1-linebreak, y1, x1+width1, y1+height1/2);
         g.drawLine(x1+width1-linebreak, y1+height1, x1+width1, y1+height1/2);
 		g.setColor(c);
+
+		final Polygon shape = new Polygon();
+		shape.addPoint( x, y );
+		shape.addPoint( x + width - linebreak, y );
+		shape.addPoint( x + width, y + height / 2 );
+		shape.addPoint( x + width - linebreak, y + height );
+		shape.addPoint(x, y + height );
 		
-		g.drawLine(x, y, x+width-linebreak, y);
-        g.drawLine(x, y+height, x+width-linebreak, y+height);
-        g.drawLine(x, y, x, y+height);
-        g.drawLine(x+width-linebreak, y, x+width, y+height/2);
-        g.drawLine(x+width-linebreak, y+height, x+width, y+height/2);
+		g.drawPolygon( shape );
+//		
+//		g.drawLine(x, y, x+width-linebreak, y);
+//        g.drawLine(x, y+height, x+width-linebreak, y+height);
+//        g.drawLine(x, y, x, y+height);
+//        g.drawLine(x+width-linebreak, y, x+width, y+height/2);
+//        g.drawLine(x+width-linebreak, y+height, x+width, y+height/2);
 		
-		// hourglass
+        // Issue #69
+    	if ( !isEnabled() && isContainedInEnabledState() ) {
+	    	g.setColor( ColorManager.DISABLED_FILLING );
+	    	g.fillPolygon( shape );
+	    	g.setColor( c );
+    	}
+
+    	// hourglass
 		g.setColor(ColorManager.AVATAR_SET_TIMER);
 		g.drawLine(x+width+hourglassSpace+1, y+1, x+width+hourglassSpace + hourglassWidth+1, y+1);
 		g.drawLine(x+width+hourglassSpace+1, y+height+1, x+width+hourglassSpace + hourglassWidth+1, y+height+1);
@@ -160,14 +185,11 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
 		g.drawLine(x+width+hourglassSpace, y, x+width+hourglassSpace + hourglassWidth, y+height);
 		g.drawLine(x+width+hourglassSpace, y+height, x+width+hourglassSpace + hourglassWidth, y);
 		
-		
-		
         //g.drawString("sig()", x+(width-w) / 2, y);
         g.drawString(value, x + (width - w) / 2 , y + textY);
-		
-		
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) {
             return this;
@@ -180,8 +202,8 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
         return null;
     }
     
-    public void makeValue() {
-    }
+//    public void makeValue() {
+//    }
     
     public String getTimerName() {
         return AvatarSignal.getValue(value, 0);
@@ -191,8 +213,9 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
 		return AvatarSignal.getValue(value, 1);
 	}
     
+	@Override
     public boolean editOndoubleClick(JFrame frame) {
-		LinkedList<String> timers = tdp.getMGUI().getAllTimers();
+		List<String> timers = tdp.getMGUI().getAllTimers();
 		TraceManager.addDev("Nb of timers:" + timers.size());
 		
 		JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Setting timer set",  getTimerName(), getTimerValue(), timers, true);
@@ -229,18 +252,18 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
 		return true;
          
     }
-    
-  
-    
 
+	@Override
     public int getType() {
         return TGComponentManager.AVATARSMD_SET_TIMER;
     }
     
-     public int getDefaultConnector() {
-      return TGComponentManager.AVATARSMD_CONNECTOR;
+	@Override
+    public int getDefaultConnector() {
+		return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 	
+	@Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDStartState.java b/src/main/java/ui/avatarsmd/AvatarSMDStartState.java
index a3b25ceca27d64caa1e730925bb8a2b5e9f50327..b815131fe67c80b6c8df60d045fa51279bbe0f27 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDStartState.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDStartState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarsmd;
 
 import myutil.GraphicLib;
@@ -56,7 +53,8 @@ import java.awt.geom.Line2D;
  * @author Ludovic APVRILLE
  */
 public class AvatarSMDStartState extends AvatarSMDBasicComponent implements EmbeddedComment, PartOfInvariant{
-    private int lineLength = 5;
+    
+	private int lineLength = 5;
     
     public AvatarSMDStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -79,11 +77,13 @@ public class AvatarSMDStartState extends AvatarSMDBasicComponent implements Embe
         myImageIcon = IconManager.imgic222;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         g.fillOval(x, y, width, height);
         g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -96,12 +96,28 @@ public class AvatarSMDStartState extends AvatarSMDBasicComponent implements Embe
         return null;
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.AVATARSMD_START_STATE;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.AVATARSMD_CONNECTOR;
+    	return TGComponentManager.AVATARSMD_CONNECTOR;
     }
-    
+	
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptBackward( final ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			
+			// Needed to escape containing composite state machine
+			if ( getFather() instanceof AvatarSMDState ) {
+				getFather().acceptBackward( visitor );
+			}
+		}
+	}
 }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDState.java b/src/main/java/ui/avatarsmd/AvatarSMDState.java
index 790ac83d49be67a6f3ff6ca6227ad4672146a39a..3f3d3415bdbf8e5fffc4f1da49bf038739d9068e 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDState.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarsmd;
 
 import myutil.Conversion;
@@ -51,11 +48,15 @@ import ui.util.IconManager;
 import ui.window.JDialogAvatarState;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.util.ArrayList;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Vector;
 
-
 /**
    * Class AvatarSMDState
    * State. To be used in AVATAR State Machine Diagrams
@@ -156,7 +157,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
 
         name = tdp.findAvatarSMDStateName("state");
         setValue(name);
-	name = "State";
+        name = "State";
         oldValue = value;
 
         currentFontSize = maxFontSize;
@@ -190,6 +191,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         mutexStates = null;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         Font f = g.getFont();
         Font fold = f;
@@ -235,18 +237,22 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
 
         }
 
-        //
-
         Color c = g.getColor();
         //g.setColor(ColorManager.AVATAR_STATE);
-        Color avat = ColorManager.AVATAR_STATE;
-        g.setColor(new Color(avat.getRed(), avat.getGreen(), Math.min(255, avat.getBlue() + (getMyDepth() * 10))));
+        
+        // Issue #69
+    	if ( isEnabled() ) {
+            Color avat = ColorManager.AVATAR_STATE;
+    		g.setColor(new Color(avat.getRed(), avat.getGreen(), Math.min(255, avat.getBlue() + (getMyDepth() * 10))));
+    	}
+    	else {
+	    	g.setColor( ColorManager.DISABLED_FILLING );
+    	}
+
         g.fillRoundRect(x, y, width, height, 5, 5);
         g.setColor(c);
         g.drawRoundRect(x, y, width, height, 5, 5);
 
-
-
         // Strings
         int w;
         int h = 0;
@@ -306,7 +312,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         drawSecurityInformation(g);
     }
 
-    public void drawSecurityInformation(Graphics g) {
+    private void drawSecurityInformation(Graphics g) {
         if (securityInformation > 0) {
 
             Color c = g.getColor();
@@ -330,10 +336,9 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
             g.drawRect(x-12, y, 9, 7);
 
         }
-
     }
 
-
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
 
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
@@ -342,13 +347,12 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         return null;
     }
 
-
     public String getStateName() {
         return value;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
-
         oldValue = value;
 
         //String text = getName() + ": ";
@@ -357,7 +361,6 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
           null,
           getValue());*/
 
-
         JDialogAvatarState jdas = new JDialogAvatarState(frame, "Setting state parameters", value, entryCode);
        // jdas.setSize(600, 550);
         GraphicLib.centerOnParent(jdas, 600, 550 );
@@ -370,7 +373,6 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
 
         String s = jdas.getStateName();
 
-
         if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
             //boolean b;
             if (!TAttribute.isAValidId(s, false, false)) {
@@ -407,19 +409,19 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         entryCode =  jdas.getEntryCode();
 
         return true;
-
-
     }
 
+    @Override
     public void recalculateSize() {
         width = Math.max(width, value.length()*11);
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.AVATARSMD_STATE;
     }
 
+    @Override
     public boolean acceptSwallowedTGComponent(TGComponent tgc) {
         if (tgc instanceof AvatarSMDBasicComponent) {
             return true;
@@ -429,6 +431,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
 
     }
 
+    @Override
     public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
         boolean swallowed = false;
 
@@ -475,6 +478,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         return true;
     }
 
+    @Override
     public void removeSwallowedTGComponent(TGComponent tgc) {
         removeMyInternalComponent(tgc, false);
     }
@@ -514,7 +518,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         return false;
     }
 
-
+    @Override
     public void hasBeenResized() {
         for(int i=0; i<nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarSMDBasicComponent) {
@@ -531,6 +535,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
 
     }
 
+    @Override
     public void resizeWithFather() {
 
         if ((father != null) && (father instanceof AvatarSMDState)) {
@@ -542,8 +547,8 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         }
     }
 
-    public LinkedList<AvatarSMDState> getStateList() {
-        LinkedList<AvatarSMDState> list = new LinkedList<AvatarSMDState>();
+    public List<AvatarSMDState> getStateList() {
+        List<AvatarSMDState> list = new LinkedList<AvatarSMDState>();
         for(int i=0; i<nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarSMDState) {
                 list.add((AvatarSMDState)(tgcomponent[i]));
@@ -552,8 +557,8 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         return list;
     }
 
-    public LinkedList<AvatarSMDState> getFullStateList() {
-        LinkedList<AvatarSMDState> list = new LinkedList<AvatarSMDState>();
+    public List<AvatarSMDState> getFullStateList() {
+        List<AvatarSMDState> list = new LinkedList<AvatarSMDState>();
         for(int i=0; i<nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarSMDState) {
                 list.add((AvatarSMDState)(tgcomponent[i]));
@@ -564,7 +569,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
     }
 
     public boolean hasInternalStateWithName(String name) {
-        LinkedList<AvatarSMDState> list  = getFullStateList();
+        List<AvatarSMDState> list  = getFullStateList();
         for(AvatarSMDState s: list) {
             if (s.getValue().compareTo(name) ==0) {
                 return true;
@@ -573,13 +578,14 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         return false;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 
     public AvatarSMDState checkForStartStateOfCompositeStates() {
         AvatarSMDState tgc;
-        LinkedList<AvatarSMDState> list  = getFullStateList();
+        List<AvatarSMDState> list  = getFullStateList();
         for(AvatarSMDState s: list) {
             tgc = s.checkForStartStateOfCompositeStates();
             if (tgc != null) {
@@ -597,6 +603,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         if (cpt > 1) {
             return this;
         }
+        
         return null;
     }
 
@@ -617,6 +624,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         return s;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
 
@@ -689,10 +697,9 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
 
-
         /*if (tmpGlobalCode.trim().length() == 0) {
           globalCode = null;
           } else {
@@ -704,8 +711,6 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
             entryCode = Conversion.wrapText(tmpEntryCode);
             //TraceManager.addDev("Entry code = " + entryCode);
         }
-
-
     }
 
     /*public boolean hasGlobalCode() {
@@ -774,7 +779,6 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
         return ret;
     }
 
-
     public void resetSecurityInfo() {
         securityInformation = NOT_VERIFIED;
         for(int i=0; i<nbInternalTGComponent; i++) {
@@ -797,8 +801,146 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements
                 ((AvatarSMDState)tgcomponent[i]).setSecurityInfo(_info, _name);
             }
         }
-
     }
 
-
+	/* Issue #69
+	 * (non-Javadoc)
+	 * @see ui.AbstractCDElement#canBeDisabled()
+	 */
+	@Override
+    public boolean canBeDisabled() {
+		if ( getFather() instanceof AvatarSMDState ) {
+			return getFather().isEnabled();
+		}
+		
+    	return true;
+    }
+	
+	private List<AvatarSMDConnector> getContainedConnectors() {
+		final List<AvatarSMDConnector> connectors = new ArrayList<AvatarSMDConnector>();
+		
+    	for ( final TGComponent component : tdp.getComponentList() ) {
+    		if ( component instanceof AvatarSMDConnector ) {
+    			final AvatarSMDConnector smdCon = (AvatarSMDConnector) component;
+    			
+    			if ( smdCon.isContainedBy( this ) ) {
+    				connectors.add( smdCon );
+    			}
+    		}
+    	}
+    	
+    	return connectors;
+	}
+	
+    /**
+     * Issue #69
+     * @param _enabled
+     */
+    @Override
+    public void setEnabled( final boolean _enabled ) {
+    	if ( _enabled ) { 
+        	super.setEnabled( _enabled );
+    	}
+    	
+    	// Enabling for composite states
+    	for ( final TGComponent component : tgcomponent ) {
+    		if ( component.canBeDisabled() ) {
+    			component.setEnabled( _enabled );
+    		}
+    	}
+    	
+    	for ( final AvatarSMDConnector containedConnector : getContainedConnectors() ) {
+    		containedConnector.getAvatarSMDTransitionInfo().setEnabled( _enabled );
+    	}
+
+    	if ( !_enabled ) { 
+        	super.setEnabled( _enabled );
+    	}
+    	
+    	// Enabling of states with the same name
+    	for ( final AvatarSMDState sameState : getSameStates() ) {
+    		sameState.doSetEnabled( _enabled );
+    	}
+    }
+    
+    public List<AvatarSMDState> getSameStates() {
+    	final List<AvatarSMDState> states = new ArrayList<AvatarSMDState>();
+    	
+    	for ( final TGComponent component : tdp.getComponentList() ) {
+    		if ( 	component != this && getValue() != null && component instanceof AvatarSMDState && 
+    				getFather() == component.getFather() && getValue().equals( component.getValue() ) ) {
+    			states.add( (AvatarSMDState) component );
+    		}
+    	}
+    	
+    	return states;
+    }
+    
+    public AvatarSMDStartState getCompositeStartState() {
+		if ( tgcomponent ==  null ) {
+			return null;
+		}
+		
+		for ( final TGComponent subCompo : tgcomponent ) {
+			if ( subCompo instanceof AvatarSMDStartState ) {
+				return (AvatarSMDStartState) subCompo;
+			}
+		}
+
+		return null;
+    }
+	
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.CDElement#acceptForward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptForward( final ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			final AvatarSMDStartState subStartElement = getCompositeStartState();
+			
+			if ( subStartElement != null ) {
+				subStartElement.acceptForward( visitor );
+			}
+			
+			if ( connectingPoint !=  null ) {
+				for ( final TGConnectingPoint point : connectingPoint ) {
+					final TGConnector connector = getConnectorConnectedTo( point );
+					
+					if ( connector != null && point == connector.getTGConnectingPointP1() ) {
+						point.acceptForward( visitor );
+					}
+				}
+			}
+			
+			// Also visit the states with the same name
+			for ( final AvatarSMDState state : getSameStates() ) {
+				state.acceptForward( visitor );
+			}
+		}
+	}
+	
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor)
+     */
+    @Override
+	public void acceptBackward( final ICDElementVisitor visitor ) {
+		if ( visitor.visit( this ) ) {
+			if ( connectingPoint !=  null ) {
+				for ( final TGConnectingPoint point : connectingPoint ) {
+					final TGConnector connector = getConnectorConnectedTo( point );
+					
+					if ( connector != null && point == connector.getTGConnectingPointP2() ) {
+						point.acceptBackward( visitor );
+					}
+				}
+			}
+		}
+		
+		// Also visit the states with the same name
+		for ( final AvatarSMDState state : getSameStates() ) {
+			state.acceptBackward( visitor );
+		}
+	}
 }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDToolBar.java b/src/main/java/ui/avatarsmd/AvatarSMDToolBar.java
index 356cdb74c871550dc43e93f12bbfe659e404e9e2..e774c907fe4baafaf95335efd483724872be494c 100755
--- a/src/main/java/ui/avatarsmd/AvatarSMDToolBar.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDToolBar.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarsmd;
 
 import ui.MainGUI;
@@ -47,9 +44,6 @@ import ui.TToolBar;
 
 import javax.swing.*;
 
-//import java.awt.*;
-//import java.awt.event.*;
-
 /**
  * Class AvatarSMDToolBar
  * Toolbar associated with AVATAR state Machines
@@ -59,11 +53,11 @@ import javax.swing.*;
  */
 public class AvatarSMDToolBar extends TToolBar {
     
-    
     public AvatarSMDToolBar(MainGUI _mgui) {
         super(_mgui);
     }
     
+    @Override
     protected void setActive(boolean b) {
         mgui.actions[TGUIAction.ASMD_EDIT].setEnabled(b);
         mgui.actions[TGUIAction.UML_NOTE].setEnabled(b);
@@ -75,7 +69,7 @@ public class AvatarSMDToolBar extends TToolBar {
 		mgui.actions[TGUIAction.ASMD_SEND_SIGNAL].setEnabled(b);
         mgui.actions[TGUIAction.ASMD_RECEIVE_SIGNAL].setEnabled(b);
         mgui.actions[TGUIAction.ASMD_LIBRARY_FUNCTION_CALL].setEnabled(b);
-		mgui.actions[TGUIAction.ASMD_PARALLEL].setEnabled(b);
+		//mgui.actions[TGUIAction.ASMD_PARALLEL].setEnabled(b);
 		mgui.actions[TGUIAction.ASMD_STATE].setEnabled(b);
 		mgui.actions[TGUIAction.ASMD_CHOICE].setEnabled(b);
 		mgui.actions[TGUIAction.ASMD_RANDOM].setEnabled(b);
@@ -97,6 +91,7 @@ public class AvatarSMDToolBar extends TToolBar {
 		mgui.updateZoomInfo();
     }
     
+    @Override
     protected void setButtons() {
         JButton button;
         
@@ -111,12 +106,10 @@ public class AvatarSMDToolBar extends TToolBar {
 		button = this.add(mgui.actions[TGUIAction.CONNECTOR_COMMENT]);
         button.addMouseListener(mgui.mouseHandler);
         
-        
         this.addSeparator();
         
 		button = this.add(mgui.actions[TGUIAction.ASMD_CONNECTOR]);
         button.addMouseListener(mgui.mouseHandler);
-		
         
         this.addSeparator();
         
@@ -185,7 +178,6 @@ public class AvatarSMDToolBar extends TToolBar {
 		
 		button = this.add(mgui.actions[TGUIAction.ACT_TOGGLE_AVATAR_ID]);
         button.addMouseListener(mgui.mouseHandler);
-       
     }
 } // Class
 
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java
index b4652293edf1251cbeff112edf513d5ed2403446..bf7ff92a96d004e066f8be9cccd29dcfa8eb3bd4 100755
--- a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java
@@ -36,25 +36,38 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarsmd;
 
-import myutil.Conversion;
-import myutil.GraphicLib;
+import java.awt.Graphics;
+import java.awt.Rectangle;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
+import javax.swing.JFrame;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import ui.*;
+
+import myutil.GraphicLib;
+import ui.AvatarMethod;
+import ui.ColorManager;
+import ui.Expression;
+import ui.GTURTLEModeling;
+import ui.MalformedModelingException;
+import ui.RangeExpression;
+import ui.TAttribute;
+import ui.TDiagramPanel;
+import ui.TGCWithoutInternalComponent;
+import ui.TGComponent;
+import ui.TGConnectingPoint;
+import ui.TGConnectingPointComment;
+import ui.TGState;
+import ui.WithAttributes;
 import ui.util.IconManager;
 import ui.window.JDialogAvatarTransition;
 
-import javax.swing.*;
-import java.awt.*;
-import java.util.LinkedList;
-import java.util.Vector;
-
-//import java.awt.geom.*;
-
 /**
  * Class AvatarSMDTransitionInfo
  * Internal component that represents a set of parameter for a transition
@@ -66,20 +79,37 @@ import java.util.Vector;
  */
 public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent implements WithAttributes {
 
+	private static final String NULL_EXPR = "";
+
+	private static final String NULL_GUARD_EXPR = "[ ]";
+
+	static final String DISABLED_GUARD_EXPR = NULL_GUARD_EXPR;
+	
+	static final String DISABLED_DELAY_EXPR = NULL_EXPR;
+
+	static final String DISABLED_PROBABILITY_EXPR = NULL_EXPR;
+
+	static final String DISABLED_ACTION_EXPR = NULL_EXPR;
 //    private static String FILE_INFO = "(user files specified)";
     //   private static String CODE_INFO = "(user code specified)";
 
+	private final Expression guard;
+    
+    private final RangeExpression afterDelay;
 
-    protected String guard;
-    protected String afterMin;
-    protected String afterMax;
-    protected String computeMin;
-    protected String computeMax;
-    protected String probability = "";
-    protected Vector<String> listOfActions;
+    private final RangeExpression computeDelay;
+//    protected String guard;
+//    protected String afterMin;
+//    protected String afterMax;
+//    protected String computeMin;
+//    protected String computeMax;
+    private final Expression probability;
+    
+    private Vector<Expression> listOfActions;
+   // protected Vector<String> listOfActions;
 
-    protected String[] filesToInclude;
-    protected String[] codeToInclude;
+//    protected String[] filesToInclude;
+//    protected String[] codeToInclude;
 
     protected int minWidth = 10;
     protected int minHeight = 15;
@@ -94,13 +124,18 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme
         editable = true;
         removable = false;
 
-        guard = "[ ]";
-        afterMin = "";
-        afterMax = "";
-        computeMin = "";
-        computeMax = "";
-        filesToInclude = null;
-        codeToInclude = null;
+        guard = new Expression( NULL_GUARD_EXPR, NULL_GUARD_EXPR, null );
+        afterDelay = new RangeExpression( NULL_EXPR, NULL_EXPR, NULL_EXPR, "after (%s, %s)", null );
+        computeDelay = new RangeExpression( NULL_EXPR, NULL_EXPR, NULL_EXPR, "computeFor (%s, %s)", null );
+        probability = new Expression( NULL_EXPR, NULL_EXPR, "weight=%s" );
+
+//        guard = "[ ]";
+//        afterMin = "";
+//        afterMax = "";
+//        computeMin = "";
+//        computeMax = "";
+//        filesToInclude = null;
+//        codeToInclude = null;
 
 
         nbConnectingPoint = 4;
@@ -110,129 +145,205 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme
         connectingPoint[2] = new TGConnectingPointComment(this, 0, 0, true, true, 1.0, 0.5);
         connectingPoint[3] = new TGConnectingPointComment(this, 0, 0, true, true, 0.0, 0.5);
 
-        listOfActions = new Vector<String>();
+        listOfActions = new Vector<Expression>();
+        //listOfActions = new Vector<String>();
 
         myImageIcon = IconManager.imgic302;
     }
 
     public Vector<String> getListOfActions() {
-        return listOfActions;
+    	final Vector<String> actions = new Vector<String>( listOfActions.size() );
+    	
+    	for ( final Expression action : listOfActions ) {
+    		actions.add( action.getText() );
+    	}
+    	
+        return actions;
+//        return listOfActions;
     }
-
-    public void setGuard(String s) {
-        guard = s;
+    
+    public void setGuard(String s){
+    	guard.setText( s );
     }
 
     public void setProbability(String s) {
-        probability = s;
+        probability.setText( s );
     }
-
-    public void addAction(String s) {
-        listOfActions.add(s);
+    
+    public void addAction(String s){
+    	listOfActions.add( new Expression( s ) );
+//        listOfActions.add(s);
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         int step = 0;
-        String s;
+      //  String s;
         h = g.getFontMetrics().getHeight();
         for (int j = 0; j < nbConnectingPoint; j++) {
             connectingPoint[j].setCdY(-h + 1);
         }
 
-        ColorManager.setColor(g, getState(), 0);
-        int inc = h;
+//        ColorManager.setColor(g, getState(), 0);
+        // Issue #69
+        final int inc = getExpressionTextHight();
+//        int inc = h;
+
 
         boolean atLeastOneThing = false;
 
-        g.setColor(ColorManager.AVATAR_GUARD);
+        if ( !guard.isNull() ) {
+            atLeastOneThing = true;
 
-        if (tdp.isDrawingMain()) {
-            width = minWidth;
-        }
+            final String formattedExpr = guard.toString();
+        	final int textWidth = g.getFontMetrics().stringWidth( formattedExpr );
+            
+            if (tdp.isDrawingMain()) {
+                width = Math.max( textWidth, width );
+                width = Math.max(minWidth, width);
+            }
 
-        if (guard.length() > 0) {
-            if (guard.replaceAll("\\s+", "").compareTo("[]") != 0) {
-                g.drawString(guard, x, y + step);
-                atLeastOneThing = true;
-                if (tdp.isDrawingMain()) {
-                    width = Math.max(g.getFontMetrics().stringWidth(guard), width);
-                    width = Math.max(minWidth, width);
-                }
-                step += inc;
+            // Issue #69
+            if ( !guard.isEnabled() && getFather().isContainedInEnabledState() ) {
+            	g.setColor( ColorManager.DISABLED_FILLING );
+            	g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 );
             }
+            
+        	g.setColor( guard.isEnabled() ? ColorManager.AVATAR_GUARD : ColorManager.DISABLED );
+            g.drawString( formattedExpr, x, y + step) ;
+
+        	step += inc;
         }
 
-        g.setColor(ColorManager.AVATAR_TIME);
+        if ( !afterDelay.isNull() ) {
+            atLeastOneThing = true;
 
-        if (afterMin.length() > 0) {
-            if (afterMax.length() > 0) {
-                s = "after (" + afterMin + "," + afterMax + ")";
-                g.drawString(s, x, y + step);
-                atLeastOneThing = true;
-                if (tdp.isDrawingMain()) {
-                    width = Math.max(g.getFontMetrics().stringWidth(s), width);
-                    width = Math.max(minWidth, width);
-                }
-                step += inc;
-            } else {
-                s = "after (" + afterMin + ")";
-                g.drawString(s, x, y + step);
-                atLeastOneThing = true;
-                if (tdp.isDrawingMain()) {
-                    width = Math.max(g.getFontMetrics().stringWidth(s), width);
-                    width = Math.max(minWidth, width);
-                }
-                step += inc;
+            final String formattedExpr = afterDelay.toString();
+        	final int textWidth = g.getFontMetrics().stringWidth( formattedExpr );
+            
+            if (tdp.isDrawingMain()) {
+                width = Math.max( textWidth, width );
+                width = Math.max(minWidth, width);
             }
+
+            // Issue #69
+            if ( !afterDelay.isEnabled() && getFather().isContainedInEnabledState() ) {
+            	g.setColor( ColorManager.DISABLED_FILLING );
+            	g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 );
+            }
+
+            g.setColor( afterDelay.isEnabled() ? ColorManager.AVATAR_TIME : ColorManager.DISABLED );
+            g.drawString( formattedExpr, x, y + step );
+            
+            step += inc;
+//            }
+//            else {
+//            	final String s = "after (" + afterMinDelayExp + ")";
+//                
+//            	g.drawString(s, x, y + step);
+//                
+//            	atLeastOneThing = true;
+//                
+//                if (tdp.isDrawingMain()) {
+//                    width = Math.max(g.getFontMetrics().stringWidth(s), width);
+//                    width = Math.max(minWidth, width);
+//                }
+//                
+//                step += inc;
+//            }
         }
 
-        if (computeMin.length() > 0) {
-            if (computeMax.length() > 0) {
-                s = "computeFor (" + computeMin + "," + computeMax + ")";
-                g.drawString(s, x, y + step);
-                atLeastOneThing = true;
-                if (tdp.isDrawingMain()) {
-                    width = Math.max(g.getFontMetrics().stringWidth(s), width);
-                    width = Math.max(minWidth, width);
-                }
-                step += inc;
-            } else {
-                s = "computeFor (" + computeMin + ")";
-                g.drawString(s, x, y + step);
-                atLeastOneThing = true;
-                if (tdp.isDrawingMain()) {
-                    width = Math.max(g.getFontMetrics().stringWidth(s), width);
-                    width = Math.max(minWidth, width);
-                }
-                step += inc;
+        if ( !computeDelay.isNull() ) {
+        	atLeastOneThing = true;
+            
+            final String formattedExpr = computeDelay.toString();
+        	final int textWidth = g.getFontMetrics().stringWidth( formattedExpr );
+
+        	if (tdp.isDrawingMain()) {
+                width = Math.max( textWidth, width );
+                width = Math.max(minWidth, width);
             }
+
+            // Issue #69
+            if ( !computeDelay.isEnabled() && getFather().isContainedInEnabledState() ) {
+            	g.setColor( ColorManager.DISABLED_FILLING );
+            	g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 );
+            }
+
+            g.setColor( computeDelay.isEnabled() ? ColorManager.AVATAR_TIME : ColorManager.DISABLED );
+           	g.drawString( formattedExpr, x, y + step );
+            
+        	step += inc;
         }
 
-        if ((probability != null) && (probability.length() > 0)) {
-            s = "weight=" + probability;
-            g.drawString(s, x, y + step);
-            atLeastOneThing = true;
+        if ( !probability.isNull() ) {
+        	atLeastOneThing = true;
+            final String formattedExpr = probability.toString();
+        	final int textWidth = g.getFontMetrics().stringWidth( formattedExpr );
+            
             if (tdp.isDrawingMain()) {
-                width = Math.max(g.getFontMetrics().stringWidth(s), width);
+                width = Math.max( textWidth, width );
                 width = Math.max(minWidth, width);
             }
-            step += inc;
-        }
 
-        g.setColor(ColorManager.AVATAR_ACTION);
+            // Issue #69
+            if ( !probability.isEnabled() && getFather().isContainedInEnabledState() ) {
+            	g.setColor( ColorManager.DISABLED_FILLING );
+            	g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 );
+            }
+            
+        	g.setColor( probability.isEnabled() ? ColorManager.AVATAR_GUARD : ColorManager.DISABLED );
+            g.drawString( formattedExpr, x, y + step) ;
+
+        	step += inc;
+//            s = "weight=" + probability;
+//            g.drawString(s, x, y + step);
+//            atLeastOneThing = true;
+//            if (tdp.isDrawingMain()) {
+//                width = Math.max(g.getFontMetrics().stringWidth(s), width);
+//                width = Math.max(minWidth, width);
+//            }
+//            step += inc;
+        }
 
-        for (int i = 0; i < listOfActions.size(); i++) {
-            s = listOfActions.get(i);
-            if (s.length() > 0) {
-                g.drawString(s, x, y + step);
-                atLeastOneThing = true;
-                if (tdp.isDrawingMain()) {
-                    width = Math.max(g.getFontMetrics().stringWidth(s), width);
-                    width = Math.max(minWidth, width);
-                }
-                step += inc;
+     //   g.setColor(ColorManager.AVATAR_ACTION);
+
+        for( final Expression action : listOfActions ) {
+        	if ( !action.isNull() ) {
+	        	atLeastOneThing = true;
+	        	
+	        	final String formattedExpr = action.toString();
+	        	final int textWidth = g.getFontMetrics().stringWidth( formattedExpr );
+	            
+	            if (tdp.isDrawingMain()) {
+	                width = Math.max( textWidth, width );
+	                width = Math.max( minWidth, width);
+	            }
+
+	            // Issue #69
+	            if ( !action.isEnabled() && getFather().isContainedInEnabledState() ) {
+	            	g.setColor( ColorManager.DISABLED_FILLING );
+	            	g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 );
+	            }
+                
+	        	g.setColor( action.isEnabled() ? ColorManager.AVATAR_ACTION : ColorManager.DISABLED );
+	        	g.drawString( formattedExpr, x, y + step );
+
+	            step += inc;
             }
         }
+//        for (int i = 0; i < listOfActions.size(); i++) {
+//            s = listOfActions.get(i);
+//            if (s.length() > 0) {
+//                g.drawString(s, x, y + step);
+//                atLeastOneThing = true;
+//                if (tdp.isDrawingMain()) {
+//                    width = Math.max(g.getFontMetrics().stringWidth(s), width);
+//                    width = Math.max(minWidth, width);
+//                }
+//                step += inc;
+//            }
+//        }
 
         /*g.setColor(ColorManager.AVATAR_CODE);
 
@@ -265,13 +376,51 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme
             width = minWidth;
         }
 
-        ColorManager.setColor(g, state, 0);
+        //ColorManager.setColor(g, state, 0);
         if ((getState() == TGState.POINTER_ON_ME) || (getState() == TGState.POINTED) || (getState() == TGState.MOVING)) {
-            g.drawRoundRect(x - 1, y - h + 2, width + 2, height + 2, 5, 5);
+            ColorManager.setColor( g, state, 0, isEnabled() );
+
+            final Rectangle rectangle = new Rectangle( x - 1, y - h + 2, width + 2, height + 2 );
+
+            if ( inc != 0 && isOnMe( tdp.currentX, tdp.currentY ) == this ) {
+            	
+            	// Issue #69: Draw rectangle only around the pointed line
+            	final Expression selExpr = getSelectedExpression();
+            	final int exprWidth;
+            	
+            	if ( selExpr == null ) {
+            		exprWidth = width;
+            	}
+            	else {
+            		exprWidth  = g.getFontMetrics().stringWidth( selExpr.toString() );
+                    ColorManager.setColor( g, state, 0, selExpr.isEnabled() );
+            	}
+            	
+            	final int pointedExpOrder = getPointedExpressionOrder() - 1;
+            	
+            	rectangle.y = y + pointedExpOrder * inc + 2;
+            	rectangle.width = exprWidth + 2;
+            	rectangle.height = inc + 2;
+            }
+
+            g.drawRoundRect( rectangle.x, rectangle.y, rectangle.width, rectangle.height, 5, 5 );
+          //  g.drawRoundRect(x - 1, y - h + 2, width + 2, height + 2, 5, 5);
         }
     }
 
+    private int getExpressionTextHight() {
+    	return h;
+    }
+    
+    private Integer getPointedExpressionOrder() {
+    	if ( getExpressionTextHight() != 0 ) {
+    		return ( tdp.currentY + 10 - y ) / getExpressionTextHight();
+    	}
+    	
+    	return null;
+    }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y - h + 2, width, height)) {
             return this;
@@ -279,14 +428,27 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme
         return null;
     }
 
+    @Override
     public boolean isInRectangle(int x1, int y1, int width, int height) {
         return !((getX() < x1) || (getY() < y1) || ((getX() + this.width) > (x1 + width)) || ((getY() + this.height) > (y1 + height)));
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-        LinkedList<TAttribute> attributes = tdp.getMGUI().getAllAttributes();
-        LinkedList<AvatarMethod> methods = tdp.getMGUI().getAllMethods();
-        JDialogAvatarTransition jdat = new JDialogAvatarTransition(frame, "Setting transition parameters", guard, afterMin, afterMax, computeMin, computeMax, listOfActions, attributes, methods, filesToInclude, codeToInclude, probability);
+        List<TAttribute> attributes = tdp.getMGUI().getAllAttributes();
+        List<AvatarMethod> methods = tdp.getMGUI().getAllMethods();
+        JDialogAvatarTransition jdat = new JDialogAvatarTransition(	frame, 
+																	"Setting transition parameters",
+																	getGuard(),
+																	getAfterMinDelay(),
+																	getAfterMaxDelay(),
+//																	getComputeMinDelay(),
+//																	getComputeMaxDelay(),
+																	listOfActions,
+																	attributes,
+																	methods,
+																	getProbability() );
+        //JDialogAvatarTransition jdat = new JDialogAvatarTransition(frame, "Setting transition parameters", guard, afterMin, afterMax, computeMin, computeMax, listOfActions, attributes, methods, filesToInclude, codeToInclude, probability);
         //  jdat.setSize(600, 550);
         GraphicLib.centerOnParent(jdat, 600, 550);
         jdat.setVisible(true); // blocked until dialog has been closed
@@ -296,84 +458,115 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme
             return false;
         }
 
-        guard = jdat.getGuard().trim();
+        guard.setText( jdat.getGuard().trim() );
 
-        int index = guard.indexOf('[');
+        int index = getGuard().indexOf('[');
         if (index == -1) {
-            guard = "[ " + guard + " ]";
+        	guard.setText( "[ " + guard + " ]" );
         }
 
-        afterMin = jdat.getAfterMin().trim();
-        afterMax = jdat.getAfterMax().trim();
-        computeMin = jdat.getComputeMin().trim();
-        computeMax = jdat.getComputeMax().trim();
-        filesToInclude = jdat.getFilesToInclude();
-        codeToInclude = jdat.getCodeToInclude();
-        probability = jdat.getProbability();
+        afterDelay.getMinExpression().setText( jdat.getAfterMin().trim() );
+        afterDelay.getMaxExpression().setText( jdat.getAfterMax().trim() );
+//        computeDelay.getMinExpression().setText( jdat.getComputeMin().trim() );
+//        computeDelay.getMaxExpression().setText( jdat.getComputeMax().trim() );
+        listOfActions.clear();
+        listOfActions.addAll( jdat.getActions() );
+//        guard = jdat.getGuard().trim();
+//
+//        int index = guard.indexOf('[');
+//        if (index == -1) {
+//            guard = "[ " + guard + " ]";
+//        }
+//
+//        afterMin = jdat.getAfterMin().trim();
+//        afterMax = jdat.getAfterMax().trim();
+//        computeMin = jdat.getComputeMin().trim();
+//        computeMax = jdat.getComputeMax().trim();
+//        filesToInclude = jdat.getFilesToInclude();
+//        codeToInclude = jdat.getCodeToInclude();
+        probability.setText( jdat.getProbability().trim() );
+        
         return true;
     }
+    
+    private String toXML( 	final String tag,
+    						final Expression expression ) {
+    	return "<" + tag + " value=\"" + GTURTLEModeling.transformString( expression.getText() ) + "\" enabled=\"" + expression.isEnabled() + "\"/>" + System.lineSeparator();
+    }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
-        sb.append("<guard value=\"");
-        sb.append(GTURTLEModeling.transformString(guard));
-        sb.append("\" />\n");
-
-        sb.append("<afterMin value=\"");
-        sb.append(GTURTLEModeling.transformString(afterMin));
-        sb.append("\" />\n");
-
-        sb.append("<afterMax value=\"");
-        sb.append(GTURTLEModeling.transformString(afterMax));
-        sb.append("\" />\n");
-
-        sb.append("<computeMin value=\"");
-        sb.append(GTURTLEModeling.transformString(computeMin));
-        sb.append("\" />\n");
-
-        sb.append("<computeMax value=\"");
-        sb.append(GTURTLEModeling.transformString(computeMax));
-        sb.append("\" />\n");
-
-        sb.append("<probability value=\"");
-        sb.append(GTURTLEModeling.transformString(probability));
-        sb.append("\" />\n");
-
-        for (int i = 0; i < listOfActions.size(); i++) {
-            sb.append("<actions value=\"");
-            sb.append(GTURTLEModeling.transformString(listOfActions.get(i)));
-            sb.append("\" />\n");
-        }
-
-        if (filesToInclude != null) {
-            for (int i = 0; i < filesToInclude.length; i++) {
-                sb.append("<filesToIncludeLine value=\"");
-                sb.append(GTURTLEModeling.transformString(filesToInclude[i]));
-                sb.append("\" />\n");
-            }
-        }
-
-        if (codeToInclude != null) {
-            for (int i = 0; i < codeToInclude.length; i++) {
-                sb.append("<codeToIncludeLine value=\"");
-                sb.append(GTURTLEModeling.transformString(codeToInclude[i]));
-                sb.append("\" />\n");
-            }
+        sb.append( toXML( "guard", guard ) );
+        sb.append( toXML( "afterMin", afterDelay.getMinExpression() ) );
+        sb.append( toXML( "afterMax", afterDelay.getMaxExpression() ) );
+        sb.append( toXML( "computeMin", computeDelay.getMinExpression() ) );
+        sb.append( toXML( "computeMax", computeDelay.getMaxExpression() ) );
+        sb.append( toXML( "probability", probability ) );
+//        sb.append("<guard value=\"");
+//        sb.append(GTURTLEModeling.transformString(guard));
+//        sb.append("\" />\n");
+//
+//        sb.append("<afterMin value=\"");
+//        sb.append(GTURTLEModeling.transformString(afterMin));
+//        sb.append("\" />\n");
+//
+//        sb.append("<afterMax value=\"");
+//        sb.append(GTURTLEModeling.transformString(afterMax));
+//        sb.append("\" />\n");
+//
+//        sb.append("<computeMin value=\"");
+//        sb.append(GTURTLEModeling.transformString(computeMin));
+//        sb.append("\" />\n");
+//
+//        sb.append("<computeMax value=\"");
+//        sb.append(GTURTLEModeling.transformString(computeMax));
+//        sb.append("\" />\n");
+
+//        sb.append("<probability value=\"");
+//        sb.append(GTURTLEModeling.transformString(probability));
+//        sb.append("\" />\n");
+
+        for( final Expression action : listOfActions ) {
+        	sb.append( toXML( "actions", action )  );
         }
+//
+//        for (int i = 0; i < listOfActions.size(); i++) {
+//            sb.append("<actions value=\"");
+//            sb.append(GTURTLEModeling.transformString(listOfActions.get(i)));
+//            sb.append("\" />\n");
+//        }
+//
+//        if (filesToInclude != null) {
+//            for (int i = 0; i < filesToInclude.length; i++) {
+//                sb.append("<filesToIncludeLine value=\"");
+//                sb.append(GTURTLEModeling.transformString(filesToInclude[i]));
+//                sb.append("\" />\n");
+//            }
+//        }
+//
+//        if (codeToInclude != null) {
+//            for (int i = 0; i < codeToInclude.length; i++) {
+//                sb.append("<codeToIncludeLine value=\"");
+//                sb.append(GTURTLEModeling.transformString(codeToInclude[i]));
+//                sb.append("\" />\n");
+//            }
+//        }
 
         sb.append("</extraparam>\n");
+        
         return new String(sb);
     }
 
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
         //
-        String tmpFilesToInclude = "";
-        String tmpCodeToInclude = "";
+//        String tmpFilesToInclude = "";
+//        String tmpCodeToInclude = "";
 
         try {
-            listOfActions = new Vector<String>();
-
+            listOfActions = new Vector<Expression>();
+//            listOfActions = new Vector<String>();
             NodeList nli;
             Node n1, n2;
             Element elt;
@@ -393,43 +586,100 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme
                             if (elt.getTagName().equals("guard")) {
                                 s = elt.getAttribute("value");
                                 if (s != null) {
-                                    guard = s;
+                                	guard.setText( s );
+
+                                    // Issue #69 loading enabling parameters
+                                    s = elt.getAttribute("enabled");
+                                    
+                                    if ( s != null && !s.isEmpty() ) {
+                                        guard.setEnabled( Boolean.parseBoolean( s ) );
+                                    }
+//                                    guard = s;
                                 }
                             }
                             if (elt.getTagName().equals("afterMin")) {
                                 s = elt.getAttribute("value");
                                 if (s != null) {
-                                    afterMin = s;
+                                    afterDelay.getMinExpression().setText( s );
+
+                                    // Issue #69 loading enabling parameters
+                                    s = elt.getAttribute( "enabled" );
+                                    
+                                    if ( s != null && !s.isEmpty() ) {
+                                    	afterDelay.getMinExpression().setEnabled( Boolean.parseBoolean( s ) );
+                                    }
+//                                    afterMin = s;
                                 }
                             }
                             if (elt.getTagName().equals("afterMax")) {
                                 s = elt.getAttribute("value");
                                 if (s != null) {
-                                    afterMax = s;
+                                    afterDelay.getMaxExpression().setText( s );
+
+                                    // Issue #69 loading enabling parameters
+                                    s = elt.getAttribute("enabled");
+                                    
+                                    if ( s != null && !s.isEmpty() ) {
+                                    	afterDelay.getMaxExpression().setEnabled( Boolean.parseBoolean( s ) );
+                                    }
+//                                    afterMax = s;
                                 }
                             }
                             if (elt.getTagName().equals("computeMin")) {
                                 s = elt.getAttribute("value");
                                 if (s != null) {
-                                    computeMin = s;
+                                    computeDelay.getMinExpression().setText( s );
+
+                                    // Issue #69 loading enabling parameters
+                                    s = elt.getAttribute("enabled");
+                                    
+                                    if ( s != null && !s.isEmpty() ) {
+                                    	computeDelay.getMinExpression().setEnabled( Boolean.parseBoolean( s ) );
+                                    }
+                                    //computeMin = s;
                                 }
                             }
                             if (elt.getTagName().equals("computeMax")) {
                                 s = elt.getAttribute("value");
                                 if (s != null) {
-                                    computeMax = s;
+                                    computeDelay.getMaxExpression().setText( s );
+
+                                    // Issue #69 loading enabling parameters
+                                    s = elt.getAttribute("enabled");
+                                    
+                                    if ( s != null && !s.isEmpty() ) {
+                                    	computeDelay.getMaxExpression().setEnabled( Boolean.parseBoolean( s ) );
+                                    }
+                                    //computeMax = s;
                                 }
                             }
                             if (elt.getTagName().equals("probability")) {
                                 s = elt.getAttribute("value");
                                 if (s != null) {
-                                    probability = s;
+                                	probability.setText( s );
+
+                                    // Issue #69 loading enabling parameters
+                                    s = elt.getAttribute("enabled");
+                                    
+                                    if ( s != null && !s.isEmpty() ) {
+                                    	probability.setEnabled( Boolean.parseBoolean( s ) );
+                                    }
+//                                    probability = s;
                                 }
                             }
                             if (elt.getTagName().equals("actions")) {
                                 s = elt.getAttribute("value");
                                 if (s != null) {
-                                    listOfActions.add(s);
+                                	final Expression action = new Expression( s );
+                                    listOfActions.add( action );
+
+                                    // Issue #69 loading enabling parameters
+                                    s = elt.getAttribute("enabled");
+                                    
+                                    if ( s != null && !s.isEmpty() ) {
+                                    	action.setEnabled( Boolean.parseBoolean( s ) );
+                                    }
+                                    //listOfActions.add(s);
                                 }
                             }
 
@@ -456,100 +706,306 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
-        }
-
-
-        if (tmpFilesToInclude.trim().length() == 0) {
-            filesToInclude = null;
-        } else {
-            filesToInclude = Conversion.wrapText(tmpFilesToInclude);
-        }
-        if (tmpCodeToInclude.trim().length() == 0) {
-            codeToInclude = null;
-        } else {
-            codeToInclude = Conversion.wrapText(tmpCodeToInclude);
+            throw new MalformedModelingException( e );
         }
+//
+//
+//        if (tmpFilesToInclude.trim().length() == 0) {
+//            filesToInclude = null;
+//        } else {
+//            filesToInclude = Conversion.wrapText(tmpFilesToInclude);
+//        }
+//        if (tmpCodeToInclude.trim().length() == 0) {
+//            codeToInclude = null;
+//        } else {
+//            codeToInclude = Conversion.wrapText(tmpCodeToInclude);
+//        }
     }
 
     public String getGuard() {
-        return guard;
+        return guard.getText();
+//        return guard;
+    }
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    public String getEffectiveGuard() {
+    	return guard.getEffectiveExpression( DISABLED_GUARD_EXPR );
     }
 
     public String getAfterMinDelay() {
-        return afterMin;
+        return afterDelay.getMinExpression().getText();
+//        return afterMin;
+    }
+
+    /**
+     * Issue #69
+     * @return
+     */
+    public String getEffectiveAfterMinDelay() {
+        return afterDelay.getMinExpression().getEffectiveExpression( DISABLED_DELAY_EXPR );
     }
 
     public String getAfterMaxDelay() {
-        return afterMax;
+        return afterDelay.getMaxExpression().getText();
+        //return afterMax;
+    }
+
+    /**
+     * Issue #69
+     * @return
+     */
+    public String getEffectiveAfterMaxDelay() {
+        return afterDelay.getMaxExpression().getEffectiveExpression( DISABLED_DELAY_EXPR );
     }
 
     public String getComputeMinDelay() {
-        return computeMin;
+        return computeDelay.getMinExpression().getText();
+        //return computeMin;
     }
 
-    public String getComputeMaxDelay() {
-        return computeMax;
+    /**
+     * Issue #69
+     * @return
+     */
+    public String getEffectiveComputeMinDelay() {
+        return computeDelay.getMinExpression().getEffectiveExpression( DISABLED_DELAY_EXPR );
     }
 
-    public String getProbability() {
-        return probability;
+    public String getComputeMaxDelay() {
+        return computeDelay.getMaxExpression().getText();
+        //return computeMax;
     }
 
-    public void setTimes(String minDelay, String maxDelay, String minCompute, String maxCompute) {
-        computeMin = minCompute;
-        computeMax = maxCompute;
-        afterMin = minDelay;
-        afterMax = maxDelay;
+    /**
+     * Issue #69
+     * @return
+     */
+    public String getEffectiveComputeMaxDelay() {
+        return computeDelay.getMaxExpression().getEffectiveExpression( DISABLED_DELAY_EXPR );
     }
 
-    public Vector<String> getActions() {
-        return listOfActions;
+    public String getProbability() {
+        return probability.getText();
     }
 
-    public boolean hasFilesToInclude() {
-        return ((filesToInclude != null) && (filesToInclude.length > 0));
+    public String getEffectiveProbability() {
+        return probability.getEffectiveExpression( DISABLED_PROBABILITY_EXPR );
     }
 
-    public boolean hasCodeToInclude() {
-        return ((codeToInclude != null) && (codeToInclude.length > 0));
+    public void setTimes(String minDelay, String maxDelay, String minCompute, String maxCompute) {
+		computeDelay.getMinExpression().setText( minCompute );
+		computeDelay.getMaxExpression().setText( maxCompute );
+		afterDelay.getMinExpression().setText( minDelay );
+		afterDelay.getMaxExpression().setText(maxDelay );
+//        computeMin = minCompute;
+//        computeMax = maxCompute;
+//        afterMin = minDelay;
+//        afterMax = maxDelay;
     }
 
-    public String getFilesToInclude() {
-        if (filesToInclude == null) {
-            return null;
-        }
-        String ret = "";
-        for (int i = 0; i < filesToInclude.length; i++) {
-            ret += filesToInclude[i] + "\n";
-        }
-        return ret;
+    public Vector<String> getActions() {
+    	final Vector<String> actionExpressions = new Vector<String>( listOfActions.size() );
+    	
+    	for ( final Expression action : listOfActions ) {
+    		actionExpressions.add( action.getText() ); 
+    	}
+    	
+    	return actionExpressions;
+//        return listOfActions;
     }
 
-    public String getCodeToInclude() {
-        if (codeToInclude == null) {
-            return null;
-        }
-        String ret = "";
-        for (int i = 0; i < codeToInclude.length; i++) {
-            ret += codeToInclude[i] + "\n";
-        }
-        return ret;
+    /**
+     * Issue #69
+     * @return
+     */
+    public Vector<String> getEffectiveActions() {
+    	final Vector<String> actionExpressions = new Vector<String>( listOfActions.size() );
+    	
+    	for ( final Expression action : listOfActions ) {
+    		actionExpressions.add( action.getEffectiveExpression( DISABLED_ACTION_EXPR ) ); 
+    	}
+    	
+    	return actionExpressions;
     }
+//
+//    public boolean hasFilesToInclude() {
+//        return ((filesToInclude != null) && (filesToInclude.length > 0));
+//    }
+//
+//    public boolean hasCodeToInclude() {
+//        return ((codeToInclude != null) && (codeToInclude.length > 0));
+//    }
+//
+//    public String getFilesToInclude() {
+//        if (filesToInclude == null) {
+//            return null;
+//        }
+//        String ret = "";
+//        for (int i = 0; i < filesToInclude.length; i++) {
+//            ret += filesToInclude[i] + "\n";
+//        }
+//        return ret;
+//    }
+//
+//    public String getCodeToInclude() {
+//        if (codeToInclude == null) {
+//            return null;
+//        }
+//        String ret = "";
+//        for (int i = 0; i < codeToInclude.length; i++) {
+//            ret += codeToInclude[i] + "\n";
+//        }
+//        return ret;
+//    }
 
     public String getAttributes() {
         String attr = "";
-        if (guard.length() > 0)
+        if ( !guard.isNull())
             attr += " guard: " + getGuard();
-        if (afterMin.length() > 0 || afterMax.length()>0)
-            attr += " delay: [" + afterMin + "," + afterMax + "] ";
-        if (probability.length() > 0)
-            attr += " weight:" + probability;
+        if (!afterDelay.isNull() )
+            attr += " delay: [" + afterDelay.getMinExpression().getText() + "," + afterDelay.getMaxExpression().getText() + "] ";
+        if ( !probability.isNull() )
+            attr += " weight:" + getProbability();
 
-        for(String s: listOfActions)
-            attr += " / " + s;
+        for(final Expression action : listOfActions) {
+            attr += " / " + action.getText();
+        }
 
         return attr;
+    }
+    
+    @Override
+    public AvatarSMDConnector getFather() {
+    	return (AvatarSMDConnector) super.getFather();
+    }
+
+    @Override
+    public void setFather( final TGComponent _father ) {
+    	if ( _father != null && !( _father instanceof AvatarSMDConnector ) ) {
+    		throw new IllegalArgumentException( "Father should be an instance of '" + AvatarSMDConnector.class.getName() + "'." );
+    	}
+    	
+    	super.setFather( _father );
+    }
 
+	/* Issue #69
+	 * (non-Javadoc)
+	 * @see ui.AbstractCDElement#canBeDisabled()
+	 */
+	@Override
+    public boolean canBeDisabled() {
+		final AvatarSMDConnector transitionCon = getFather();
+		
+		if ( transitionCon == null ) {
+			return false;
+		}
+		
+    	return transitionCon.canBeDisabledContainer();
     }
+	
+	@Override
+	public void setEnabled( final boolean enabled ) {
+		final Expression selExpr = getSelectedExpression();
+		
+		if ( selExpr == null ) {
+			guard.setEnabled( enabled );
+			afterDelay.setEnabled( enabled );
+			computeDelay.setEnabled( enabled );
+			probability.setEnabled( enabled );
+			
+			for ( final Expression actionExpr : listOfActions ) {
+				actionExpr.setEnabled( enabled );
+			}
+		}
+		else {
+			selExpr.setEnabled( enabled );
+		}
+	}
+	
+	@Override
+	public boolean isEnabled() {
+		return isEnabledCheckNull( false ); 
+	}
+	
+	public boolean isEnabledNotNull() {
+		return isEnabledCheckNull( true );
+	}
+	
+	private boolean isEnabledCheckNull( final boolean checkNull ) {
+		
+		// Used by the UI to toggle enabled
+		final Expression selExpr = getSelectedExpression();
+	
+		if ( selExpr != null ) {
+			return selExpr.isEnabled();
+		}
+
+		for ( final Expression actExpr : listOfActions ) {
+			if ( actExpr.isEnabled() ) {
+				return true;
+			}
+		}
+		
+		return 	( guard.isEnabled() && ( !checkNull || !guard.isNull() ) ) ||
+				( afterDelay.isEnabled() && ( !checkNull || !afterDelay.isNull() ) ) ||
+				( computeDelay.isEnabled() && ( !checkNull || !computeDelay.isNull() ) ) ||
+				( probability.isEnabled() && ( !checkNull || !probability.isNull() ) );
+	}
+	
+	public boolean isNull() {
+		for ( final Expression actExpr : listOfActions ) {
+			if ( !actExpr.isNull() ) {
+				return false;
+			}
+		}
+		
+		return guard.isNull() && afterDelay.isNull() && computeDelay.isNull() && probability.isNull();
+	}
+	
+	private List<Expression> getNonNullExpressions() {
+		final List<Expression> expressions = new ArrayList<Expression>();
+		
+		if ( !guard.isNull() ) {
+			expressions.add( guard );
+		}
+
+		if ( !afterDelay.isNull() ) {
+			expressions.add( afterDelay );
+		}
+
+		if ( !computeDelay.isNull() ) {
+			expressions.add( computeDelay );
+		}
+
+		if ( !probability.isNull() ) {
+			expressions.add( probability );
+		}
+
+		for ( final Expression expr : listOfActions ) {
+			if ( !expr.isNull() ) {
+				expressions.add( expr );
+			}
+		}
+		
+		return expressions;
+	}
+	
+	private Expression getSelectedExpression() {
+		final Integer selectedExpressionIndex = getPointedExpressionOrder();
+		
+		if ( selectedExpressionIndex == null || selectedExpressionIndex < 0 ) {
+			return null;
+		}
+		
+		final List<Expression> expressions = getNonNullExpressions();
+		
+		if ( selectedExpressionIndex >= expressions.size() ) {
+			return null;
+		}
+			
+		return expressions.get( selectedExpressionIndex );
+	}
 }
diff --git a/src/main/java/ui/avatarsmd/EnablingAvatarSMDConnectorVisitor.java b/src/main/java/ui/avatarsmd/EnablingAvatarSMDConnectorVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..a528ab7029f01f90d1edc9b217ef059f3e3bb630
--- /dev/null
+++ b/src/main/java/ui/avatarsmd/EnablingAvatarSMDConnectorVisitor.java
@@ -0,0 +1,31 @@
+package ui.avatarsmd;
+
+import ui.CDElement;
+import ui.TrackingCDElementVisitor;
+
+public class EnablingAvatarSMDConnectorVisitor extends TrackingCDElementVisitor {
+	
+	private final boolean enabled;
+	
+	public EnablingAvatarSMDConnectorVisitor( final boolean enabled ) {
+		super();
+		
+		this.enabled = enabled;
+	}
+
+	@Override
+	public boolean visit( final CDElement element ) {
+		if ( !super.visit( element ) ) {
+			return false;
+		}
+
+		if ( element instanceof AvatarSMDConnector ) {
+			( (AvatarSMDConnector) element ).getAvatarSMDTransitionInfo().setEnabled( enabled );
+		}
+		else if ( element.canBeDisabled() ) {
+			element.setEnabled( enabled );
+		}
+		
+		return true;
+	}
+}
diff --git a/src/main/java/ui/avatarsmd/FindAvatarSMDComponentsToBeTranslatedVisitor.java b/src/main/java/ui/avatarsmd/FindAvatarSMDComponentsToBeTranslatedVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a1877ad55238b4f8846ebfe463f2d2b2dc2c49c
--- /dev/null
+++ b/src/main/java/ui/avatarsmd/FindAvatarSMDComponentsToBeTranslatedVisitor.java
@@ -0,0 +1,105 @@
+package ui.avatarsmd;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import ui.CDElement;
+import ui.TGComponent;
+import ui.TGConnector;
+import ui.TrackingCDElementVisitor;
+
+public class FindAvatarSMDComponentsToBeTranslatedVisitor extends TrackingCDElementVisitor {
+
+	private final Set<TGComponent> componentsToBeTranslated;
+	
+	private final Set<TGConnector> prunedConnectors;
+	
+	public FindAvatarSMDComponentsToBeTranslatedVisitor() {
+		componentsToBeTranslated = new LinkedHashSet<TGComponent>();
+		prunedConnectors = new LinkedHashSet<TGConnector>();
+	}
+
+	@Override
+	public boolean visit( final CDElement element ) {
+		if ( !super.visit( element ) ) {
+			return false;
+		}
+		
+		if ( element instanceof TGComponent && !( element instanceof TGConnector ) ) {
+			final TGComponent component = (TGComponent) element;
+			
+			if ( shouldBeTranslated( component ) ) {
+				componentsToBeTranslated.add( (TGComponent) element );
+			}
+		}
+		
+		return true;
+	}
+
+	public Set<TGComponent> getComponentsToBeTranslated() {
+		return componentsToBeTranslated;
+	}
+    
+    private boolean shouldBeTranslated( final TGComponent diagramCompo ) {
+    	
+    	// Do not translate components contained in disabled components (e.g. composite state machines)
+    	if ( diagramCompo.getFather() != null && !diagramCompo.getFather().isEnabled() ) {
+    		return false;
+    	}
+
+    	if ( diagramCompo.isEnabled() ) {
+    		return true;
+    	}
+    	
+    	// We don't know if the target component can accept more than one input connections so we keep the node
+    	if ( diagramCompo.getInputConnectors().size() > 1 ) {
+    		return true;
+    	}
+    	
+    	// We don't know if the source component can accept more than one output connections so we keep the node
+    	if ( diagramCompo.getOutputConnectors().size() > 1 ) {
+    		return true;
+    	}
+    	
+    	final AvatarSMDConnector inputConnector = (AvatarSMDConnector) diagramCompo.getInputConnectors().get( 0 );
+    	final TGComponent previousCompo = (TGComponent) inputConnector.getTGConnectingPointP1().getFather();
+    	
+    	// The previous component in the graph is not translated so we don't know if the new input edge will be 
+    	// null or enabled so we translate the component
+    	if ( !componentsToBeTranslated.contains( previousCompo ) ) {
+    		return true;
+    	}
+    	
+    	final AvatarSMDTransitionInfo inputTransInfo = inputConnector.getAvatarSMDTransitionInfo();
+    	
+    	// The input transition is null or disabled so the component does not need to be translated and the transition
+    	// can be merged with the output transition
+    	if ( inputTransInfo.isNull() || !inputTransInfo.isEnabledNotNull() ) {
+    		prunedConnectors.add( inputConnector );
+    		
+    		return false;
+    	}
+    	
+    	if ( diagramCompo.getOutputConnectors().isEmpty() ) {
+    		return true;
+    	}
+    	
+    	final AvatarSMDConnector outputConnector = (AvatarSMDConnector) diagramCompo.getOutputConnectors().get( 0 );
+
+    	final AvatarSMDTransitionInfo outputTransInfo = outputConnector.getAvatarSMDTransitionInfo();
+    	
+    	// The output transition is null or disabled so the component does not need to be translated and the transition
+    	// can be merged with the input transition
+    	if ( outputTransInfo.isNull() || !inputTransInfo.isEnabledNotNull() ) {
+    		prunedConnectors.add( outputConnector );
+
+    		return false;
+    	}
+    	
+    	return true;
+    }
+
+	public Set<TGConnector> getPrunedConnectors() {
+		return prunedConnectors;
+	}
+}
diff --git a/src/main/java/ui/avatarsmd/FindNextEnabledAvatarSMDConnectingPointVisitor.java b/src/main/java/ui/avatarsmd/FindNextEnabledAvatarSMDConnectingPointVisitor.java
new file mode 100644
index 0000000000000000000000000000000000000000..004dd4746d65faf915b16bc1404d8617ea151911
--- /dev/null
+++ b/src/main/java/ui/avatarsmd/FindNextEnabledAvatarSMDConnectingPointVisitor.java
@@ -0,0 +1,43 @@
+package ui.avatarsmd;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import ui.CDElement;
+import ui.FindNextEnabledConnectingPointVisitor;
+import ui.TGComponent;
+import ui.TGConnector;
+
+public class FindNextEnabledAvatarSMDConnectingPointVisitor extends FindNextEnabledConnectingPointVisitor {
+	
+	private final Set<TGComponent> componentsToBeTranslated;
+
+	public FindNextEnabledAvatarSMDConnectingPointVisitor( 	final Set<TGConnector> disabledConnectors,
+															final Set<TGComponent> componentsToBeTranslated ) {
+		super( disabledConnectors );
+		
+		this.componentsToBeTranslated = new HashSet<TGComponent>();
+		this.componentsToBeTranslated.addAll( componentsToBeTranslated );
+	}
+	
+	@Override
+	protected boolean pruneConnector( final TGConnector connector ) {
+		final AvatarSMDConnector smdCon = (AvatarSMDConnector) connector;
+		
+		final AvatarSMDState containingState = smdCon.getContainingState();
+    	
+		// Do not translate connectors that connect two component contained in a disabled state machine
+    	if ( containingState != null && !containingState.isEnabled() ) {
+    		return true;
+    	}
+
+    	final AvatarSMDTransitionInfo transInfo = smdCon.getAvatarSMDTransitionInfo();
+
+		return !transInfo.isEnabledNotNull() || transInfo.isNull();
+	}
+	
+	@Override
+	protected boolean pruneElement( final CDElement diagramElement ) {
+		return !componentsToBeTranslated.contains( diagramElement );
+	}
+}
diff --git a/src/main/java/ui/eln/ELNCluster.java b/src/main/java/ui/eln/ELNCluster.java
index 89294a742349cc508ff2cf252e355c421c328135..af1acdd6df24a891e0a91262e26e96fa617c4fdd 100644
--- a/src/main/java/ui/eln/ELNCluster.java
+++ b/src/main/java/ui/eln/ELNCluster.java
@@ -40,7 +40,6 @@ package ui.eln;
 
 import myutil.GraphicLib;
 import ui.*;
-import ui.syscams.*;
 import ui.util.IconManager;
 import java.awt.*;
 import java.util.*;
@@ -88,7 +87,7 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal
 		removable = true;
 		userResizable = true;
 
-		value = tdp.findELNComponentName("Cluster");
+		value = "cluster";
 	}
 
 	public void internalDrawing(Graphics g) {
@@ -200,9 +199,11 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal
 	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
 		if (tgc instanceof ELNModule) {
 			return true;
-		} else if (tgc instanceof SysCAMSPortDE) {
+		} else if (tgc instanceof ELNClusterTerminal) {
 			return true;
-		} else 	if (tgc instanceof SysCAMSPortTDF) {
+		} else if (tgc instanceof ELNClusterPortDE) {
+			return true;
+		} else 	if (tgc instanceof ELNClusterPortTDF) {
 			return true;
 		}
 		return false;
@@ -234,10 +235,13 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal
 		if (tgc instanceof ELNModule) {
 			tgc.resizeWithFather();
 		}
-		if (tgc instanceof SysCAMSPortDE) {
+		if (tgc instanceof ELNClusterTerminal) {
+			tgc.resizeWithFather();
+		}
+		if (tgc instanceof ELNClusterPortDE) {
 			tgc.resizeWithFather();
 		}
-		if (tgc instanceof SysCAMSPortTDF) {
+		if (tgc instanceof ELNClusterPortTDF) {
 			tgc.resizeWithFather();
 		}
 		addInternalComponent(tgc, 0);
@@ -273,10 +277,13 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal
 			if (tgcomponent[i] instanceof ELNModule) {
 				tgcomponent[i].resizeWithFather();
 			}
-			if (tgcomponent[i] instanceof SysCAMSPortDE) {
+			if (tgcomponent[i] instanceof ELNClusterTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+			if (tgcomponent[i] instanceof ELNClusterPortDE) {
 				tgcomponent[i].resizeWithFather();
 			}
-			if (tgcomponent[i] instanceof SysCAMSPortTDF) {
+			if (tgcomponent[i] instanceof ELNClusterPortTDF) {
 				tgcomponent[i].resizeWithFather();
 			}
 		}
@@ -296,21 +303,31 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal
 		return list;
 	}
 
-	public java.util.List<SysCAMSPortDE> getAllPortDE() {
-		java.util.List<SysCAMSPortDE> list = new ArrayList<SysCAMSPortDE>();
+	public java.util.List<ELNClusterTerminal> getAllClusterTerminal() {
+		java.util.List<ELNClusterTerminal> list = new ArrayList<ELNClusterTerminal>();
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNClusterTerminal) {
+				list.add((ELNClusterTerminal)(tgcomponent[i]));
+			}
+		}
+		return list;
+	}
+	
+	public java.util.List<ELNClusterPortDE> getAllClusterPortDE() {
+		java.util.List<ELNClusterPortDE> list = new ArrayList<ELNClusterPortDE>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
-			if (tgcomponent[i] instanceof SysCAMSPortDE) {
-				list.add((SysCAMSPortDE)(tgcomponent[i]));
+			if (tgcomponent[i] instanceof ELNClusterPortDE) {
+				list.add((ELNClusterPortDE)(tgcomponent[i]));
 			}
 		}
 		return list;
 	}
 
-	public java.util.List<SysCAMSPortTDF> getAllPortTDF() {
-		java.util.List<SysCAMSPortTDF> list = new ArrayList<SysCAMSPortTDF>();
+	public java.util.List<ELNClusterPortTDF> getAllClusterPortTDF() {
+		java.util.List<ELNClusterPortTDF> list = new ArrayList<ELNClusterPortTDF>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
-			if (tgcomponent[i] instanceof SysCAMSPortTDF) {
-				list.add((SysCAMSPortTDF)(tgcomponent[i]));
+			if (tgcomponent[i] instanceof ELNClusterPortTDF) {
+				list.add((ELNClusterPortTDF)(tgcomponent[i]));
 			}
 		}
 		return list;
diff --git a/src/main/java/ui/eln/ELNClusterPortDE.java b/src/main/java/ui/eln/ELNClusterPortDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..66aef3e1ff000bbd64c8f1793055d93716c879a2
--- /dev/null
+++ b/src/main/java/ui/eln/ELNClusterPortDE.java
@@ -0,0 +1,342 @@
+/* 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 ui.eln;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.window.*;
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * Class ELNClusterPortDE 
+ * Composite port. To be used in ELN diagrams 
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNClusterPortDE extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+	protected int oldx, oldy;
+	protected int currentOrientation = GraphicLib.NORTH;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+	
+	private String type;
+	private String origin;
+
+	public ELNClusterPortDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(20, 20);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initConnectingPoint(1);
+
+		addTGConnectingPointsComment();
+
+		nbInternalTGComponent = 0;
+
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = false;
+
+		value = "";
+		type = "bool";
+		origin = "in";
+	}
+
+	public void initConnectingPoint(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, "");
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+
+		if ((x != oldx) | (oldy != y)) {
+			manageMove(g, f);
+			oldx = x;
+			oldy = y;
+		} else {
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+			switch (currentOrientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+		}
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y, width, height);
+		g.setColor(c);
+		g.drawRect(x, y, width, height);
+		g.setFont(fold);
+	}
+
+	public void manageMove(Graphics g, Font f) {
+		if (father != null) {
+			Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(),
+					father.getWidth(), father.getHeight());
+
+			x = p.x - width / 2;
+			y = p.y - height / 2;
+
+			setMoveCd(x, y);
+
+			int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(),
+					father.getY(), father.getWidth(), father.getHeight());
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			switch (orientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+			
+			if (orientation != currentOrientation) {
+				setOrientation(orientation);
+			}
+		}
+	}
+
+	public void setOrientation(int orientation) {
+		currentOrientation = orientation;
+		double w0, h0;
+
+		switch (orientation) {
+		case GraphicLib.NORTH:
+			w0 = 0.5;
+			h0 = 1.0;
+			break;
+		case GraphicLib.WEST:
+			w0 = 1.0;
+			h0 = 0.5;
+			break;
+		case GraphicLib.SOUTH:
+			w0 = 0.5;
+			h0 = 0.0;
+			break;
+		case GraphicLib.EAST:
+		default:
+			w0 = 0.0;
+			h0 = 0.5;
+		}
+
+		((ELNConnectingPoint) connectingPoint[0]).setW(w0);
+		((ELNConnectingPoint) connectingPoint[0]).setH(h0);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_CLUSTER_PORT_DE;
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNCluster)) {
+			setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2,
+					father.getHeight() - (getHeight() / 2));
+			setMoveCd(x, y);
+			oldx = -1;
+			oldy = -1;
+		}
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNClusterPortDE jde = new JDialogELNClusterPortDE(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes name=\"" + value);
+		sb.append("\" type=\"" + type);
+		sb.append("\" origin=\"" + origin + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			String name, type, origin;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								name = elt.getAttribute("name");
+								type = elt.getAttribute("type");
+								origin = elt.getAttribute("origin");
+								setValue(name);
+								setPortType(type);
+								setOrigin(origin);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+	
+	public String getPortType() {
+		return type;
+	}
+
+	public void setPortType(String _type) {
+		type = _type;
+	}
+	
+	public String getOrigin() {
+		return origin;
+	}
+
+	public void setOrigin(String _origin) {
+		origin = _origin;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNClusterPortTDF.java b/src/main/java/ui/eln/ELNClusterPortTDF.java
new file mode 100644
index 0000000000000000000000000000000000000000..bd14e5564de6f45d2f526e445835a0a62d1eaf26
--- /dev/null
+++ b/src/main/java/ui/eln/ELNClusterPortTDF.java
@@ -0,0 +1,342 @@
+/* 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 ui.eln;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.window.*;
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * Class ELNClusterPortTDF 
+ * Composite port. To be used in ELN diagrams 
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNClusterPortTDF extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+	protected int oldx, oldy;
+	protected int currentOrientation = GraphicLib.NORTH;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+	
+	private String type;
+	private String origin;
+
+	public ELNClusterPortTDF(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(20, 20);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initConnectingPoint(1);
+
+		addTGConnectingPointsComment();
+
+		nbInternalTGComponent = 0;
+
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = false;
+
+		value = "";
+		type = "bool";
+		origin = "in";
+	}
+
+	public void initConnectingPoint(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, "");
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+
+		if ((x != oldx) | (oldy != y)) {
+			manageMove(g, f);
+			oldx = x;
+			oldy = y;
+		} else {
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+			switch (currentOrientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+		}
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+		g.setColor(Color.BLACK);
+		g.fillRect(x, y, width, height);
+		g.setColor(c);
+		g.drawRect(x, y, width, height);
+		g.setFont(fold);
+	}
+
+	public void manageMove(Graphics g, Font f) {
+		if (father != null) {
+			Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(),
+					father.getWidth(), father.getHeight());
+
+			x = p.x - width / 2;
+			y = p.y - height / 2;
+
+			setMoveCd(x, y);
+
+			int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(),
+					father.getY(), father.getWidth(), father.getHeight());
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			switch (orientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+			
+			if (orientation != currentOrientation) {
+				setOrientation(orientation);
+			}
+		}
+	}
+
+	public void setOrientation(int orientation) {
+		currentOrientation = orientation;
+		double w0, h0;
+
+		switch (orientation) {
+		case GraphicLib.NORTH:
+			w0 = 0.5;
+			h0 = 1.0;
+			break;
+		case GraphicLib.WEST:
+			w0 = 1.0;
+			h0 = 0.5;
+			break;
+		case GraphicLib.SOUTH:
+			w0 = 0.5;
+			h0 = 0.0;
+			break;
+		case GraphicLib.EAST:
+		default:
+			w0 = 0.0;
+			h0 = 0.5;
+		}
+
+		((ELNConnectingPoint) connectingPoint[0]).setW(w0);
+		((ELNConnectingPoint) connectingPoint[0]).setH(h0);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_CLUSTER_PORT_TDF;
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNCluster)) {
+			setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2,
+					father.getHeight() - (getHeight() / 2));
+			setMoveCd(x, y);
+			oldx = -1;
+			oldy = -1;
+		}
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNClusterPortTDF jde = new JDialogELNClusterPortTDF(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes name=\"" + value);
+		sb.append("\" type=\"" + type);
+		sb.append("\" origin=\"" + origin + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			String name, type, origin;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								name = elt.getAttribute("name");
+								type = elt.getAttribute("type");
+								origin = elt.getAttribute("origin");
+								setValue(name);
+								setPortType(type);
+								setOrigin(origin);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+	
+	public String getPortType() {
+		return type;
+	}
+
+	public void setPortType(String _type) {
+		type = _type;
+	}
+	
+	public String getOrigin() {
+		return origin;
+	}
+
+	public void setOrigin(String _origin) {
+		origin = _origin;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNClusterTerminal.java b/src/main/java/ui/eln/ELNClusterTerminal.java
new file mode 100644
index 0000000000000000000000000000000000000000..e1d83e0b79671e703c395ac4747a9e1788d84cef
--- /dev/null
+++ b/src/main/java/ui/eln/ELNClusterTerminal.java
@@ -0,0 +1,315 @@
+/* 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 ui.eln;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.window.*;
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * Class ELNClusterTerminal 
+ * Composite port. To be used in ELN diagrams 
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNClusterTerminal extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+	protected int oldx, oldy;
+	protected int currentOrientation = GraphicLib.NORTH;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+
+	public ELNClusterTerminal(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(10, 10);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initConnectingPoint(1);
+
+		addTGConnectingPointsComment();
+
+		nbInternalTGComponent = 0;
+
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = false;
+
+		value = "";
+	}
+
+	public void initConnectingPoint(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, "");
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+
+		if ((x != oldx) | (oldy != y)) {
+			manageMove(g, f);
+			oldx = x;
+			oldy = y;
+		} else {
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+			switch (currentOrientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+		}
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+		g.drawOval(x, y, width, height);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width, height);
+		g.setColor(c);
+		g.setFont(fold);
+	}
+
+	public void manageMove(Graphics g, Font f) {
+		if (father != null) {
+			Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(),
+					father.getWidth(), father.getHeight());
+
+			x = p.x - width / 2;
+			y = p.y - height / 2;
+
+			setMoveCd(x, y);
+
+			int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(),
+					father.getY(), father.getWidth(), father.getHeight());
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			switch (orientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+			
+			if (orientation != currentOrientation) {
+				setOrientation(orientation);
+			}
+		}
+	}
+
+	public void setOrientation(int orientation) {
+		currentOrientation = orientation;
+		double w0, h0;
+
+		switch (orientation) {
+		case GraphicLib.NORTH:
+			w0 = 0.5;
+			h0 = 1.0;
+			break;
+		case GraphicLib.WEST:
+			w0 = 1.0;
+			h0 = 0.5;
+			break;
+		case GraphicLib.SOUTH:
+			w0 = 0.5;
+			h0 = 0.0;
+			break;
+		case GraphicLib.EAST:
+		default:
+			w0 = 0.0;
+			h0 = 0.5;
+		}
+
+		((ELNConnectingPoint) connectingPoint[0]).setW(w0);
+		((ELNConnectingPoint) connectingPoint[0]).setH(h0);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_CLUSTER_TERMINAL;
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNCluster)) {
+			setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2,
+					father.getHeight() - (getHeight() / 2));
+			setMoveCd(x, y);
+			oldx = -1;
+			oldy = -1;
+		}
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNClusterTerminal jde = new JDialogELNClusterTerminal(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes name=\"" + getValue() + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			String name;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								name = elt.getAttribute("name");
+								setValue(name);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNComponent.java b/src/main/java/ui/eln/ELNComponent.java
deleted file mode 100644
index 5c3b72da30ae3f14312a1c576d12940e399fb259..0000000000000000000000000000000000000000
--- a/src/main/java/ui/eln/ELNComponent.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package ui.eln;
-
-public interface ELNComponent {
-
-}
diff --git a/src/main/java/ui/eln/ELNConnector.java b/src/main/java/ui/eln/ELNConnector.java
index cc47660df14ade887ed6ddd8c99466ff34dbcb30..d15fa72874add4ba68e04c562d8f613ec571155c 100644
--- a/src/main/java/ui/eln/ELNConnector.java
+++ b/src/main/java/ui/eln/ELNConnector.java
@@ -39,12 +39,13 @@
 package ui.eln;
 
 import ui.*;
-import ui.eln.sca_eln.ELNComponentNodeRef;
+import ui.eln.sca_eln_sca_tdf.*;
 import ui.util.IconManager;
 import ui.window.JDialogELNConnector;
 import java.awt.*;
 import java.util.*;
 import javax.swing.JFrame;
+import myutil.GraphicLib;
 
 /**
  * Class ELNConnector 
@@ -64,7 +65,7 @@ public class ELNConnector extends TGConnector implements ScalableTGComponent {
 		value = "";
 		editable = false;
 		oldScaleFactor = tdp.getZoom();
-
+		
 		p1 = _p1;
 		p2 = _p2;
 	}
@@ -83,50 +84,159 @@ public class ELNConnector extends TGConnector implements ScalableTGComponent {
 		return true;
 	}
 
-	protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2) {
+	protected void drawLastSegment(Graphics gr, int x1, int y1, int x2, int y2) {
+		Graphics2D g = (Graphics2D) gr;
+		
 		int w = g.getFontMetrics().stringWidth(value);
 		Font fold = g.getFont();
 		Font f = fold.deriveFont(Font.ITALIC, (float) (tdp.getFontSize()));
 		g.setFont(f);
-		if (get_p1().getFather() instanceof ELNComponent) {
-			if (get_p2().getFather() instanceof ELNComponent) {
-				editable = true;
-				g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		
+		ELNConnectingPoint pt1 = (ELNConnectingPoint) p1;
+		ELNConnectingPoint pt2 = (ELNConnectingPoint) p2;
+
+		if ((pt1.getFather() instanceof ELNPrimitiveComponent && pt2.getFather() instanceof ELNPrimitiveComponent) || (pt2.getFather() instanceof ELNPrimitiveComponent && pt1.getFather() instanceof ELNPrimitiveComponent)) {
+			g.drawLine(x1, y1, x2, y2);
+			editable = true;
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if (pt1.getFather() instanceof ELNPrimitiveComponent && pt2.getFather() instanceof ELNMidPortTerminal) {
+			ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) pt2.getFather()).getFather();
+			g.drawLine(x1, y1, x2, y2);
+			if (connector.getValue().equals("")) {
+				value = searchName(connector);
+			} else {
+				value = connector.getValue();
 			}
-			if (get_p2().getFather() instanceof ELNMidPortTerminal) {
-				ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) get_p2().getFather()).getFather();
-				if (!connector.getValue().equals("")) {
-					value = connector.getValue();
-				} else {
-					value = searchName(connector);
-				}
+		} else if (pt2.getFather() instanceof ELNPrimitiveComponent && pt1.getFather() instanceof ELNMidPortTerminal) {
+			g.drawLine(x1, y1, x2, y2);
+			ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) pt1.getFather()).getFather();
+			if (connector.getValue().equals("")) {
+				value = searchName(connector);
+			} else {
+				value = connector.getValue();
 			}
-		}
-		if (get_p1().getFather() instanceof ELNMidPortTerminal) {
-			if (get_p2().getFather() instanceof ELNComponent) {
-				ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) get_p1().getFather()).getFather();
-				if (!connector.getValue().equals("")) {
-					value = connector.getValue();
-				} else {
-					value = searchName(connector);
-				}
+		} else if ((pt1.getFather() instanceof ELNModuleTerminal && pt2.getFather() instanceof ELNModuleTerminal) || (pt2.getFather() instanceof ELNModuleTerminal && pt1.getFather() instanceof ELNModuleTerminal)) {
+			String name1 = ((ELNModuleTerminal) pt1.getFather()).getValue();
+			String name2 = ((ELNModuleTerminal) pt2.getFather()).getValue();
+			if (name1.equals(name2)) {
+				value = name1;
+			}
+			g.drawLine(x1, y1, x2, y2);
+			editable = true;
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if (pt1.getFather() instanceof ELNModuleTerminal && pt2.getFather() instanceof ELNClusterTerminal) {
+			String name1 = ((ELNModuleTerminal) pt1.getFather()).getValue();
+			String name2 = ((ELNClusterTerminal) pt2.getFather()).getValue();
+			if (name1.equals(name2)) {
+				value = name1;
+			}
+			g.drawLine(x1, y1, x2, y2);
+			editable = true;
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if (pt2.getFather() instanceof ELNModuleTerminal && pt1.getFather() instanceof ELNClusterTerminal) {
+			String name1 = ((ELNClusterTerminal) pt1.getFather()).getValue();
+			String name2 = ((ELNModuleTerminal) pt2.getFather()).getValue();
+			if (name1.equals(name2)) {
+				value = name1;
+			}
+			g.drawLine(x1, y1, x2, y2);
+			editable = true;
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if ((pt1.getFather() instanceof ELNModulePortDE && pt2.getFather() instanceof ELNModulePortDE) || (pt2.getFather() instanceof ELNModulePortDE && pt1.getFather() instanceof ELNModulePortDE)) {
+			String name1 = ((ELNModulePortDE) pt1.getFather()).getValue();
+			String name2 = ((ELNModulePortDE) pt2.getFather()).getValue();
+			if (name1.equals(name2)) {
+				value = name1;
+			}
+			Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0,	new float[] { 9 }, 0);
+			g.setStroke(dashed);
+			GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true);
+			editable = true;
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if (pt1.getFather() instanceof ELNModulePortDE && pt2.getFather() instanceof ELNClusterPortDE) {
+			((ELNClusterPortDE) pt2.getFather()).setPortType(((ELNModulePortDE) pt1.getFather()).getPortType());
+			((ELNClusterPortTDF) pt2.getFather()).setOrigin(((ELNModulePortDE) pt1.getFather()).getOrigin());
+			((ELNClusterPortTDF) pt2.getFather()).setValue(((ELNModulePortDE) pt1.getFather()).getValue());
+			
+			String name1 = ((ELNModulePortDE) pt1.getFather()).getValue();
+			String name2 = ((ELNClusterPortDE) pt2.getFather()).getValue();
+			if (name1.equals(name2)) {
+				value = name1;
+			}
+			Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0,	new float[] { 9 }, 0);
+			g.setStroke(dashed);
+			GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true);
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if (pt2.getFather() instanceof ELNModulePortDE && pt1.getFather() instanceof ELNClusterPortDE) {
+			((ELNClusterPortDE) pt1.getFather()).setPortType(((ELNModulePortDE) pt2.getFather()).getPortType());
+			((ELNClusterPortDE) pt1.getFather()).setOrigin(((ELNModulePortDE) pt2.getFather()).getOrigin());
+			((ELNClusterPortDE) pt1.getFather()).setValue(((ELNModulePortDE) pt2.getFather()).getValue());
+			
+			String name1 = ((ELNClusterPortDE) pt1.getFather()).getValue();
+			String name2 = ((ELNModulePortDE) pt2.getFather()).getValue();
+			if (name1.equals(name2)) {
+				value = name1;
 			}
+			Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0,	new float[] { 9 }, 0);
+			g.setStroke(dashed);
+			GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true);
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if ((pt1.getFather() instanceof ELNModulePortTDF && pt2.getFather() instanceof ELNModulePortTDF) || (pt2.getFather() instanceof ELNModulePortTDF && pt1.getFather() instanceof ELNModulePortTDF)) {
+			String name1 = ((ELNModulePortTDF) pt1.getFather()).getValue();
+			String name2 = ((ELNModulePortTDF) pt2.getFather()).getValue();
+			if (name1.equals(name2)) {
+				value = name1;
+			}
+			GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true);
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if (pt1.getFather() instanceof ELNModulePortTDF && pt2.getFather() instanceof ELNClusterPortTDF) {
+			((ELNClusterPortTDF) pt2.getFather()).setPortType(((ELNModulePortTDF) pt1.getFather()).getPortType());
+			((ELNClusterPortTDF) pt2.getFather()).setOrigin(((ELNModulePortTDF) pt1.getFather()).getOrigin());
+			((ELNClusterPortTDF) pt2.getFather()).setValue(((ELNModulePortTDF) pt1.getFather()).getValue());
+			
+			String name1 = ((ELNModulePortTDF) pt1.getFather()).getValue();
+			String name2 = ((ELNClusterPortTDF) pt2.getFather()).getValue();
+			if (name1.equals(name2)) {
+				value = name1;
+			}
+			GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true);
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if (pt2.getFather() instanceof ELNModulePortTDF && pt1.getFather() instanceof ELNClusterPortTDF) {
+			((ELNClusterPortTDF) pt1.getFather()).setPortType(((ELNModulePortTDF) pt2.getFather()).getPortType());
+			((ELNClusterPortTDF) pt1.getFather()).setOrigin(((ELNModulePortTDF) pt2.getFather()).getOrigin());
+			((ELNClusterPortTDF) pt1.getFather()).setValue(((ELNModulePortTDF) pt2.getFather()).getValue());
+			
+			String name1 = ((ELNClusterPortTDF) pt1.getFather()).getValue();
+			String name2 = ((ELNModulePortTDF) pt2.getFather()).getValue();
+			if (name1.equals(name2)) {
+				value = name1;
+			}
+			GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true);
+			editable = true;
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+		} else if (pt1.getFather() instanceof ELNModulePortTDF && (pt2.getFather() instanceof ELNComponentVoltageSourceTDF || pt2.getFather() instanceof ELNComponentVoltageSinkTDF || pt2.getFather() instanceof ELNComponentCurrentSourceTDF || pt2.getFather() instanceof ELNComponentCurrentSinkTDF)) {
+			g.drawLine(x1, y1, x2, y2);
+			value = ((ELNModulePortTDF) pt1.getFather()).getValue();
+		} else if (pt2.getFather() instanceof ELNModulePortTDF && (pt1.getFather() instanceof ELNComponentVoltageSourceTDF || pt1.getFather() instanceof ELNComponentVoltageSinkTDF || pt1.getFather() instanceof ELNComponentCurrentSourceTDF || pt1.getFather() instanceof ELNComponentCurrentSinkTDF)) {
+			g.drawLine(x1, y1, x2, y2);
+			value = ((ELNModulePortTDF) pt2.getFather()).getValue();
+		} else {
+			g.drawLine(x1, y1, x2, y2);
 		}
+
 		g.setFont(fold);
-		
-		g.drawLine(x1, y1, x2, y2);
 	}
 	
 	private String searchName(ELNConnector c) {
-		if (c.get_p1().getFather() instanceof ELNComponent) {
-			if (c.get_p2().getFather() instanceof ELNComponent) {
+		if (c.p1.getFather() instanceof ELNPrimitiveComponent) {
+			if (c.p2.getFather() instanceof ELNPrimitiveComponent) {
 				return c.getValue();
 			}
-			if (c.get_p2().getFather() instanceof ELNComponentNodeRef || c.get_p2().getFather() instanceof ELNModuleTerminal) {
+			if (c.p2.getFather() instanceof ELNNodeRef || c.p2.getFather() instanceof ELNModuleTerminal) {
 				return "";
 			}
-			if (c.get_p2().getFather() instanceof ELNMidPortTerminal) {
-				ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) c.get_p2().getFather()).getFather();
+			if (c.p2.getFather() instanceof ELNMidPortTerminal) {
+				ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) c.p2.getFather()).getFather();
 				if (!connector.getValue().equals("")) {
 					return connector.getValue();
 				} else {
@@ -134,15 +244,15 @@ public class ELNConnector extends TGConnector implements ScalableTGComponent {
 				}
 			}
 		}
-		if (c.get_p1().getFather() instanceof ELNComponentNodeRef || c.get_p1().getFather() instanceof ELNModuleTerminal) {
+		if (c.p1.getFather() instanceof ELNNodeRef || c.p1.getFather() instanceof ELNModuleTerminal) {
 			return "";
 		}
-		if (c.get_p1().getFather() instanceof ELNMidPortTerminal) {
-			if (c.get_p2().getFather() instanceof ELNComponentNodeRef || c.get_p2().getFather() instanceof ELNModuleTerminal) {
+		if (c.p1.getFather() instanceof ELNMidPortTerminal) {
+			if (c.p2.getFather() instanceof ELNNodeRef || c.p2.getFather() instanceof ELNModuleTerminal) {
 				return "";
 			}
-			if (c.get_p2().getFather() instanceof ELNComponent) {
-				ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) c.get_p1().getFather()).getFather();
+			if (c.p2.getFather() instanceof ELNPrimitiveComponent) {
+				ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) c.p1.getFather()).getFather();
 				if (!connector.getValue().equals("")) {
 					return connector.getValue();
 				} else {
diff --git a/src/main/java/ui/eln/ELNDiagramToolBar.java b/src/main/java/ui/eln/ELNDiagramToolBar.java
index 466a7147ff2d8d2add97df817b504fd15b1dcf0c..f8cd9289a4baab5701f977d45f7d2100e69c3251 100644
--- a/src/main/java/ui/eln/ELNDiagramToolBar.java
+++ b/src/main/java/ui/eln/ELNDiagramToolBar.java
@@ -81,13 +81,21 @@ public class ELNDiagramToolBar extends TToolBar {
 		mgui.actions[TGUIAction.ELN_TDF_CURRENT_SINK].setEnabled(b);
 		mgui.actions[TGUIAction.ELN_MODULE].setEnabled(b);
 		mgui.actions[TGUIAction.ELN_MODULE_TERMINAL].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_MODULE_PORT_DE].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_MODULE_PORT_TDF].setEnabled(b);
 		mgui.actions[TGUIAction.ELN_TOGGLE_ATTR].setEnabled(b);
 		mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SOURCE].setEnabled(b);
 		mgui.actions[TGUIAction.ELN_TDF_CURRENT_SOURCE].setEnabled(b);
 		mgui.actions[TGUIAction.ELN_CONNECTOR].setEnabled(b);
 		mgui.actions[TGUIAction.ELN_CLUSTER].setEnabled(b);
-		mgui.actions[TGUIAction.CAMS_PORT_DE].setEnabled(b);
-		mgui.actions[TGUIAction.CAMS_PORT_TDF].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_CLUSTER_TERMINAL].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_CLUSTER_PORT_DE].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_CLUSTER_PORT_TDF].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_GENCODE].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_DE_CURRENT_SINK].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_DE_CURRENT_SOURCE].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SINK].setEnabled(b);
+		mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SOURCE].setEnabled(b);
 		
 		mgui.actions[TGUIAction.ACT_MODEL_CHECKING].setEnabled(b);
 		mgui.actions[TGUIAction.ACT_ONECLICK_LOTOS_RG].setEnabled(b);
@@ -116,10 +124,13 @@ public class ELNDiagramToolBar extends TToolBar {
 		button = this.add(mgui.actions[TGUIAction.ELN_CLUSTER]);
 		button.addMouseListener(mgui.mouseHandler);
 		
-		button = this.add(mgui.actions[TGUIAction.CAMS_PORT_DE]);
+		button = this.add(mgui.actions[TGUIAction.ELN_CLUSTER_TERMINAL]);
 		button.addMouseListener(mgui.mouseHandler);
 		
-		button = this.add(mgui.actions[TGUIAction.CAMS_PORT_TDF]);
+		button = this.add(mgui.actions[TGUIAction.ELN_CLUSTER_PORT_DE]);
+		button.addMouseListener(mgui.mouseHandler);
+		
+		button = this.add(mgui.actions[TGUIAction.ELN_CLUSTER_PORT_TDF]);
 		button.addMouseListener(mgui.mouseHandler);
 		
 		this.addSeparator();
@@ -130,6 +141,12 @@ public class ELNDiagramToolBar extends TToolBar {
 		button = this.add(mgui.actions[TGUIAction.ELN_MODULE_TERMINAL]);
 		button.addMouseListener(mgui.mouseHandler);
 		
+		button = this.add(mgui.actions[TGUIAction.ELN_MODULE_PORT_DE]);
+		button.addMouseListener(mgui.mouseHandler);
+		
+		button = this.add(mgui.actions[TGUIAction.ELN_MODULE_PORT_TDF]);
+		button.addMouseListener(mgui.mouseHandler);
+		
 		this.addSeparator();
 		
 		button = this.add(mgui.actions[TGUIAction.ELN_RESISTOR]);
@@ -159,18 +176,15 @@ public class ELNDiagramToolBar extends TToolBar {
 		button = this.add(mgui.actions[TGUIAction.ELN_INDEPENDENT_CURRENT_SOURCE]);
 		button.addMouseListener(mgui.mouseHandler);
 		
-		button = this.add(mgui.actions[TGUIAction.ELN_NODE_REF]);
-		button.addMouseListener(mgui.mouseHandler);
-		
 		this.addSeparator();
 		
 		button = this.add(mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SOURCE]);
 		button.addMouseListener(mgui.mouseHandler);
 		
-		button = this.add(mgui.actions[TGUIAction.ELN_TDF_CURRENT_SOURCE]);
+		button = this.add(mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SINK]);
 		button.addMouseListener(mgui.mouseHandler);
 		
-		button = this.add(mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SINK]);
+		button = this.add(mgui.actions[TGUIAction.ELN_TDF_CURRENT_SOURCE]);
 		button.addMouseListener(mgui.mouseHandler);
 		
 		button = this.add(mgui.actions[TGUIAction.ELN_TDF_CURRENT_SINK]);
@@ -178,7 +192,31 @@ public class ELNDiagramToolBar extends TToolBar {
 		
 		this.addSeparator();
 		
+		button = this.add(mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SOURCE]);
+		button.addMouseListener(mgui.mouseHandler);
+		
+		button = this.add(mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SINK]);
+		button.addMouseListener(mgui.mouseHandler);
+		
+		button = this.add(mgui.actions[TGUIAction.ELN_DE_CURRENT_SOURCE]);
+		button.addMouseListener(mgui.mouseHandler);
+		
+		button = this.add(mgui.actions[TGUIAction.ELN_DE_CURRENT_SINK]);
+		button.addMouseListener(mgui.mouseHandler);
+		
+		this.addSeparator();
+		
+		button = this.add(mgui.actions[TGUIAction.ELN_NODE_REF]);
+		button.addMouseListener(mgui.mouseHandler);
+		
+		this.addSeparator();
+		
 		button = this.add(mgui.actions[TGUIAction.ELN_TOGGLE_ATTR]);
 		button.addMouseListener(mgui.mouseHandler);
+		
+		this.addSeparator();
+		
+		button = this.add(mgui.actions[TGUIAction.ELN_GENCODE]);
+		button.addMouseListener(mgui.mouseHandler);
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNModule.java b/src/main/java/ui/eln/ELNModule.java
index dc7c22550daa59261b0b144714f3f2b761ed969b..018c6b39f8111de355b0e5b9ee3774dbb2ddcd05 100644
--- a/src/main/java/ui/eln/ELNModule.java
+++ b/src/main/java/ui/eln/ELNModule.java
@@ -41,8 +41,8 @@ package ui.eln;
 import myutil.GraphicLib;
 import ui.*;
 import ui.eln.sca_eln.*;
+import ui.eln.sca_eln_sca_de.*;
 import ui.eln.sca_eln_sca_tdf.*;
-import ui.syscams.*;
 import ui.util.IconManager;
 import ui.window.*;
 import java.awt.*;
@@ -91,7 +91,7 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall
 		removable = true;
 		userResizable = true;
 
-		value = tdp.findELNComponentName("Module");
+		value = tdp.findELNComponentName("module");
 	}
 
 	public void internalDrawing(Graphics g) {
@@ -205,153 +205,33 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall
 	}
 
 	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
-		if (tgc instanceof ELNComponentCapacitor) {
+		if (tgc instanceof ELNPrimitiveComponent) {
 			return true;
 		} 
-		if (tgc instanceof ELNComponentIdealTransformer) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentIndependentCurrentSource) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentIndependentVoltageSource) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentInductor) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentResistor) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentTransmissionLine) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentVoltageControlledCurrentSource) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentVoltageControlledVoltageSource) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentCurrentSinkTDF) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentCurrentSourceTDF) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentVoltageSinkTDF) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentVoltageSourceTDF) {
-			return true;
-		} 
-		if (tgc instanceof ELNComponentNodeRef) {
+		if (tgc instanceof ELNNodeRef) {
 			return true;
 		}
 		if (tgc instanceof ELNModuleTerminal) {
 			return true;
 		}
-		if (tgc instanceof SysCAMSPortDE) {
+		if (tgc instanceof ELNModulePortDE) {
 			return true;
 		}
-		if (tgc instanceof SysCAMSPortTDF) {
+		if (tgc instanceof ELNModulePortTDF) {
 			return true;
 		}
 		return false;
 	}
 
 	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
-		if (tgc instanceof ELNComponentCapacitor) {
+		if (tgc instanceof ELNPrimitiveComponent) {
 			tgc.setFather(this);
 			tgc.setDrawingZone(true);
 			tgc.resizeWithFather();
 			addInternalComponent(tgc, 0);
 			return true;
 		}
-		if (tgc instanceof ELNComponentIdealTransformer) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentIndependentCurrentSource) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentIndependentVoltageSource) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentInductor) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentResistor) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentTransmissionLine) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentVoltageControlledCurrentSource) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentVoltageControlledVoltageSource) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentCurrentSinkTDF) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentCurrentSourceTDF) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentVoltageSinkTDF) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentVoltageSourceTDF) {
-			tgc.setFather(this);
-			tgc.setDrawingZone(true);
-			tgc.resizeWithFather();
-			addInternalComponent(tgc, 0);
-			return true;
-		}
-		if (tgc instanceof ELNComponentNodeRef) {
+		if (tgc instanceof ELNNodeRef) {
 			tgc.setFather(this);
 			tgc.setDrawingZone(true);
 			tgc.resizeWithFather();
@@ -365,14 +245,14 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall
 			addInternalComponent(tgc, 0);
 			return true;
 		}
-		if (tgc instanceof SysCAMSPortDE) {
+		if (tgc instanceof ELNModulePortDE) {
 			tgc.setFather(this);
 			tgc.setDrawingZone(true);
 			tgc.resizeWithFather();
 			addInternalComponent(tgc, 0);
 			return true;
 		}
-		if (tgc instanceof SysCAMSPortTDF) {
+		if (tgc instanceof ELNModulePortTDF) {
 			tgc.setFather(this);
 			tgc.setDrawingZone(true);
 			tgc.resizeWithFather();
@@ -389,55 +269,19 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall
 	public void hasBeenResized() {
 		rescaled = true;
 		for(int i=0; i<nbInternalTGComponent; i++) {
-			if (tgcomponent[i] instanceof ELNComponentCapacitor) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentIdealTransformer) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentIndependentCurrentSource) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentIndependentVoltageSource) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentInductor) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentResistor) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentTransmissionLine) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentVoltageControlledCurrentSource) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentVoltageControlledVoltageSource) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentCurrentSinkTDF) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentCurrentSourceTDF) {
+			if (tgcomponent[i] instanceof ELNPrimitiveComponent) {
 				tgcomponent[i].resizeWithFather();
 			}
-			if (tgcomponent[i] instanceof ELNComponentVoltageSinkTDF) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentVoltageSourceTDF) {
-				tgcomponent[i].resizeWithFather();
-			}
-			if (tgcomponent[i] instanceof ELNComponentNodeRef) {
+			if (tgcomponent[i] instanceof ELNNodeRef) {
 				tgcomponent[i].resizeWithFather();
 			}
 			if (tgcomponent[i] instanceof ELNModuleTerminal) {
 				tgcomponent[i].resizeWithFather();
 			}
-			if (tgcomponent[i] instanceof SysCAMSPortDE) {
+			if (tgcomponent[i] instanceof ELNModulePortDE) {
 				tgcomponent[i].resizeWithFather();
 			}
-			if (tgcomponent[i] instanceof SysCAMSPortTDF) {
+			if (tgcomponent[i] instanceof ELNModulePortTDF) {
 				tgcomponent[i].resizeWithFather();
 			}
 		}
@@ -480,6 +324,26 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall
 		return list;
 	}
 	
+	public java.util.List<ELNComponentCurrentSinkDE> getAllComponentCurrentSinkDE() {
+		java.util.List<ELNComponentCurrentSinkDE> list = new ArrayList<ELNComponentCurrentSinkDE>();
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNComponentCurrentSinkDE) {
+				list.add((ELNComponentCurrentSinkDE)(tgcomponent[i]));
+			}
+		}
+		return list;
+	}
+	
+	public java.util.List<ELNComponentCurrentSourceDE> getAllComponentCurrentSourceDE() {
+		java.util.List<ELNComponentCurrentSourceDE> list = new ArrayList<ELNComponentCurrentSourceDE>();
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNComponentCurrentSourceDE) {
+				list.add((ELNComponentCurrentSourceDE)(tgcomponent[i]));
+			}
+		}
+		return list;
+	}
+	
 	public java.util.List<ELNComponentCurrentSinkTDF> getAllComponentCurrentSinkTDF() {
 		java.util.List<ELNComponentCurrentSinkTDF> list = new ArrayList<ELNComponentCurrentSinkTDF>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
@@ -540,11 +404,11 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall
 		return list;
 	}
 	
-	public java.util.List<ELNComponentNodeRef> getAllComponentNodeRef() {
-		java.util.List<ELNComponentNodeRef> list = new ArrayList<ELNComponentNodeRef>();
+	public java.util.List<ELNNodeRef> getAllComponentNodeRef() {
+		java.util.List<ELNNodeRef> list = new ArrayList<ELNNodeRef>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
-			if (tgcomponent[i] instanceof ELNComponentNodeRef) {
-				list.add((ELNComponentNodeRef)(tgcomponent[i]));
+			if (tgcomponent[i] instanceof ELNNodeRef) {
+				list.add((ELNNodeRef)(tgcomponent[i]));
 			}
 		}
 		return list;
@@ -590,6 +454,26 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall
 		return list;
 	}
 	
+	public java.util.List<ELNComponentVoltageSinkDE> getAllComponentVoltageSinkDE() {
+		java.util.List<ELNComponentVoltageSinkDE> list = new ArrayList<ELNComponentVoltageSinkDE>();
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNComponentVoltageSinkDE) {
+				list.add((ELNComponentVoltageSinkDE)(tgcomponent[i]));
+			}
+		}
+		return list;
+	}
+	
+	public java.util.List<ELNComponentVoltageSourceDE> getAllComponentVoltageSourceDE() {
+		java.util.List<ELNComponentVoltageSourceDE> list = new ArrayList<ELNComponentVoltageSourceDE>();
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNComponentVoltageSourceDE) {
+				list.add((ELNComponentVoltageSourceDE)(tgcomponent[i]));
+			}
+		}
+		return list;
+	}
+	
 	public java.util.List<ELNComponentVoltageSinkTDF> getAllComponentVoltageSinkTDF() {
 		java.util.List<ELNComponentVoltageSinkTDF> list = new ArrayList<ELNComponentVoltageSinkTDF>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
@@ -619,4 +503,24 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall
 		}
 		return list;
 	}
+	
+	public java.util.List<ELNModulePortDE> getAllModulePortDE() {
+		java.util.List<ELNModulePortDE> list = new ArrayList<ELNModulePortDE>();
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNModulePortDE) {
+				list.add((ELNModulePortDE)(tgcomponent[i]));
+			}
+		}
+		return list;
+	}
+
+	public java.util.List<ELNModulePortTDF> getAllModulePortTDF() {
+		java.util.List<ELNModulePortTDF> list = new ArrayList<ELNModulePortTDF>();
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNModulePortTDF) {
+				list.add((ELNModulePortTDF)(tgcomponent[i]));
+			}
+		}
+		return list;
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNModulePortDE.java b/src/main/java/ui/eln/ELNModulePortDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..a085cf40fc4c4f28e2ae855e361e67a4fa064528
--- /dev/null
+++ b/src/main/java/ui/eln/ELNModulePortDE.java
@@ -0,0 +1,353 @@
+/* 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 ui.eln;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.window.*;
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * Class ELNModulePortDE
+ * Primitive port. To be used in ELN diagrams 
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNModulePortDE extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+	protected int oldx, oldy;
+	protected int currentOrientation = GraphicLib.NORTH;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+	
+	private String type;
+	private String origin;
+
+	public ELNModulePortDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(20, 20);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initConnectingPoint(2);
+
+		addTGConnectingPointsComment();
+
+		nbInternalTGComponent = 0;
+
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = false;
+
+		value = "";
+		type = "bool";
+		origin = "in";
+	}
+
+	public void initConnectingPoint(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, "");
+		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 0.0, "");
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+
+		if ((x != oldx) | (oldy != y)) {
+			manageMove(g, f);
+			oldx = x;
+			oldy = y;
+		} else {
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+			switch (currentOrientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+		}
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y, width, height);
+		g.setColor(c);
+		g.drawRect(x, y, width, height);
+		g.setFont(fold);
+	}
+
+	public void manageMove(Graphics g, Font f) {
+		if (father != null) {
+			Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(),
+					father.getWidth(), father.getHeight());
+
+			x = p.x - width / 2;
+			y = p.y - height / 2;
+
+			setMoveCd(x, y);
+
+			int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(),
+					father.getY(), father.getWidth(), father.getHeight());
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			switch (orientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+			
+			if (orientation != currentOrientation) {
+				setOrientation(orientation);
+			}
+		}
+	}
+
+	public void setOrientation(int orientation) {
+		currentOrientation = orientation;
+		double w0, h0, w1, h1;
+
+		switch (orientation) {
+		case GraphicLib.NORTH:
+			w0 = 0.5;
+			h0 = 1.0;
+			w1 = 0.5;
+			h1 = 0.0;
+			break;
+		case GraphicLib.WEST:
+			w0 = 1.0;
+			h0 = 0.5;
+			w1 = 0.0;
+			h1 = 0.5;
+			break;
+		case GraphicLib.SOUTH:
+			w0 = 0.5;
+			h0 = 0.0;
+			w1 = 0.5;
+			h1 = 1.0;
+			break;
+		case GraphicLib.EAST:
+		default:
+			w0 = 0.0;
+			h0 = 0.5;
+			w1 = 1.0;
+			h1 = 0.5;
+		}
+
+		((ELNConnectingPoint) connectingPoint[0]).setW(w0);
+		((ELNConnectingPoint) connectingPoint[0]).setH(h0);
+		((ELNConnectingPoint) connectingPoint[1]).setW(w1);
+		((ELNConnectingPoint) connectingPoint[1]).setH(h1);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_MODULE_PORT_DE;
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNModule)) {
+			setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2,
+					father.getHeight() - (getHeight() / 2));
+			setMoveCd(x, y);
+			oldx = -1;
+			oldy = -1;
+		}
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNModulePortDE jde = new JDialogELNModulePortDE(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes name=\"" + value);
+		sb.append("\" type=\"" + type);
+		sb.append("\" origin=\"" + origin + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			String name, type, origin;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								name = elt.getAttribute("name");
+								type = elt.getAttribute("type");
+								origin = elt.getAttribute("origin");
+								setValue(name);
+								setPortType(type);
+								setOrigin(origin);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+
+	public String getPortType() {
+		return type;
+	}
+
+	public void setPortType(String _type) {
+		type = _type;
+	}
+	
+	public String getOrigin() {
+		return origin;
+	}
+
+	public void setOrigin(String _origin) {
+		origin = _origin;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNModulePortTDF.java b/src/main/java/ui/eln/ELNModulePortTDF.java
new file mode 100644
index 0000000000000000000000000000000000000000..dc20d004aa25f4868386b30c63bf8c407bdeb774
--- /dev/null
+++ b/src/main/java/ui/eln/ELNModulePortTDF.java
@@ -0,0 +1,353 @@
+/* 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 ui.eln;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.window.*;
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * Class ELNModulePortTDF
+ * Primitive port. To be used in ELN diagrams 
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNModulePortTDF extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+	protected int oldx, oldy;
+	protected int currentOrientation = GraphicLib.NORTH;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+
+	private String type;
+	private String origin;
+	
+	public ELNModulePortTDF(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(20, 20);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initConnectingPoint(2);
+
+		addTGConnectingPointsComment();
+
+		nbInternalTGComponent = 0;
+
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = false;
+
+		value = "";
+		type = "bool";
+		origin = "in";
+	}
+
+	public void initConnectingPoint(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, "");
+		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 0.0, "");
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+
+		if ((x != oldx) | (oldy != y)) {
+			manageMove(g, f);
+			oldx = x;
+			oldy = y;
+		} else {
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+			switch (currentOrientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+		}
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+		g.setColor(Color.BLACK);
+		g.fillRect(x, y, width, height);
+		g.setColor(c);
+		g.drawRect(x, y, width, height);
+		g.setFont(fold);
+	}
+
+	public void manageMove(Graphics g, Font f) {
+		if (father != null) {
+			Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(),
+					father.getWidth(), father.getHeight());
+
+			x = p.x - width / 2;
+			y = p.y - height / 2;
+
+			setMoveCd(x, y);
+
+			int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(),
+					father.getY(), father.getWidth(), father.getHeight());
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int w = g.getFontMetrics().stringWidth(value);
+			int h = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			switch (orientation) {
+			case GraphicLib.NORTH:
+				g.drawString(value, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(value, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(value, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(value, x + width, y + height + height / 2 + h);
+			}
+			
+			if (orientation != currentOrientation) {
+				setOrientation(orientation);
+			}
+		}
+	}
+
+	public void setOrientation(int orientation) {
+		currentOrientation = orientation;
+		double w0, h0, w1, h1;
+
+		switch (orientation) {
+		case GraphicLib.NORTH:
+			w0 = 0.5;
+			h0 = 1.0;
+			w1 = 0.5;
+			h1 = 0.0;
+			break;
+		case GraphicLib.WEST:
+			w0 = 1.0;
+			h0 = 0.5;
+			w1 = 0.0;
+			h1 = 0.5;
+			break;
+		case GraphicLib.SOUTH:
+			w0 = 0.5;
+			h0 = 0.0;
+			w1 = 0.5;
+			h1 = 1.0;
+			break;
+		case GraphicLib.EAST:
+		default:
+			w0 = 0.0;
+			h0 = 0.5;
+			w1 = 1.0;
+			h1 = 0.5;
+		}
+
+		((ELNConnectingPoint) connectingPoint[0]).setW(w0);
+		((ELNConnectingPoint) connectingPoint[0]).setH(h0);
+		((ELNConnectingPoint) connectingPoint[1]).setW(w1);
+		((ELNConnectingPoint) connectingPoint[1]).setH(h1);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_MODULE_PORT_TDF;
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNModule)) {
+			setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2,
+					father.getHeight() - (getHeight() / 2));
+			setMoveCd(x, y);
+			oldx = -1;
+			oldy = -1;
+		}
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNModulePortTDF jde = new JDialogELNModulePortTDF(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes name=\"" + value);
+		sb.append("\" type=\"" + type);
+		sb.append("\" origin=\"" + origin + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			String name, type, origin;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								name = elt.getAttribute("name");
+								type = elt.getAttribute("type");
+								origin = elt.getAttribute("origin");
+								setValue(name);
+								setPortType(type);
+								setOrigin(origin);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+	
+	public String getPortType() {
+		return type;
+	}
+
+	public void setPortType(String _type) {
+		type = _type;
+	}
+	
+	public String getOrigin() {
+		return origin;
+	}
+
+	public void setOrigin(String _origin) {
+		origin = _origin;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java b/src/main/java/ui/eln/ELNNodeRef.java
similarity index 97%
rename from src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java
rename to src/main/java/ui/eln/ELNNodeRef.java
index 64ecee13b321917c6e3032ca2ed6345de329d97e..1ddbf7911e0a49dca41bd93ae272044cbd5f12f2 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java
+++ b/src/main/java/ui/eln/ELNNodeRef.java
@@ -36,7 +36,7 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-package ui.eln.sca_eln;
+package ui.eln;
 
 import myutil.GraphicLib;
 
@@ -44,9 +44,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
-import ui.eln.ELNModule;
-import ui.window.JDialogELNComponentNodeRef;
+import ui.window.JDialogELNNodeRef;
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
@@ -60,7 +58,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent {
+public class ELNNodeRef extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -76,7 +74,7 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 	private int old;
 	private boolean first;
 
-	public ELNComponentNodeRef(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+	public ELNNodeRef(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(40, 40);
@@ -96,7 +94,7 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 		editable = true;
 		removable = true;
 		userResizable = false;
-		value = tdp.findELNComponentName("gnd");
+		value = "gnd";
 
 		old = width;
 		width = height;
@@ -382,7 +380,7 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 	}
 
 	public boolean editOndoubleClick(JFrame frame) {
-		JDialogELNComponentNodeRef jde = new JDialogELNComponentNodeRef(this);
+		JDialogELNNodeRef jde = new JDialogELNNodeRef(this);
 		jde.setVisible(true);
 		return true;
 	}
diff --git a/src/main/java/ui/eln/ELNPrimitiveComponent.java b/src/main/java/ui/eln/ELNPrimitiveComponent.java
new file mode 100644
index 0000000000000000000000000000000000000000..712d2657dbb68837ebebcede0bb29f504ee0dd6b
--- /dev/null
+++ b/src/main/java/ui/eln/ELNPrimitiveComponent.java
@@ -0,0 +1,5 @@
+package ui.eln;
+
+public interface ELNPrimitiveComponent {
+
+}
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java b/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java
index 9429e0f1b8dfc0fba2cad937282ee5721747e52b..b11e4023b6f6083497d1e1cb8b51d809d8734514 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java
@@ -58,7 +58,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentCapacitor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentCapacitor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java b/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java
index 2934a908c2b62b84af273784f150068a4ba235ec..dedda5b0a3767f0f9e2b41a937cf17ad74909b84 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java
@@ -59,7 +59,7 @@ import java.awt.geom.RoundRectangle2D;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentIdealTransformer extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentIdealTransformer extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java
index 76c95f747b8a0026c526c47055f6fa46c67aa5ad..049ab73c308441c1a1b7cca5dc5d2ddba4a99b75 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java
@@ -58,7 +58,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentIndependentCurrentSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentIndependentCurrentSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java
index f211f3ee04619e3be7afa1938f6109cd251ed02e..35762a5d75425a101b300aa5635ade0e6f2308f5 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java
@@ -58,7 +58,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentIndependentVoltageSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentIndependentVoltageSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java b/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java
index ad95dcbd85f4f717343ecd2d04c79e0afffee07d..02f649d07c2a9f7d225dcf0cb0e590bcf6571ab4 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java
@@ -59,7 +59,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentInductor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentInductor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java b/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java
index 6ea92b14d86cc27a1ef78256c89c116b1be471bc..354af03fbd89e95f31a6acf1b0cd81607aadcb32 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java
@@ -58,7 +58,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentResistor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentResistor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java b/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java
index a079fe145eb5b1529c612e80bd4172d8c8ad8305..1c55f9a32d81867586666dd585819674501f9586 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java
@@ -59,7 +59,7 @@ import java.awt.geom.RoundRectangle2D;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentTransmissionLine extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentTransmissionLine extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java
index 499e97ba6ac4ac2e376fa049bcf6b8fbc0a7c091..8a7efa12f25e820d7169c17b3fc9d90320162b22 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java
@@ -52,14 +52,15 @@ import java.awt.event.ActionListener;
 import java.awt.geom.RoundRectangle2D;
 
 /**
- * Class ELNComponentVoltageControlledCurrentSource 
- * Voltage controlled current source to be used in ELN diagrams 
- * Creation: 13/06/2018
+ * Class ELNComponentVoltageControlledCurrentSource Voltage controlled current
+ * source to be used in ELN diagrams Creation: 13/06/2018
+ * 
  * @version 1.0 13/06/2018
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithInternalComponent
+		implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -78,7 +79,8 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 	private int old;
 	private boolean first;
 
-	public ELNComponentVoltageControlledCurrentSource(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+	public ELNComponentVoltageControlledCurrentSource(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY,
+			boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(120, 80);
@@ -626,27 +628,22 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16,
-				y + height / 4, y + height / 4 };
+		int[] pty3 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4,
+				y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx3, pty3, 6);
 		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height - height / 4, y + height - height / 4 };
+		int[] pty4 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 5 * width / 6 + width / 12 + width / 24, x + 5 * width / 6 + width / 12 + width / 24,
-				x + 5 * width / 6 + width / 12, x + 5 * width / 6 + width / 12 + width / 24,
-				x + 5 * width / 6 + width / 6, x + 5 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8,
-				y + 3 * height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8 };
-		g.drawPolygon(ptx5, pty5, 6);
-		g.fillPolygon(ptx5, pty5, 6);
-		
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width - width / 12 - width / 24, y + height / 4,
+				x + width - width / 12 - width / 24, y + 3 * height / 4, true);
+
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
 		g2d.setStroke(dashed);
 		g2d.draw(new RoundRectangle2D.Double(x + width / 24, y - height / 16, width - width / 12, height + height / 8,
 				10, 10));
 		g2d.dispose();
-		
+
 		g.drawOval(x, y, width / 12, height / 8);
 		g.setColor(Color.WHITE);
 		g.fillOval(x, y, width / 12, height / 8);
@@ -683,27 +680,23 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16,
-				y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 };
+		int[] pty3 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16,
+				y + height - height / 8, y + height - height / 4, y + height - height / 8 - height / 16,
+				y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx3, pty3, 6);
 		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height / 4, y + height / 4 };
+		int[] pty4 = { y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 5 * width / 6 + width / 12 + width / 24, x + 5 * width / 6 + width / 12 + width / 24,
-				x + 5 * width / 6 + width / 12, x + 5 * width / 6 + width / 12 + width / 24,
-				x + 5 * width / 6 + width / 6, x + 5 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + 3 * height / 4, y + height / 4 + height / 8, y + height / 4 + height / 8, y + height / 4,
-				y + height / 4 + height / 8, y + height / 4 + height / 8 };
-		g.drawPolygon(ptx5, pty5, 6);
-		g.fillPolygon(ptx5, pty5, 6);
-		
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width - width / 12 - width / 24, y + 3 * height / 4,
+				x + width - width / 12 - width / 24, y + height / 4, true);
+
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
 		g2d.setStroke(dashed);
 		g2d.draw(new RoundRectangle2D.Double(x + width / 24, y - height / 16, width - width / 12, height + height / 8,
 				10, 10));
-		g2d.dispose();		
-		
+		g2d.dispose();
+
 		g.drawOval(x, y, width / 12, height / 8);
 		g.setColor(Color.WHITE);
 		g.fillOval(x, y, width / 12, height / 8);
@@ -740,27 +733,23 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 		int[] ptx3 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty3 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16,
-				y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 };
+		int[] pty3 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16,
+				y + height - height / 8, y + height - height / 4, y + height - height / 8 - height / 16,
+				y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx3, pty3, 6);
 		int[] ptx4 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty4 = { y + height / 4, y + height / 4 };
+		int[] pty4 = { y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 12 - width / 24,
-				x + width / 6 - width / 12, x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 6,
-				x + width / 6 - width / 12 - width / 24 };
-		int[] pty5 = { y + 3 * height / 4, y + height / 4 + height / 8, y + height / 4 + height / 8, y + height / 4,
-				y + height / 4 + height / 8, y + height / 4 + height / 8 };
-		g.drawPolygon(ptx5, pty5, 6);
-		g.fillPolygon(ptx5, pty5, 6);
-		
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 12 + width / 24, y + 3 * height / 4,
+				x + width / 12 + width / 24, y + height / 4, true);
+
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
 		g2d.setStroke(dashed);
 		g2d.draw(new RoundRectangle2D.Double(x + width / 24, y - height / 16, width - width / 12, height + height / 8,
 				10, 10));
 		g2d.dispose();
-		
+
 		g.drawOval(x, y, width / 12, height / 8);
 		g.setColor(Color.WHITE);
 		g.fillOval(x, y, width / 12, height / 8);
@@ -797,27 +786,22 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 		int[] ptx3 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty3 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16,
-				y + height / 4, y + height / 4 };
+		int[] pty3 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4,
+				y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx3, pty3, 6);
 		int[] ptx4 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty4 = { y + height - height / 4, y + height - height / 4 };
+		int[] pty4 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 12 - width / 24,
-				x + width / 6 - width / 12, x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 6,
-				x + width / 6 - width / 12 - width / 24 };
-		int[] pty5 = { y + height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8,
-				y + 3 * height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8 };
-		g.drawPolygon(ptx5, pty5, 6);
-		g.fillPolygon(ptx5, pty5, 6);
-		
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 12 + width / 24, y + height / 4, x + width / 12 + width / 24,
+				y + 3 * height / 4, true);
+
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
 		g2d.setStroke(dashed);
 		g2d.draw(new RoundRectangle2D.Double(x + width / 24, y - height / 16, width - width / 12, height + height / 8,
 				10, 10));
 		g2d.dispose();
-		
+
 		g.drawOval(x, y, width / 12, height / 8);
 		g.setColor(Color.WHITE);
 		g.fillOval(x, y, width / 12, height / 8);
@@ -851,30 +835,25 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 				y + 4 * height / 6, y + height, y + 4 * height / 6, y + 4 * height / 6, y + 5 * height / 6,
 				y + 3 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16,
-				x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 };
+		int[] ptx3 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8,
+				x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width / 4, x + width / 4 };
+		int[] ptx4 = { x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 3 * width / 4, x + width / 4 + width / 8, x + width / 4 + width / 8, x + width / 4,
-				x + width / 4 + width / 8, x + width / 4 + width / 8 };
-		int[] pty5 = { y + 5 * height / 6 + height / 12 + height / 24, y + 5 * height / 6 + height / 12 + height / 24,
-				y + 5 * height / 6 + height / 12, y + 5 * height / 6 + height / 12 + height / 24,
-				y + 5 * height / 6 + height / 6, y + 5 * height / 6 + height / 12 + height / 24 };
-		g.drawPolygon(ptx5, pty5, 6);
-		g.fillPolygon(ptx5, pty5, 6);
-		
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 3 * width / 4, y + height - height / 12 - height / 24, x + width / 4,
+				y + height - height / 12 - height / 24, true);
+
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
 		g2d.setStroke(dashed);
 		g2d.draw(new RoundRectangle2D.Double(x - width / 16, y + height / 24, width + width / 8, height - height / 12,
 				10, 10));
 		g2d.dispose();
-		
+
 		g.drawOval(x, y, width / 8, height / 12);
 		g.setColor(Color.WHITE);
 		g.fillOval(x, y, width / 8, height / 12);
@@ -908,30 +887,25 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 				y + 2 * height / 6, y, y + 2 * height / 6, y + 2 * height / 6, y + 3 * height / 6, y + height / 6,
 				y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16,
-				x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 };
+		int[] ptx3 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8,
+				x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty3 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width / 4, x + width / 4 };
+		int[] ptx4 = { x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty4 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 3 * width / 4, x + width / 4 + width / 8, x + width / 4 + width / 8, x + width / 4,
-				x + width / 4 + width / 8, x + width / 4 + width / 8 };
-		int[] pty5 = { y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 12 - height / 24,
-				y + height / 6 - height / 12, y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 6,
-				y + height / 6 - height / 12 - height / 24 };
-		g.drawPolygon(ptx5, pty5, 6);
-		g.fillPolygon(ptx5, pty5, 6);
-		
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 3 * width / 4, y + height / 12 + height / 24, x + width / 4,
+				y + height / 12 + height / 24, true);
+
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
 		g2d.setStroke(dashed);
 		g2d.draw(new RoundRectangle2D.Double(x - width / 16, y + height / 24, width + width / 8, height - height / 12,
 				10, 10));
 		g2d.dispose();
-		
+
 		g.drawOval(x, y, width / 8, height / 12);
 		g.setColor(Color.WHITE);
 		g.fillOval(x, y, width / 8, height / 12);
@@ -965,30 +939,25 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 				y + 2 * height / 6, y, y + 2 * height / 6, y + 2 * height / 6, y + 3 * height / 6, y + height / 6,
 				y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16,
-				x + width / 4, x + width / 4 };
+		int[] ptx3 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4,
+				x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty3 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width - width / 4, x + width - width / 4 };
+		int[] ptx4 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty4 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 4, x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8, x + 3 * width / 4,
-				x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8 };
-		int[] pty5 = { y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 12 - height / 24,
-				y + height / 6 - height / 12, y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 6,
-				y + height / 6 - height / 12 - height / 24 };
-		g.drawPolygon(ptx5, pty5, 6);
-		g.fillPolygon(ptx5, pty5, 6);
-		
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 4, y + height / 12 + height / 24, x + 3 * width / 4,
+				y + height / 12 + height / 24, true);
+
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
 		g2d.setStroke(dashed);
 		g2d.draw(new RoundRectangle2D.Double(x - width / 16, y + height / 24, width + width / 8, height - height / 12,
 				10, 10));
 		g2d.dispose();
-		
+
 		g.drawOval(x, y, width / 8, height / 12);
 		g.setColor(Color.WHITE);
 		g.fillOval(x, y, width / 8, height / 12);
@@ -1022,30 +991,25 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 				y + 4 * height / 6, y + height, y + 4 * height / 6, y + 4 * height / 6, y + 5 * height / 6,
 				y + 3 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16,
-				x + width / 4, x + width / 4 };
+		int[] ptx3 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4,
+				x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width - width / 4, x + width - width / 4 };
+		int[] ptx4 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 4, x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8, x + 3 * width / 4,
-				x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8 };
-		int[] pty5 = { y + 5 * height / 6 + height / 12 + height / 24, y + 5 * height / 6 + height / 12 + height / 24,
-				y + 5 * height / 6 + height / 12, y + 5 * height / 6 + height / 12 + height / 24,
-				y + 5 * height / 6 + height / 6, y + 5 * height / 6 + height / 12 + height / 24 };
-		g.drawPolygon(ptx5, pty5, 6);
-		g.fillPolygon(ptx5, pty5, 6);
-		
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 4, y + height - height / 12 - height / 24, x + 3 * width / 4,
+				y + height - height / 12 - height / 24, true);
+
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
 		g2d.setStroke(dashed);
 		g2d.draw(new RoundRectangle2D.Double(x - width / 16, y + height / 24, width + width / 8, height - height / 12,
 				10, 10));
 		g2d.dispose();
-		
+
 		g.drawOval(x, y, width / 8, height / 12);
 		g.setColor(Color.WHITE);
 		g.fillOval(x, y, width / 8, height / 12);
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java
index 7204be924b0f9dec740f00f9cefa0c6dcdb0ad5a..8b9300eac5afb71354f5f73d0cae021018dd8563 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java
@@ -59,7 +59,7 @@ import java.awt.geom.RoundRectangle2D;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -624,20 +624,20 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16,
-				y + height / 4, y + height / 4 };
+		int[] pty3 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4,
+				y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx3, pty3, 6);
 		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height - height / 4, y + height - height / 4 };
+		int[] pty4 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx4, pty4, 2);
 		int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16,
-				y + height / 4, y + height / 4 };
+		int[] pty5 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4,
+				y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx5, pty5, 6);
 		int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty6 = { y + height - height / 4, y + height - height / 4 };
+		int[] pty6 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx6, pty6, 2);
 		
 		Graphics2D g2d = (Graphics2D) g.create();
@@ -683,20 +683,20 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16,
-				y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 };
+		int[] pty3 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 4,
+			y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx3, pty3, 6);
 		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height / 4, y + height / 4 };
+		int[] pty4 = { y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx4, pty4, 2);
 		int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16,
-				y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 };
+		int[] pty5 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 4,
+				y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx5, pty5, 6);
 		int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty6 = { y + height / 4, y + height / 4 };
+		int[] pty6 = { y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx6, pty6, 2);
 		
 		Graphics2D g2d = (Graphics2D) g.create();
@@ -741,20 +741,20 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16,
-				y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 };
+		int[] pty3 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 4,
+				y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx3, pty3, 6);
 		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height / 4, y + height / 4 };
+		int[] pty4 = { y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx4, pty4, 2);
 		int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16,
-				y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 };
+		int[] pty5 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 4,
+				y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx5, pty5, 6);
 		int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty6 = { y + height / 4, y + height / 4 };
+		int[] pty6 = { y + height / 8 + height / 16, y + height / 8 + height / 16 };;
 		g.drawPolygon(ptx6, pty6, 2);
 		
 		Graphics2D g2d = (Graphics2D) g.create();
@@ -799,20 +799,20 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16,
-				y + height / 4, y + height / 4 };
+		int[] pty3 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4,
+				y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx3, pty3, 6);
 		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height - height / 4, y + height - height / 4 };
+		int[] pty4 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx4, pty4, 2);
 		int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16,
-				y + height / 4, y + height / 4 };
+		int[] pty5 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4,
+				y + height / 8 + height / 16, y + height / 8 + height / 16 };
 		g.drawPolygon(ptx5, pty5, 6);
 		int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty6 = { y + height - height / 4, y + height - height / 4 };
+		int[] pty6 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 };
 		g.drawPolygon(ptx6, pty6, 2);
 		
 		Graphics2D g2d = (Graphics2D) g.create();
@@ -855,22 +855,22 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 				y + 4 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6, y + height,
 				y + 4 * height / 6, y + 4 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16,
-				x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 };
+		int[] ptx3 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8,
+				x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width / 4, x + width / 4 };
+		int[] ptx4 = { x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16,
-				x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 };
+		int[] ptx5 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8,
+				x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + width / 4, x + width / 4 };
+		int[] ptx6 = { x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx6, pty6, 2);
 		
@@ -914,21 +914,24 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 				y + 2 * height / 6, y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6, y, y + 2 * height / 6,
 				y + 2 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16,
-				x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 };
+		int[] ptx3 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8,
+				x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width / 4, x + width / 4 };
+		int[] ptx4 = { x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16,
-				x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 };
+		int[] ptx5 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8,
+				x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
+		int[] ptx6 = { x + width / 8 + width / 16, x + width / 8 + width / 16 };
+		int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
+		g.drawPolygon(ptx6, pty6, 2);
 		
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -937,9 +940,6 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 				10, 10));
 		g2d.dispose();
 		
-		int[] ptx6 = { x + width / 4, x + width / 4 };
-		int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
-		g.drawPolygon(ptx6, pty6, 2);
 		g.drawOval(x, y, width / 8, height / 12);
 		g.setColor(Color.WHITE);
 		g.fillOval(x, y, width / 8, height / 12);
@@ -973,22 +973,22 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 				y + 2 * height / 6, y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6, y, y + 2 * height / 6,
 				y + 2 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16,
-				x + width / 4, x + width / 4 };
+		int[] ptx3 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4,
+				x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width - width / 4, x + width - width / 4 };
+		int[] ptx4 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16,
-				x + width / 4, x + width / 4 };
+		int[] ptx5 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4,
+				x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + width - width / 4, x + width - width / 4 };
+		int[] ptx6 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx6, pty6, 2);
 		
@@ -1032,22 +1032,22 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 				y + 4 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6, y + height,
 				y + 4 * height / 6, y + 4 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16,
-				x + width / 4, x + width / 4 };
+		int[] ptx3 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4,
+				x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width - width / 4, x + width - width / 4 };
+		int[] ptx4 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16,
-				x + width / 4, x + width / 4 };
+		int[] ptx5 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4,
+				x + width / 8 + width / 16, x + width / 8 + width / 16 };
 		int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + width - width / 4, x + width - width / 4 };
+		int[] ptx6 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 };
 		int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx6, pty6, 2);
 		
diff --git a/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSinkDE.java b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSinkDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb7e1a5c3e365dd016878ffc4136f6bfb8b60e87
--- /dev/null
+++ b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSinkDE.java
@@ -0,0 +1,1035 @@
+/* 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 ui.eln.sca_eln_sca_de;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.eln.*;
+import ui.window.JDialogELNComponentCurrentSinkDE;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.geom.RoundRectangle2D;
+
+/**
+ * Class ELNComponentCurrentSinkDE 
+ * Converts current to a TDF output signal to be used in ELN diagrams 
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNComponentCurrentSinkDE extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+
+	private double scale;
+
+	private int position = 0;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
+	private int old;
+	private boolean first;
+
+	public ELNComponentCurrentSinkDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(100, 100);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initPortTerminal(3);
+
+		addTGConnectingPointsComment();
+
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = false;
+		value = tdp.findELNComponentName("DE_ISink");
+
+		setScale(1.0);
+
+		old = width;
+		width = height;
+		height = old;
+	}
+
+	public void initPortTerminal(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p");
+		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "n");
+		connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "outp");
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+		MainGUI mgui = getTDiagramPanel().getMainGUI();
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+
+		if (position == 0) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sw2 = g.getFontMetrics().stringWidth("outp");
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int w = g.getFontMetrics().stringWidth(value);
+			g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateBottomFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateTopFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+		} else if (position == 1) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int h = g.getFontMetrics().getAscent();
+			g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateRightFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateLeftFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+		} else if (position == 2) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sw2 = g.getFontMetrics().stringWidth("outp");
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int w = g.getFontMetrics().stringWidth(value);
+			g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateTopFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateBottomFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+		} else if (position == 3) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int h = g.getFontMetrics().getAscent();
+			g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateLeftFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateRightFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+		}
+		g.setColor(c);
+		g.setFont(fold);
+	}
+
+	private void rotateTop(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x, x + 2 * width / 5, x + 2 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20,
+				y + height - height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 6);
+		int[] ptx1 = { x + 2 * width / 5 - width / 20, x + 2 * width / 5, x + 2 * width / 5 + width / 20 };
+		int[] pty1 = { y + height / 2, y + height / 2 + height / 20, y + height / 2 };
+		g.drawPolygon(ptx1, pty1, 3);
+		g.fillPolygon(ptx1, pty1, 3);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateTopFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x, x + 2 * width / 5, x + 2 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20,
+				y + height - height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 6);
+		int[] ptx1 = { x + 2 * width / 5 - width / 20, x + 2 * width / 5, x + 2 * width / 5 + width / 20 };
+		int[] pty1 = { y + height / 2, y + height / 2 - height / 20, y + height / 2 };
+		g.drawPolygon(ptx1, pty1, 3);
+		g.fillPolygon(ptx1, pty1, 3);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateBottom(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + width, x + 3 * width / 5,
+				x + 3 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20,
+				y + height - height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 6);
+		int[] ptx1 = { x + 3 * width / 5 - width / 20, x + 3 * width / 5, x + 3 * width / 5 + width / 20 };
+		int[] pty1 = { y + height / 2, y + height / 2 - height / 20, y + height / 2 };
+		g.drawPolygon(ptx1, pty1, 3);
+		g.fillPolygon(ptx1, pty1, 3);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateBottomFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + width, x + 3 * width / 5,
+				x + 3 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20,
+				y + height - height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 6);
+		int[] ptx1 = { x + 3 * width / 5 - width / 20, x + 3 * width / 5, x + 3 * width / 5 + width / 20 };
+		int[] pty1 = { y + height / 2, y + height / 2 + height / 20, y + height / 2 };
+		g.drawPolygon(ptx1, pty1, 3);
+		g.fillPolygon(ptx1, pty1, 3);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateRight(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20,
+				x + width - width / 20, x + width / 20 };
+		int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y, y + 2 * height / 5, y + 2 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 6);
+		int[] ptx1 = { x + width / 2, x + width / 2 - width / 20, x + width / 2 };
+		int[] pty1 = { y + 2 * height / 5 - height / 20, y + 2 * height / 5, y + 2 * height / 5 + height / 20 };
+		g.drawPolygon(ptx1, pty1, 3);
+		g.fillPolygon(ptx1, pty1, 3);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateRightFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20,
+				x + width - width / 20, x + width / 20 };
+		int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + height, y + 3 * height / 5,
+				y + 3 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 6);
+		int[] ptx1 = { x + width / 2, x + width / 2 - width / 20, x + width / 2 };
+		int[] pty1 = { y + 3 * height / 5 - height / 20, y + 3 * height / 5, y + 3 * height / 5 + height / 20 };
+		g.drawPolygon(ptx1, pty1, 3);
+		g.fillPolygon(ptx1, pty1, 3);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
+	}
+
+	private void rotateLeft(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20,
+				x + width - width / 20, x + width / 20 };
+		int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + height, y + 3 * height / 5,
+				y + 3 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 6);
+		int[] ptx1 = { x + width / 2, x + width / 2 + width / 20, x + width / 2 };
+		int[] pty1 = { y + 3 * height / 5 - height / 20, y + 3 * height / 5, y + 3 * height / 5 + height / 20 };
+		g.drawPolygon(ptx1, pty1, 3);
+		g.fillPolygon(ptx1, pty1, 3);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
+
+	}
+
+	private void rotateLeftFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20,
+				x + width - width / 20, x + width / 20 };
+		int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y, y + 2 * height / 5, y + 2 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 6);
+		int[] ptx1 = { x + width / 2, x + width / 2 + width / 20, x + width / 2 };
+		int[] pty1 = { y + 2 * height / 5 - height / 20, y + 2 * height / 5, y + 2 * height / 5 + height / 20 };
+		g.drawPolygon(ptx1, pty1, 3);
+		g.fillPolygon(ptx1, pty1, 3);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_DE_CURRENT_SINK;
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNComponentCurrentSinkDE jde = new JDialogELNComponentCurrentSinkDE(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes scale=\"" + scale);
+		sb.append("\" position=\"" + position);
+		sb.append("\" fv_0_2=\"" + fv_0_2);
+		sb.append("\" fv_1_3=\"" + fv_1_3);
+		sb.append("\" fh_0_2=\"" + fh_0_2);
+		sb.append("\" fh_1_3=\"" + fh_1_3);
+		sb.append("\" first=\"" + first + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			double scale;
+			int position;
+			boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								scale = Double.parseDouble(elt.getAttribute("scale"));
+								position = Integer.parseInt(elt.getAttribute("position"));
+								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
+								first = Boolean.parseBoolean(elt.getAttribute("first"));
+								setScale(scale);
+								setPosition(position);
+								setFv_0_2(fv_0_2);
+								setFv_1_3(fv_1_3);
+								setFh_0_2(fh_0_2);
+								setFh_1_3(fh_1_3);
+								setFirst(first);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+		componentMenu.addSeparator();
+
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
+		rotateright.addActionListener(this);
+		componentMenu.add(rotateright);
+
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
+		rotateleft.addActionListener(this);
+		componentMenu.add(rotateleft);
+
+		componentMenu.addSeparator();
+
+		JMenuItem rotatevertically = new JMenuItem("Flip vertically");
+		rotatevertically.addActionListener(this);
+		componentMenu.add(rotatevertically);
+
+		JMenuItem rotatehorizontally = new JMenuItem("Flip horizontally");
+		rotatehorizontally.addActionListener(this);
+		componentMenu.add(rotatehorizontally);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
+			position++;
+			position %= 4;
+			first = false;
+		}
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
+			position = position + 3;
+			position %= 4;
+			first = false;
+		}
+		if (e.getActionCommand().equals("Flip vertically")) {
+			if (position == 0 || position == 2) {
+				if (fv_0_2 == false) {
+					fv_0_2 = true;
+				} else {
+					fv_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fv_1_3 == false) {
+					fv_1_3 = true;
+				} else {
+					fv_1_3 = false;
+				}
+			}
+		}
+		if (e.getActionCommand().equals("Flip horizontally")) {
+			if (position == 0 || position == 2) {
+				if (fh_0_2 == false) {
+					fh_0_2 = true;
+				} else {
+					fh_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fh_1_3 == false) {
+					fh_1_3 = true;
+				} else {
+					fh_1_3 = false;
+				}
+			}
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+
+	public double getScale() {
+		return scale;
+	}
+
+	public void setScale(double _scale) {
+		scale = _scale;
+	}
+
+	public int getPosition() {
+		return position;
+	}
+
+	public void setPosition(int _position) {
+		position = _position;
+	}
+
+	public boolean isFv_0_2() {
+		return fv_0_2;
+	}
+
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
+	}
+
+	public boolean isFv_1_3() {
+		return fv_1_3;
+	}
+
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
+	}
+
+	public boolean isFh_0_2() {
+		return fh_0_2;
+	}
+
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
+	}
+
+	public boolean isFh_1_3() {
+		return fh_1_3;
+	}
+
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
+	}
+
+	public boolean isFirst() {
+		return first;
+	}
+
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNModule)) {
+			resizeToFatherSize();
+
+			setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight());
+			setMoveCd(x, y);
+		}
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+}
diff --git a/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSourceDE.java b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSourceDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ca70f874c8fb686e8f2c040d71c6a6a03f15b35
--- /dev/null
+++ b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSourceDE.java
@@ -0,0 +1,1066 @@
+/* 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 ui.eln.sca_eln_sca_de;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.eln.*;
+import ui.window.JDialogELNComponentCurrentSourceDE;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.geom.RoundRectangle2D;
+
+/**
+ * Class ELNComponentCurrentSourceDE
+ * Current source driven by a TDF input signal signal to be used in ELN diagrams 
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNComponentCurrentSourceDE extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+
+	private double scale;
+
+	private int position = 0;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
+	private int old;
+	private boolean first;
+
+	public ELNComponentCurrentSourceDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(100, 100);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initPortTerminal(3);
+
+		addTGConnectingPointsComment();
+
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = false;
+		value = tdp.findELNComponentName("DE_ISource");
+
+		setScale(1.0);
+
+		old = width;
+		width = height;
+		height = old;
+	}
+
+	public void initPortTerminal(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p");
+		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "n");
+		connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "inp");
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+		MainGUI mgui = getTDiagramPanel().getMainGUI();
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+
+		if (position == 0) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sw2 = g.getFontMetrics().stringWidth("inp");
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int w = g.getFontMetrics().stringWidth(value);
+			g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateBottomFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateTopFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+		} else if (position == 1) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int h = g.getFontMetrics().getAscent();
+			g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateRightFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateLeftFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+		} else if (position == 2) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sw2 = g.getFontMetrics().stringWidth("inp");
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int w = g.getFontMetrics().stringWidth(value);
+			g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateTopFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateBottomFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+		} else if (position == 3) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int h = g.getFontMetrics().getAscent();
+			g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateLeftFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateRightFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+		}
+		g.setColor(c);
+		g.setFont(fold);
+	}
+
+	private void rotateTop(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height / 5 + height / 10, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 4);
+		int[] ptx1 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20, y + 4 * height / 5 - height / 10,
+				y + height - height / 20 };
+		g.drawPolygon(ptx1, pty1, 4);
+		g.drawOval(x + 2 * width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		g.drawLine(x + 2 * width / 5, y + height / 2, x + 4 * width / 5, y + height / 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5 + width / 10, y + height / 5 + height / 10,
+				x + 4 * width / 5 + width / 10, y + 4 * height / 5 - height / 10, true);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateTopFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height / 5 + height / 10, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 4);
+		int[] ptx1 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20, y + 4 * height / 5 - height / 10,
+				y + height - height / 20 };
+		g.drawPolygon(ptx1, pty1, 4);
+		g.drawOval(x + 2 * width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		g.drawLine(x + 2 * width / 5, y + height / 2, x + 4 * width / 5, y + height / 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5 + width / 10, y + 4 * height / 5 - height / 10,
+				x + 4 * width / 5 + width / 10, y + height / 5 + height / 10, true);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateBottom(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height / 5 + height / 10, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 4);
+		int[] ptx1 = { x, x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20, y + 4 * height / 5 - height / 10,
+				y + height - height / 20 };
+		g.drawPolygon(ptx1, pty1, 4);
+		g.drawOval(x + width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		g.drawLine(x + width / 5, y + height / 2, x + 3 * width / 5, y + height / 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 10, y + 4 * height / 5 - height / 10, x + width / 10,
+				y + height / 5 + height / 10, true);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2,
+				true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateBottomFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height / 5 + height / 10, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 4);
+		int[] ptx1 = { x, x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20, y + 4 * height / 5 - height / 10,
+				y + height - height / 20 };
+		g.drawPolygon(ptx1, pty1, 4);
+		g.drawOval(x + width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		g.drawLine(x + width / 5, y + height / 2, x + 3 * width / 5, y + height / 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 10, y + height / 5 + height / 10, x + width / 10,
+				y + 4 * height / 5 - height / 10, true);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2,
+				true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateRight(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + height / 5 + height / 10, x + width / 20 };
+		int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 4);
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20, x + 4 * width / 5 - width / 10,
+				x + width - width / 20 };
+		int[] pty1 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 };
+		g.drawPolygon(ptx1, pty1, 4);
+		g.drawOval(x + width / 2 - width / 5, y + 2 * height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		g.drawLine(x + width / 2, y + 2 * height / 5, x + width / 2, y + 4 * height / 5);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5 - width / 10, y + 4 * height / 5 + height / 10,
+				x + width / 5 + width / 10, y + 4 * height / 5 + height / 10, true);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
+	}
+
+	private void rotateRightFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + height / 5 + height / 10, x + width / 20 };
+		int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 4);
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20, x + 4 * width / 5 - width / 10,
+				x + width - width / 20 };
+		int[] pty1 = { y, y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 };
+		g.drawPolygon(ptx1, pty1, 4);
+		g.drawOval(x + width / 2 - width / 5, y + height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		g.drawLine(x + width / 2, y + height / 5, x + width / 2, y + 3 * height / 5);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5 - width / 10, y + height / 10,
+				x + width / 5 + width / 10, y + height / 10, true);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5,
+				true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateLeft(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + height / 5 + height / 10, x + width / 20 };
+		int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 4);
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20, x + 4 * width / 5 - width / 10,
+				x + width - width / 20 };
+		int[] pty1 = { y, y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 };
+		g.drawPolygon(ptx1, pty1, 4);
+		g.drawOval(x + width / 2 - width / 5, y + height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		g.drawLine(x + width / 2, y + height / 5, x + width / 2, y + 3 * height / 5);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5 + width / 10, y + height / 10,
+				x + 4 * width / 5 - width / 10, y + height / 10, true);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5,
+				true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateLeftFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + height / 5 + height / 10, x + width / 20 };
+		int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 4);
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20, x + 4 * width / 5 - width / 10,
+				x + width - width / 20 };
+		int[] pty1 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 };
+		g.drawPolygon(ptx1, pty1, 4);
+		g.drawOval(x + width / 2 - width / 5, y + 2 * height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		g.drawLine(x + width / 2, y + 2 * height / 5, x + width / 2, y + 4 * height / 5);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5 + width / 10, y + 4 * height / 5 + height / 10,
+				x + 4 * width / 5 - width / 10, y + 4 * height / 5 + height / 10, true);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_DE_CURRENT_SOURCE;
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNComponentCurrentSourceDE jde = new JDialogELNComponentCurrentSourceDE(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes scale=\"" + scale);
+		sb.append("\" position=\"" + position);
+		sb.append("\" fv_0_2=\"" + fv_0_2);
+		sb.append("\" fv_1_3=\"" + fv_1_3);
+		sb.append("\" fh_0_2=\"" + fh_0_2);
+		sb.append("\" fh_1_3=\"" + fh_1_3);
+		sb.append("\" first=\"" + first + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			double scale;
+			int position;
+			boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								scale = Double.parseDouble(elt.getAttribute("scale"));
+								position = Integer.parseInt(elt.getAttribute("position"));
+								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
+								first = Boolean.parseBoolean(elt.getAttribute("first"));
+								setScale(scale);
+								setPosition(position);
+								setFv_0_2(fv_0_2);
+								setFv_1_3(fv_1_3);
+								setFh_0_2(fh_0_2);
+								setFh_1_3(fh_1_3);
+								setFirst(first);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+		componentMenu.addSeparator();
+
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
+		rotateright.addActionListener(this);
+		componentMenu.add(rotateright);
+
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
+		rotateleft.addActionListener(this);
+		componentMenu.add(rotateleft);
+
+		componentMenu.addSeparator();
+
+		JMenuItem rotatevertically = new JMenuItem("Flip vertically");
+		rotatevertically.addActionListener(this);
+		componentMenu.add(rotatevertically);
+
+		JMenuItem rotatehorizontally = new JMenuItem("Flip horizontally");
+		rotatehorizontally.addActionListener(this);
+		componentMenu.add(rotatehorizontally);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
+			position++;
+			position %= 4;
+			first = false;
+		}
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
+			position = position + 3;
+			position %= 4;
+			first = false;
+		}
+		if (e.getActionCommand().equals("Flip vertically")) {
+			if (position == 0 || position == 2) {
+				if (fv_0_2 == false) {
+					fv_0_2 = true;
+				} else {
+					fv_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fv_1_3 == false) {
+					fv_1_3 = true;
+				} else {
+					fv_1_3 = false;
+				}
+			}
+		}
+		if (e.getActionCommand().equals("Flip horizontally")) {
+			if (position == 0 || position == 2) {
+				if (fh_0_2 == false) {
+					fh_0_2 = true;
+				} else {
+					fh_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fh_1_3 == false) {
+					fh_1_3 = true;
+				} else {
+					fh_1_3 = false;
+				}
+			}
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+
+	public double getScale() {
+		return scale;
+	}
+
+	public void setScale(double _scale) {
+		scale = _scale;
+	}
+
+	public int getPosition() {
+		return position;
+	}
+
+	public void setPosition(int _position) {
+		position = _position;
+	}
+
+	public boolean isFv_0_2() {
+		return fv_0_2;
+	}
+
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
+	}
+
+	public boolean isFv_1_3() {
+		return fv_1_3;
+	}
+
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
+	}
+
+	public boolean isFh_0_2() {
+		return fh_0_2;
+	}
+
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
+	}
+
+	public boolean isFh_1_3() {
+		return fh_1_3;
+	}
+
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
+	}
+
+	public boolean isFirst() {
+		return first;
+	}
+
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNModule)) {
+			resizeToFatherSize();
+
+			setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight());
+			setMoveCd(x, y);
+		}
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+}
diff --git a/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSinkDE.java b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSinkDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..c9ed65c513f3158017ee7e773b22d5bd76c51dc0
--- /dev/null
+++ b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSinkDE.java
@@ -0,0 +1,1127 @@
+/* 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 ui.eln.sca_eln_sca_de;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.eln.*;
+import ui.window.JDialogELNComponentVoltageSinkDE;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.geom.RoundRectangle2D;
+
+/**
+ * Class ELNComponentVoltageSinkDE
+ * Converts voltage to a TDF output signal to be used in ELN diagrams 
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNComponentVoltageSinkDE extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+
+	private double scale;
+
+	private int position = 0;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
+	private int old;
+	private boolean first;
+
+	public ELNComponentVoltageSinkDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(100, 100);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initPortTerminal(3);
+
+		addTGConnectingPointsComment();
+
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = false;
+		value = tdp.findELNComponentName("DE_VSink");
+
+		setScale(1.0);
+
+		old = width;
+		width = height;
+		height = old;
+	}
+
+	public void initPortTerminal(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p");
+		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "n");
+		connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "outp");
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+		MainGUI mgui = getTDiagramPanel().getMainGUI();
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+
+		if (position == 0) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sw2 = g.getFontMetrics().stringWidth("outp");
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int w = g.getFontMetrics().stringWidth(value);
+			g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateBottomFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateTopFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+		} else if (position == 1) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int h = g.getFontMetrics().getAscent();
+			g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateRightFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateLeftFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+		} else if (position == 2) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sw2 = g.getFontMetrics().stringWidth("outp");
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int w = g.getFontMetrics().stringWidth(value);
+			g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateTopFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateBottomFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+		} else if (position == 3) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int h = g.getFontMetrics().getAscent();
+			g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateLeftFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateRightFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+		}
+		g.setColor(c);
+		g.setFont(fold);
+	}
+
+	private void rotateTop(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x, x + 2 * width / 5 - width / 10 };
+		int[] pty0 = { y + height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 2);
+		int[] ptx1 = { x, x + 2 * width / 5 - width / 10 };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20 };
+		g.drawPolygon(ptx1, pty1, 2);
+		int[] ptx3 = { x + width / 5 - width / 20, x + width / 5, x + width / 5, x + width / 5, x + width / 5,
+				x + width / 5 + width / 20 };
+		int[] pty3 = { y + height / 10 + height / 20, y + height / 10 + height / 20, y + height / 10, y + height / 5,
+				y + height / 10 + height / 20, y + height / 10 + height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width / 5 - width / 20, x + width / 5 + width / 20 };
+		int[] pty4 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		int[] ptx5 = { x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 - width / 20,
+				x + 2 * width / 5 + width / 20, x + 2 * width / 5 };
+		int[] pty5 = { y + height / 20, y + height - height / 20, y + height - height / 10, y + height - height / 10,
+				y + height - height / 20 };
+		g.drawPolygon(ptx5, pty5, 5);
+		g.fillPolygon(ptx5, pty5, 5);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateTopFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x, x + 2 * width / 5 - width / 10 };
+		int[] pty0 = { y + height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 2);
+		int[] ptx1 = { x, x + 2 * width / 5 - width / 10 };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20 };
+		g.drawPolygon(ptx1, pty1, 2);
+		int[] ptx3 = { x + width / 5 - width / 20, x + width / 5, x + width / 5, x + width / 5, x + width / 5,
+				x + width / 5 + width / 20 };
+		int[] pty3 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20,
+				y + height - 2 * height / 10, y + height - height / 10, y + height - height / 10 - height / 20,
+				y + height - height / 10 - height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width / 5 - width / 20, x + width / 5 + width / 20 };
+		int[] pty4 = { y + height / 10 + height / 20, y + height / 10 + height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		int[] ptx5 = { x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 - width / 20,
+				x + 2 * width / 5 + width / 20, x + 2 * width / 5 };
+		int[] pty5 = { y + height - height / 20, y + height / 20, y + height / 10, y + height / 10, y + height / 20 };
+		g.drawPolygon(ptx5, pty5, 5);
+		g.fillPolygon(ptx5, pty5, 5);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateBottom(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width, x + 3 * width / 5 + width / 10 };
+		int[] pty0 = { y + height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 2);
+		int[] ptx1 = { x + height, x + 3 * width / 5 + width / 10 };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20 };
+		g.drawPolygon(ptx1, pty1, 2);
+		int[] ptx3 = { x + 4 * width / 5 - width / 20, x + 4 * width / 5, x + 4 * width / 5, x + 4 * width / 5,
+				x + 4 * width / 5, x + 4 * width / 5 + width / 20 };
+		int[] pty3 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20,
+				y + height - 2 * height / 10, y + height - height / 10, y + height - height / 10 - height / 20,
+				y + height - height / 10 - height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + 4 * width / 5 - width / 20, x + 4 * width / 5 + width / 20 };
+		int[] pty4 = { y + height / 10 + height / 20, y + height / 10 + height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		int[] ptx5 = { x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 + width / 20,
+				x + 3 * width / 5 - width / 20, x + 3 * width / 5 };
+		int[] pty5 = { y + height - height / 20, y + height / 20, y + height / 10, y + height / 10, y + height / 20 };
+		g.drawPolygon(ptx5, pty5, 5);
+		g.fillPolygon(ptx5, pty5, 5);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateBottomFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width, x + 3 * width / 5 + width / 10 };
+		int[] pty0 = { y + height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 2);
+		int[] ptx1 = { x + height, x + 3 * width / 5 + width / 10 };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20 };
+		g.drawPolygon(ptx1, pty1, 2);
+		int[] ptx3 = { x + 4 * width / 5 - width / 20, x + 4 * width / 5, x + 4 * width / 5, x + 4 * width / 5,
+				x + 4 * width / 5, x + 4 * width / 5 + width / 20 };
+		int[] pty3 = { y + height / 10 + height / 20, y + height / 10 + height / 20, y + height / 10, y + height / 5,
+				y + height / 10 + height / 20, y + height / 10 + height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + 4 * width / 5 - width / 20, x + 4 * width / 5 + width / 20 };
+		int[] pty4 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		int[] ptx5 = { x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 + width / 20,
+				x + 3 * width / 5 - width / 20, x + 3 * width / 5 };
+		int[] pty5 = { y + height / 20, y + height - height / 20, y + height - height / 10, y + height - height / 10,
+				y + height - height / 20 };
+		g.drawPolygon(ptx5, pty5, 5);
+		g.fillPolygon(ptx5, pty5, 5);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateRight(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20 };
+		int[] pty0 = { y, y + 2 * height / 5 - height / 10 };
+		g.drawPolygon(ptx0, pty0, 2);
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20 };
+		int[] pty1 = { y, y + 2 * height / 5 - height / 10 };
+		g.drawPolygon(ptx1, pty1, 2);
+		int[] ptx3 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20,
+				x + width - width / 10 - width / 10, x + width - width / 10, x + width - width / 10 - width / 20,
+				x + width - width / 10 - width / 20 };
+		int[] pty3 = { y + height / 5 - height / 20, y + height / 5, y + height / 5, y + height / 5, y + height / 5,
+				y + height / 5 + height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width / 10 + width / 20, x + width / 10 + width / 20 };
+		int[] pty4 = { y + height / 5 - height / 20, y + height / 5 + height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		int[] ptx5 = { x + width - width / 20, x + width / 20, x + width / 10, x + width / 10, x + width / 20 };
+		int[] pty5 = { y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 - height / 20,
+				y + 2 * height / 5 + height / 20, y + 2 * height / 5 };
+		g.drawPolygon(ptx5, pty5, 5);
+		g.fillPolygon(ptx5, pty5, 5);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateRightFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20 };
+		int[] pty0 = { y + height, y + 3 * height / 5 + height / 10 };
+		g.drawPolygon(ptx0, pty0, 2);
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20 };
+		int[] pty1 = { y + height, y + 3 * height / 5 + height / 10 };
+		g.drawPolygon(ptx1, pty1, 2);
+		int[] ptx3 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20,
+				x + width - width / 10 - width / 10, x + width - width / 10, x + width - width / 10 - width / 20,
+				x + width - width / 10 - width / 20 };
+		int[] pty3 = { y + 4 * height / 5 - height / 20, y + 4 * height / 5, y + 4 * height / 5, y + 4 * height / 5,
+				y + 4 * height / 5, y + 4 * height / 5 + height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width / 10 + width / 20, x + width / 10 + width / 20 };
+		int[] pty4 = { y + 4 * height / 5 - height / 20, y + 4 * height / 5 + height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		int[] ptx5 = { x + width - width / 20, x + width / 20, x + width / 10, x + width / 10, x + width / 20 };
+		int[] pty5 = { y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 + height / 20,
+				y + 3 * height / 5 - height / 20, y + 3 * height / 5 };
+		g.drawPolygon(ptx5, pty5, 5);
+		g.fillPolygon(ptx5, pty5, 5);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
+	}
+
+	private void rotateLeft(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20 };
+		int[] pty0 = { y + height, y + 3 * height / 5 + height / 10 };
+		g.drawPolygon(ptx0, pty0, 2);
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20 };
+		int[] pty1 = { y + height, y + 3 * height / 5 + height / 10 };
+		g.drawPolygon(ptx1, pty1, 2);
+		int[] ptx3 = { x + width / 10 + width / 20, x + width / 10 + width / 20, x + width / 10, x + width / 5,
+				x + width / 10 + width / 20, x + width / 10 + width / 20 };
+		int[] pty3 = { y + 4 * height / 5 - height / 20, y + 4 * height / 5, y + 4 * height / 5, y + 4 * height / 5,
+				y + 4 * height / 5, y + 4 * height / 5 + height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20 };
+		int[] pty4 = { y + 4 * height / 5 - height / 20, y + 4 * height / 5 + height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		int[] ptx5 = { x + width / 20, x + width - width / 20, x + width - width / 10, x + width - width / 10,
+				x + width - width / 20 };
+		int[] pty5 = { y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 + height / 20,
+				y + 3 * height / 5 - height / 20, y + 3 * height / 5 };
+		g.drawPolygon(ptx5, pty5, 5);
+		g.fillPolygon(ptx5, pty5, 5);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
+	}
+
+	private void rotateLeftFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20 };
+		int[] pty0 = { y, y + 2 * height / 5 - height / 10 };
+		g.drawPolygon(ptx0, pty0, 2);
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20 };
+		int[] pty1 = { y, y + 2 * height / 5 - height / 10 };
+		g.drawPolygon(ptx1, pty1, 2);
+		int[] ptx3 = { x + width / 10 + width / 20, x + width / 10 + width / 20, x + width / 10, x + width / 5,
+				x + width / 10 + width / 20, x + width / 10 + width / 20 };
+		int[] pty3 = { y + height / 5 - height / 20, y + height / 5, y + height / 5, y + height / 5, y + height / 5,
+				y + height / 5 + height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20 };
+		int[] pty4 = { y + height / 5 - height / 20, y + height / 5 + height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		int[] ptx5 = { x + width / 20, x + width - width / 20, x + width - width / 10, x + width - width / 10,
+				x + width - width / 20 };
+		int[] pty5 = { y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 - height / 20,
+				y + 2 * height / 5 + height / 20, y + 2 * height / 5 };
+		g.drawPolygon(ptx5, pty5, 5);
+		g.fillPolygon(ptx5, pty5, 5);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_DE_VOLTAGE_SINK;
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNComponentVoltageSinkDE jde = new JDialogELNComponentVoltageSinkDE(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes scale=\"" + scale);
+		sb.append("\" position=\"" + position);
+		sb.append("\" fv_0_2=\"" + fv_0_2);
+		sb.append("\" fv_1_3=\"" + fv_1_3);
+		sb.append("\" fh_0_2=\"" + fh_0_2);
+		sb.append("\" fh_1_3=\"" + fh_1_3);
+		sb.append("\" first=\"" + first + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			double scale;
+			int position;
+			boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								scale = Double.parseDouble(elt.getAttribute("scale"));
+								position = Integer.parseInt(elt.getAttribute("position"));
+								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
+								first = Boolean.parseBoolean(elt.getAttribute("first"));
+								setScale(scale);
+								setPosition(position);
+								setFv_0_2(fv_0_2);
+								setFv_1_3(fv_1_3);
+								setFh_0_2(fh_0_2);
+								setFh_1_3(fh_1_3);
+								setFirst(first);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+		componentMenu.addSeparator();
+
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
+		rotateright.addActionListener(this);
+		componentMenu.add(rotateright);
+
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
+		rotateleft.addActionListener(this);
+		componentMenu.add(rotateleft);
+
+		componentMenu.addSeparator();
+
+		JMenuItem rotatevertically = new JMenuItem("Flip vertically");
+		rotatevertically.addActionListener(this);
+		componentMenu.add(rotatevertically);
+
+		JMenuItem rotatehorizontally = new JMenuItem("Flip horizontally");
+		rotatehorizontally.addActionListener(this);
+		componentMenu.add(rotatehorizontally);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
+			position++;
+			position %= 4;
+			first = false;
+		}
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
+			position = position + 3;
+			position %= 4;
+			first = false;
+		}
+		if (e.getActionCommand().equals("Flip vertically")) {
+			if (position == 0 || position == 2) {
+				if (fv_0_2 == false) {
+					fv_0_2 = true;
+				} else {
+					fv_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fv_1_3 == false) {
+					fv_1_3 = true;
+				} else {
+					fv_1_3 = false;
+				}
+			}
+		}
+		if (e.getActionCommand().equals("Flip horizontally")) {
+			if (position == 0 || position == 2) {
+				if (fh_0_2 == false) {
+					fh_0_2 = true;
+				} else {
+					fh_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fh_1_3 == false) {
+					fh_1_3 = true;
+				} else {
+					fh_1_3 = false;
+				}
+			}
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+
+	public double getScale() {
+		return scale;
+	}
+
+	public void setScale(double _scale) {
+		scale = _scale;
+	}
+
+	public int getPosition() {
+		return position;
+	}
+
+	public void setPosition(int _position) {
+		position = _position;
+	}
+
+	public boolean isFv_0_2() {
+		return fv_0_2;
+	}
+
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
+	}
+
+	public boolean isFv_1_3() {
+		return fv_1_3;
+	}
+
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
+	}
+
+	public boolean isFh_0_2() {
+		return fh_0_2;
+	}
+
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
+	}
+
+	public boolean isFh_1_3() {
+		return fh_1_3;
+	}
+
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
+	}
+
+	public boolean isFirst() {
+		return first;
+	}
+
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNModule)) {
+			resizeToFatherSize();
+
+			setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight());
+			setMoveCd(x, y);
+		}
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+}
diff --git a/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSourceDE.java b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSourceDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..606e965e38a915e7cee1e59a9530c0f949c2f6f2
--- /dev/null
+++ b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSourceDE.java
@@ -0,0 +1,1098 @@
+/* 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 ui.eln.sca_eln_sca_de;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.eln.*;
+import ui.window.JDialogELNComponentVoltageSourceDE;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.geom.RoundRectangle2D;
+
+/**
+ * Class ELNComponentVoltageSourceDE
+ * Voltage source driven by a TDF input signal to be used in ELN diagrams 
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNComponentVoltageSourceDE extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+
+	private double scale;
+
+	private int position = 0;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
+	private int old;
+	private boolean first;
+
+	public ELNComponentVoltageSourceDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(100, 100);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initPortTerminal(3);
+
+		addTGConnectingPointsComment();
+
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = false;
+		value = tdp.findELNComponentName("DE_VSource");
+
+		setScale(1.0);
+
+		old = width;
+		width = height;
+		height = old;
+	}
+
+	public void initPortTerminal(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p");
+		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "n");
+		connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "inp");
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+		MainGUI mgui = getTDiagramPanel().getMainGUI();
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+
+		if (position == 0) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sw2 = g.getFontMetrics().stringWidth("inp");
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int w = g.getFontMetrics().stringWidth(value);
+			g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateBottomFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateTopFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+		} else if (position == 1) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int h = g.getFontMetrics().getAscent();
+			g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateRightFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateLeftFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+		} else if (position == 2) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sw2 = g.getFontMetrics().stringWidth("inp");
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int w = g.getFontMetrics().stringWidth(value);
+			g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateTopFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
+							y + height + height / 20 + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateBottomFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.5);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
+							y + height + height / 20 + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2,
+							y + height / 2 + height / 10 + height / 20 + sh2);
+				}
+			}
+		} else if (position == 3) {
+			if (first == false) {
+				first = true;
+				old = width;
+				width = height;
+				height = old;
+				resizeWithFather();
+			}
+
+			int attributeFontSize = this.currentFontSize * 5 / 6;
+			int sw0 = g.getFontMetrics().stringWidth("p");
+			int sh0 = g.getFontMetrics().getAscent();
+			int sw1 = g.getFontMetrics().stringWidth("n");
+			int sh1 = g.getFontMetrics().getAscent();
+			int sh2 = g.getFontMetrics().getAscent();
+			g.setFont(f.deriveFont((float) attributeFontSize));
+			g.setFont(f);
+			g.setFont(f.deriveFont(Font.BOLD));
+			int h = g.getFontMetrics().getAscent();
+			g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2);
+			g.setFont(f.deriveFont(Font.PLAIN));
+
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				rotateLeftFlip(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateRightFlip(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20,
+							y + height + sh2);
+				}
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+				((ELNConnectingPoint) connectingPoint[2]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
+				if (mgui.getHidden() == false) {
+					g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1,
+							y + height + sh1);
+					g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16,
+							y + height + sh0);
+					g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y);
+				}
+			}
+		}
+		g.setColor(c);
+		g.setFont(fold);
+	}
+
+	private void rotateTop(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + width, x + 3 * width / 5,
+				x + 3 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20,
+				y + height - height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 6);
+		g.drawOval(x + 2 * width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		int[] ptx1 = { x + 3 * width / 5 + width / 20, x + 3 * width / 5 + width / 10, x + 3 * width / 5 + width / 10,
+				x + 3 * width / 5 + width / 10, x + 3 * width / 5 + width / 10,
+				x + 3 * width / 5 + width / 10 + width / 20 };
+		int[] pty1 = { y + height / 10 + height / 20, y + height / 10 + height / 20, y + height / 10,
+				y + height / 10 + height / 10, y + height / 10 + height / 20, y + height / 10 + height / 20 };
+		g.drawPolygon(ptx1, pty1, 6);
+		int[] ptx2 = { x + 3 * width / 5 + width / 20, x + 3 * width / 5 + width / 10 + width / 20 };
+		int[] pty2 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20 };
+		g.drawPolygon(ptx2, pty2, 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateTopFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + width, x + 3 * width / 5,
+				x + 3 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20,
+				y + height - height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 6);
+		g.drawOval(x + 2 * width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		int[] ptx1 = { x + 3 * width / 5 + width / 20, x + 3 * width / 5 + width / 10, x + 3 * width / 5 + width / 10,
+				x + 3 * width / 5 + width / 10, x + 3 * width / 5 + width / 10,
+				x + 3 * width / 5 + width / 10 + width / 20 };
+		int[] pty1 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20,
+				y + height - 2 * height / 10, y + height - height / 10, y + height - height / 10 - height / 20,
+				y + height - height / 10 - height / 20 };
+		g.drawPolygon(ptx1, pty1, 6);
+		int[] ptx2 = { x + 3 * width / 5 + width / 20, x + 3 * width / 5 + width / 10 + width / 20 };
+		int[] pty2 = { y + height / 10 + height / 20, y + height / 10 + height / 20 };
+		g.drawPolygon(ptx2, pty2, 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateBottom(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x, x + 2 * width / 5, x + 2 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20,
+				y + height - height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 6);
+		g.drawOval(x + width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		int[] ptx3 = { x + 2 * width / 5 - width / 10 - width / 20, x + 2 * width / 5 - width / 10,
+				x + 2 * width / 5 - width / 10, x + 2 * width / 5 - width / 10, x + 2 * width / 5 - width / 10,
+				x + 2 * width / 5 - width / 20 };
+		int[] pty3 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20,
+				y + height - 2 * height / 10, y + height - height / 10, y + height - height / 10 - height / 20,
+				y + height - height / 10 - height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + 2 * width / 5 - width / 10 - width / 20, x + 2 * width / 5 - width / 20 };
+		int[] pty4 = { y + height / 10 + height / 20, y + height / 10 + height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2,
+				true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateBottomFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x, x + 2 * width / 5, x + 2 * width / 5 };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20,
+				y + height - height / 20, y + height / 20 };
+		g.drawPolygon(ptx0, pty0, 6);
+		g.drawOval(x + width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		int[] ptx3 = { x + 2 * width / 5 - width / 10 - width / 20, x + 2 * width / 5 - width / 10,
+				x + 2 * width / 5 - width / 10, x + 2 * width / 5 - width / 10, x + 2 * width / 5 - width / 10,
+				x + 2 * width / 5 - width / 20 };
+		int[] pty3 = { y + height / 10 + height / 20, y + height / 10 + height / 20, y + height / 10, y + height / 5,
+				y + height / 10 + height / 20, y + height / 10 + height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + 2 * width / 5 - width / 10 - width / 20, x + 2 * width / 5 - width / 20 };
+		int[] pty4 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2,
+				true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20,
+				height + height / 10, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateRight(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20,
+				x + width - width / 20, x + width / 20 };
+		int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + height, y + 3 * height / 5,
+				y + 3 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 6);
+		g.drawOval(x + width / 2 - width / 5, y + 2 * height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		int[] ptx3 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20,
+				x + width - width / 10 - width / 10, x + width - width / 10, x + width - width / 10 - width / 20,
+				x + width - width / 10 - width / 20 };
+		int[] pty3 = { y + 3 * height / 5 + height / 20, y + 3 * height / 5 + height / 10,
+				y + 3 * height / 5 + height / 10, y + 3 * height / 5 + height / 10, y + 3 * height / 5 + height / 10,
+				y + 3 * height / 5 + height / 10 + height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width / 10 + width / 20, x + width / 10 + width / 20 };
+		int[] pty4 = { y + 3 * height / 5 + height / 20, y + 3 * height / 5 + height / 10 + height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
+	}
+
+	private void rotateRightFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20,
+				x + width - width / 20, x + width / 20 };
+		int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y, y + 2 * height / 5, y + 2 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 6);
+		g.drawOval(x + width / 2 - width / 5, y + height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		int[] ptx3 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20,
+				x + width - width / 10 - width / 10, x + width - width / 10, x + width - width / 10 - width / 20,
+				x + width - width / 10 - width / 20 };
+		int[] pty3 = { y + 2 * height / 5 - height / 10 - height / 20, y + 2 * height / 5 - height / 10,
+				y + 2 * height / 5 - height / 10, y + 2 * height / 5 - height / 10, y + 2 * height / 5 - height / 10,
+				y + 2 * height / 5 - height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width / 10 + width / 20, x + width / 10 + width / 20 };
+		int[] pty4 = { y + 2 * height / 5 - height / 20, y + 2 * height / 5 - height / 10 - height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5,
+				true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateLeft(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20,
+				x + width - width / 20, x + width / 20 };
+		int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y, y + 2 * height / 5, y + 2 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 6);
+		g.drawOval(x + width / 2 - width / 5, y + height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		int[] ptx3 = { x + width / 10 + width / 20, x + width / 10 + width / 20, x + width / 10,
+				x + width / 10 + width / 10, x + width / 10 + width / 20, x + width / 10 + width / 20 };
+		int[] pty3 = { y + 2 * height / 5 - height / 10 - height / 20, y + 2 * height / 5 - height / 10,
+				y + 2 * height / 5 - height / 10, y + 2 * height / 5 - height / 10, y + 2 * height / 5 - height / 10,
+				y + 2 * height / 5 - height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20 };
+		int[] pty4 = { y + 2 * height / 5 - height / 20, y + 2 * height / 5 - height / 10 - height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5,
+				true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+	}
+
+	private void rotateLeftFlip(Graphics g) {
+		Color c = g.getColor();
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20,
+				x + width - width / 20, x + width / 20 };
+		int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + height, y + 3 * height / 5,
+				y + 3 * height / 5 };
+		g.drawPolygon(ptx0, pty0, 6);
+		g.drawOval(x + width / 2 - width / 5, y + 2 * height / 5, width / 5 + width / 5, height / 5 + height / 5);
+		int[] ptx3 = { x + width / 10 + width / 20, x + width / 10 + width / 20, x + width / 10,
+				x + width / 10 + width / 10, x + width / 10 + width / 20, x + width / 10 + width / 20 };
+		int[] pty3 = { y + 3 * height / 5 + height / 20, y + 3 * height / 5 + height / 10,
+				y + 3 * height / 5 + height / 10, y + 3 * height / 5 + height / 10, y + 3 * height / 5 + height / 10,
+				y + 3 * height / 5 + height / 10 + height / 20 };
+		g.drawPolygon(ptx3, pty3, 6);
+		int[] ptx4 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20 };
+		int[] pty4 = { y + 3 * height / 5 + height / 20, y + 3 * height / 5 + height / 10 + height / 20 };
+		g.drawPolygon(ptx4, pty4, 2);
+		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true);
+
+		Graphics2D g2d = (Graphics2D) g.create();
+		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
+		g2d.setStroke(dashed);
+		g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10,
+				4 * height / 5 + height / 10 - height / 20, 10, 10));
+		g2d.dispose();
+
+		g.drawOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(Color.WHITE);
+		g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10);
+		g.setColor(c);
+		
+		g.setColor(Color.WHITE);
+		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.setColor(c);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_DE_VOLTAGE_SOURCE;
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNComponentVoltageSourceDE jde = new JDialogELNComponentVoltageSourceDE(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes scale=\"" + scale);
+		sb.append("\" position=\"" + position);
+		sb.append("\" fv_0_2=\"" + fv_0_2);
+		sb.append("\" fv_1_3=\"" + fv_1_3);
+		sb.append("\" fh_0_2=\"" + fh_0_2);
+		sb.append("\" fh_1_3=\"" + fh_1_3);
+		sb.append("\" first=\"" + first + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			double scale;
+			int position;
+			boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								scale = Double.parseDouble(elt.getAttribute("scale"));
+								position = Integer.parseInt(elt.getAttribute("position"));
+								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
+								first = Boolean.parseBoolean(elt.getAttribute("first"));
+								setScale(scale);
+								setPosition(position);
+								setFv_0_2(fv_0_2);
+								setFv_1_3(fv_1_3);
+								setFh_0_2(fh_0_2);
+								setFh_1_3(fh_1_3);
+								setFirst(first);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+		componentMenu.addSeparator();
+
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
+		rotateright.addActionListener(this);
+		componentMenu.add(rotateright);
+
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
+		rotateleft.addActionListener(this);
+		componentMenu.add(rotateleft);
+
+		componentMenu.addSeparator();
+
+		JMenuItem rotatevertically = new JMenuItem("Flip vertically");
+		rotatevertically.addActionListener(this);
+		componentMenu.add(rotatevertically);
+
+		JMenuItem rotatehorizontally = new JMenuItem("Flip horizontally");
+		rotatehorizontally.addActionListener(this);
+		componentMenu.add(rotatehorizontally);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
+			position++;
+			position %= 4;
+			first = false;
+		}
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
+			position = position + 3;
+			position %= 4;
+			first = false;
+		}
+		if (e.getActionCommand().equals("Flip vertically")) {
+			if (position == 0 || position == 2) {
+				if (fv_0_2 == false) {
+					fv_0_2 = true;
+				} else {
+					fv_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fv_1_3 == false) {
+					fv_1_3 = true;
+				} else {
+					fv_1_3 = false;
+				}
+			}
+		}
+		if (e.getActionCommand().equals("Flip horizontally")) {
+			if (position == 0 || position == 2) {
+				if (fh_0_2 == false) {
+					fh_0_2 = true;
+				} else {
+					fh_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fh_1_3 == false) {
+					fh_1_3 = true;
+				} else {
+					fh_1_3 = false;
+				}
+			}
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+
+	public double getScale() {
+		return scale;
+	}
+
+	public void setScale(double _scale) {
+		scale = _scale;
+	}
+
+	public int getPosition() {
+		return position;
+	}
+
+	public void setPosition(int _position) {
+		position = _position;
+	}
+
+	public boolean isFv_0_2() {
+		return fv_0_2;
+	}
+
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
+	}
+
+	public boolean isFv_1_3() {
+		return fv_1_3;
+	}
+
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
+	}
+
+	public boolean isFh_0_2() {
+		return fh_0_2;
+	}
+
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
+	}
+
+	public boolean isFh_1_3() {
+		return fh_1_3;
+	}
+
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
+	}
+
+	public boolean isFirst() {
+		return first;
+	}
+
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNModule)) {
+			resizeToFatherSize();
+
+			setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight());
+			setMoveCd(x, y);
+		}
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+}
diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java
index 65b6ae4b57331bb0be97d3adc1726f9da3c36585..db305e44b99cfcf71278eb3f625ee3bb9eee5407 100644
--- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java
+++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java
@@ -59,7 +59,7 @@ import java.awt.geom.RoundRectangle2D;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -554,6 +554,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx1, pty1, 3);
 		g.fillPolygon(ptx1, pty1, 3);
 		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -583,6 +584,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx1, pty1, 3);
 		g.fillPolygon(ptx1, pty1, 3);
 		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -613,6 +615,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx1, pty1, 3);
 		g.fillPolygon(ptx1, pty1, 3);
 		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -643,6 +646,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx1, pty1, 3);
 		g.fillPolygon(ptx1, pty1, 3);
 		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -672,6 +676,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx1, pty1, 3);
 		g.fillPolygon(ptx1, pty1, 3);
 		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -702,6 +707,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx1, pty1, 3);
 		g.fillPolygon(ptx1, pty1, 3);
 		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -732,6 +738,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx1, pty1, 3);
 		g.fillPolygon(ptx1, pty1, 3);
 		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -761,6 +768,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx1, pty1, 3);
 		g.fillPolygon(ptx1, pty1, 3);
 		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSourceTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSourceTDF.java
index 8279eeefc90925b8a536ad6b22a8ca922d012847..ab21fbe7552639ef278e5af847691e2fda99cffb 100644
--- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSourceTDF.java
+++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSourceTDF.java
@@ -60,7 +60,7 @@ import java.awt.geom.RoundRectangle2D;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -559,6 +559,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone
 				x + 4 * width / 5 + width / 10, y + 4 * height / 5 - height / 10, true);
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true);
 		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -592,6 +593,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone
 				x + 4 * width / 5 + width / 10, y + height / 5 + height / 10, true);
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true);
 		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -626,6 +628,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2,
 				true);
 		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -660,6 +663,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2,
 				true);
 		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -693,6 +697,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone
 				x + width / 5 + width / 10, y + 4 * height / 5 + height / 10, true);
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true);
 		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -727,6 +732,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5,
 				true);
 		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -761,6 +767,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5,
 				true);
 		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -794,6 +801,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone
 				x + 4 * width / 5 - width / 10, y + 4 * height / 5 + height / 10, true);
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true);
 		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java
index 5868c2fab8269ba89fce0f8767c5d0dba4be3289..4184fba141fede5205a6987aa4abed96f4f6b13a 100644
--- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java
+++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java
@@ -60,7 +60,7 @@ import java.awt.geom.RoundRectangle2D;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -567,6 +567,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx5, pty5, 5);
 		g.fillPolygon(ptx5, pty5, 5);
 		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -608,6 +609,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx5, pty5, 5);
 		g.fillPolygon(ptx5, pty5, 5);
 		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -649,6 +651,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx5, pty5, 5);
 		g.fillPolygon(ptx5, pty5, 5);
 		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -690,6 +693,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx5, pty5, 5);
 		g.fillPolygon(ptx5, pty5, 5);
 		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -731,6 +735,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx5, pty5, 5);
 		g.fillPolygon(ptx5, pty5, 5);
 		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -772,6 +777,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx5, pty5, 5);
 		g.fillPolygon(ptx5, pty5, 5);
 		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -813,6 +819,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx5, pty5, 5);
 		g.fillPolygon(ptx5, pty5, 5);
 		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -854,6 +861,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		g.drawPolygon(ptx5, pty5, 5);
 		g.fillPolygon(ptx5, pty5, 5);
 		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSourceTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSourceTDF.java
index 9a8fa2733bc0861affe318b4cf57e1406169fa65..cb5b97b8b0a0b9db56f34e940203a5256c7ff3b2 100644
--- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSourceTDF.java
+++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSourceTDF.java
@@ -60,7 +60,7 @@ import java.awt.geom.RoundRectangle2D;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent {
+public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -563,6 +563,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone
 		g.drawPolygon(ptx2, pty2, 2);
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true);
 		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -601,6 +602,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone
 		g.drawPolygon(ptx2, pty2, 2);
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true);
 		g.fillRect(x, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -639,6 +641,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2,
 				true);
 		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -676,6 +679,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2,
 				true);
 		g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -714,6 +718,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone
 		g.drawPolygon(ptx4, pty4, 2);
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true);
 		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -751,6 +756,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone
 		g.drawPolygon(ptx4, pty4, 2);
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5,
 				true);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
 		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
@@ -789,6 +795,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5,
 				true);
 		g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
@@ -826,6 +833,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone
 		g.drawPolygon(ptx4, pty4, 2);
 		GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true);
 		g.fillRect(x + 2 * width / 5, y, width / 5, height / 5);
+		g.drawRect(x + 2 * width / 5, y, width / 5, height / 5);
 
 		Graphics2D g2d = (Graphics2D) g.create();
 		Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0);
diff --git a/src/main/java/ui/ftd/FTDFault.java b/src/main/java/ui/ftd/FTDFault.java
index e14ba3352c50b5d268175d7a2998aa1a24393dff..f4862392ae7491656f6c2fe9e1914f8feb1ce1d6 100644
--- a/src/main/java/ui/ftd/FTDFault.java
+++ b/src/main/java/ui/ftd/FTDFault.java
@@ -36,12 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ftd;
 
-
 import myutil.GraphicLib;
 import myutil.TraceManager;
 import org.w3c.dom.Element;
@@ -54,11 +50,6 @@ import ui.window.JDialogFault;
 import javax.swing.*;
 import java.awt.*;
 
-
-//import org.w3c.dom.*;
-//import org.xml.sax.*;
-//import javax.xml.parsers.*;
-
 /**
  * Class FTDFault
  * Panel used for drawing fault trees
@@ -67,7 +58,7 @@ import java.awt.*;
  * @author Ludovic APVRILLE
  */
 
-public class FTDFault extends TGCScalableWithInternalComponent implements SwallowedTGComponent, WithAttributes, CheckableAccessibility, CanBeDisabled {
+public class FTDFault extends TGCScalableWithInternalComponent implements SwallowedTGComponent, WithAttributes, CheckableAccessibility/*, Issue #69 CanBeDisabled*/ {
     public static double DEFAULT_PROBABILITY = 0.5;
 
     private int textY1 = 3;
@@ -139,6 +130,7 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
         myImageIcon = IconManager.imgic702;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         String ster;
         if (isRootFault) {
@@ -183,7 +175,11 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
                 g.setColor(ColorManager.FTD_FAULT);
             }
         } else {
-            g.setColor(ColorManager.FTD_FAULT_DISABLED);
+    		// Issue #69: Disabled color now managed in TGComponent / ColorManager
+	    	// For filled shapes ensure background color is white so that text is
+	    	// readable
+	    	g.setColor( ColorManager.DISABLED_FILLING );
+            //g.setColor(ColorManager.FTD_FAULT_DISABLED);
         }
 
         g.fill3DRect(x+1, y+1, width-1, height-1, true);
@@ -234,25 +230,22 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
                 }
             }
 
-            if (!isEnabled()) {
-                String val = "disabled";
-                w = g.getFontMetrics().stringWidth(val);
-                //int h =  currentFontSize + (int)(textY1 * tdp.getZoom());
-                g.setFont(f.deriveFont(Font.ITALIC));
-                g.drawString(val, x + (width - w - 5), y + height - 2);
-            }
-
-
-
+            // Issue #69
+//            if (!isEnabled()) {
+//                String val = "disabled";
+//                w = g.getFontMetrics().stringWidth(val);
+//                //int h =  currentFontSize + (int)(textY1 * tdp.getZoom());
+//                g.setFont(f.deriveFont(Font.ITALIC));
+//                g.drawString(val, x + (width - w - 5), y + height - 2);
+//            }
         } else {
             TraceManager.addDev("-------------------------------------------------- Cannot display text of attack");
         }
 
         g.setFont(fold);
-
     }
 
-    public void setValue(String val, Graphics g) {
+    private void setValue(String val, Graphics g) {
         oldValue = value;
         String ster;
         if (isRootFault) {
@@ -278,12 +271,10 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
             resizeWithFather();
         }
 
-
         g.setFont(f0);
-
-        //
     }
 
+    @Override
     public void resizeWithFather() {
         if ((father != null) && (father instanceof FTDBlock)) {
             //
@@ -293,7 +284,7 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
         }
     }
 
-
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String tmp;
         boolean error = false;
@@ -328,8 +319,6 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
             probability = new Double(dialog.getProbability()).doubleValue();
         }
 
-
-
         isRootFault = dialog.isRootFault();
 
         if (error) {
@@ -342,18 +331,20 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
         return !error;
     }
 
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
-
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
         }
         return null;
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.FTD_FAULT;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<info description=\"" + description);
@@ -361,14 +352,13 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
         sb.append("\" probability=\"" + probability);
         sb.append("\" />\n");
         sb.append("</extraparam>\n");
+
         return new String(sb);
     }
 
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
-        //
         try {
-
             NodeList nli;
             Node n1, n2;
             Element elt;
@@ -418,11 +408,10 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
     }
 
-
     public double getProbability() {
         return probability;
     }
@@ -445,7 +434,6 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
         return s;
     }
 
-
     public boolean isRootFault() {
         return isRootFault;
     }
@@ -456,6 +444,13 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo
         setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
 
     }
-
-
+    
+    /**
+     * Issue #69
+     * @return
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	return true;
+    }
 }
diff --git a/src/main/java/ui/ncdd/NCDiagramPanel.java b/src/main/java/ui/ncdd/NCDiagramPanel.java
index 87f1f197fcf1e938392137896550f04341f55a66..19a5228ee27f6be872053612dab0b551aac9f27f 100755
--- a/src/main/java/ui/ncdd/NCDiagramPanel.java
+++ b/src/main/java/ui/ncdd/NCDiagramPanel.java
@@ -36,20 +36,22 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ncdd;
 
-
-import org.w3c.dom.Element;
-import ui.*;
-
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.ListIterator;
 
+import org.w3c.dom.Element;
+
+import ui.MainGUI;
+import ui.TDPWithAttributes;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGConnectingPoint;
+import ui.TToolBar;
+
 /**
  * Class NCDiagramPanel
  * Panel for drawing an NC diagram
@@ -66,6 +68,7 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
         addMouseMotionListener(tdmm);*/
 	}
 
+	@Override
 	public boolean actionOnDoubleClick(TGComponent tgc) {
 		//
         /*if (tgc instanceof TCDTClass) {
@@ -86,6 +89,7 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return false;
 	}
 
+	@Override
 	public boolean actionOnAdd(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
             TCDTClass tgcc = (TCDTClass)(tgc);
@@ -96,6 +100,7 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return false;
 	}
 
+	@Override
 	public boolean actionOnRemove(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
             TCDTClass tgcc = (TCDTClass)(tgc);
@@ -106,6 +111,7 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return false;
 	}
 
+	@Override
 	public boolean actionOnValueChanged(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
             return actionOnDoubleClick(tgc);
@@ -113,26 +119,32 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return false;
 	}
 
+	@Override
 	public String getXMLHead() {
 		return "<NCDiagramPanel name=\"" + name + "\"" + sizeParam() + displayParam() + " >";
 	}
 
+	@Override
 	public String getXMLTail() {
 		return "</NCDiagramPanel>";
 	}
 
+	@Override
 	public String getXMLSelectedHead() {
 		return "<NCDiagramPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >";
 	}
 
+	@Override
 	public String getXMLSelectedTail() {
 		return "</NCDiagramPanelCopy>";
 	}
 
+	@Override
 	public String getXMLCloneHead() {
 		return "<NCDiagramPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >";
 	}
 
+	@Override
 	public String getXMLCloneTail() {
 		return "</NCDiagramPanelCopy>";
 	}
@@ -177,8 +189,8 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
         return true;
     }*/
 
-	public LinkedList<TGComponent> getListOfNodes() {
-		LinkedList<TGComponent> ll = new LinkedList<>();
+	public List<TGComponent> getListOfNodes() {
+		List<TGComponent> ll = new LinkedList<>();
 
 		for (TGComponent tgc : componentList) {
 			if (tgc instanceof NCEqNode) {
@@ -194,8 +206,8 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return ll;
 	}
 
-	public LinkedList<NCEqNode> getListOfEqNode() {
-		LinkedList<NCEqNode> ll = new LinkedList<>();
+	public List<NCEqNode> getListOfEqNode() {
+		List<NCEqNode> ll = new LinkedList<>();
 
 		for (TGComponent tgc : this.componentList) {
 			if (tgc instanceof NCEqNode) {
@@ -218,8 +230,8 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return null;
 	}
 
-	public LinkedList<NCSwitchNode> getListOfSwitchNode() {
-		LinkedList<NCSwitchNode> ll = new LinkedList<>();
+	public List<NCSwitchNode> getListOfSwitchNode() {
+		List<NCSwitchNode> ll = new LinkedList<>();
 		for (TGComponent tgc : this.componentList) {
 			if (tgc instanceof NCSwitchNode) {
 				ll.add((NCSwitchNode) tgc);
@@ -229,8 +241,8 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return ll;
 	}
 
-	public LinkedList<NCConnectorNode> getListOfLinks() {
-		LinkedList<NCConnectorNode> ll = new LinkedList<>();
+	public List<NCConnectorNode> getListOfLinks() {
+		List<NCConnectorNode> ll = new LinkedList<>();
 		for (TGComponent tgc : this.componentList) {
 			if (tgc instanceof NCConnectorNode) {
 				ll.add((NCConnectorNode) tgc);
@@ -240,15 +252,15 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return ll;
 	}
 
-	public ArrayList<String> getInterfaces(NCSwitchNode sw) {
-		ListIterator iterator = getListOfLinks().listIterator();
+	public List<String> getInterfaces(NCSwitchNode sw) {
+		ListIterator<NCConnectorNode> iterator = getListOfLinks().listIterator();
 		NCConnectorNode lk;
 		TGConnectingPoint p;
 
-		ArrayList<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<String>();
 
 		while (iterator.hasNext()) {
-			lk = (NCConnectorNode) (iterator.next());
+			lk = iterator.next();
 			p = lk.getTGConnectingPointP1();
 			if (sw.belongsToMe(p)) {
 				list.add(lk.getInterfaceName());
@@ -263,10 +275,10 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return list;
 	}
 
-	public ArrayList<NCRoute> getAllRoutesFor(NCSwitchNode sw, NCTrafficArtifact arti) {
-		ArrayList<NCRoute> list = sw.getRoutesList();
+	public List<NCRoute> getAllRoutesFor(NCSwitchNode sw, NCTrafficArtifact arti) {
+		List<NCRoute> list = sw.getRoutesList();
 
-		ArrayList<NCRoute> ret = new ArrayList<NCRoute>();
+		List<NCRoute> ret = new ArrayList<NCRoute>();
 
 		for (NCRoute route : list) {
 			if (route.traffic.equals(arti.getValue())) {
@@ -277,15 +289,15 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return ret;
 	}
 
-	public ArrayList<NCSwitchNode> getSwitchesOfEq(NCEqNode eq) {
-		ListIterator iterator = getListOfLinks().listIterator();
+	public List<NCSwitchNode> getSwitchesOfEq(NCEqNode eq) {
+		ListIterator<NCConnectorNode> iterator = getListOfLinks().listIterator();
 		NCConnectorNode lk;
 		TGConnectingPoint p;
 
 		ArrayList<NCSwitchNode> list = new ArrayList<NCSwitchNode>();
 
 		while (iterator.hasNext()) {
-			lk = (NCConnectorNode) (iterator.next());
+			lk = iterator.next();
 			p = lk.getTGConnectingPointP1();
 			if (eq.belongsToMe(p)) {
 				list.add((NCSwitchNode) (getComponentToWhichBelongs(lk.getTGConnectingPointP2())));
@@ -300,15 +312,15 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return list;
 	}
 
-	public ArrayList<NCConnectorNode> getConnectorOfEq(NCEqNode eq) {
-		ListIterator iterator = getListOfLinks().listIterator();
+	public List<NCConnectorNode> getConnectorOfEq(NCEqNode eq) {
+		ListIterator<NCConnectorNode> iterator = getListOfLinks().listIterator();
 		NCConnectorNode lk;
 		TGConnectingPoint p;
 
-		ArrayList<NCConnectorNode> list = new ArrayList<NCConnectorNode>();
+		List<NCConnectorNode> list = new ArrayList<NCConnectorNode>();
 
 		while (iterator.hasNext()) {
-			lk = (NCConnectorNode) (iterator.next());
+			lk = iterator.next();
 			p = lk.getTGConnectingPointP1();
 			if (eq.belongsToMe(p)) {
 				list.add(lk);
@@ -323,14 +335,14 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 		return list;
 	}
 
-	public ArrayList<NCTrafficArtifact> getTrafficArtifacts() {
-		ListIterator iterator = getListOfEqNode().listIterator();
+	public List<NCTrafficArtifact> getTrafficArtifacts() {
+		ListIterator<NCEqNode> iterator = getListOfEqNode().listIterator();
 		NCEqNode eq;
 
-		ArrayList<NCTrafficArtifact> list = new ArrayList<NCTrafficArtifact>();
+		List<NCTrafficArtifact> list = new ArrayList<NCTrafficArtifact>();
 
 		while (iterator.hasNext()) {
-			eq = (NCEqNode) (iterator.next());
+			eq = iterator.next();
 			eq.addAllTrafficArtifacts(list);
 		}
 
@@ -338,11 +350,11 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 	}
 
 	public NCEqNode getNCEqNodeOf(NCTrafficArtifact arti) {
-		ListIterator iterator = getListOfEqNode().listIterator();
+		ListIterator<NCEqNode> iterator = getListOfEqNode().listIterator();
 		NCEqNode eq;
 
 		while (iterator.hasNext()) {
-			eq = (NCEqNode) (iterator.next());
+			eq = iterator.next();
 			if (eq.hasTraffic(arti)) {
 				return eq;
 			}
@@ -352,14 +364,14 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 
 	}
 
-	public ArrayList<String> getTraffics() {
-		ListIterator iterator = getListOfEqNode().listIterator();
+	public List<String> getTraffics() {
+		ListIterator<NCEqNode> iterator = getListOfEqNode().listIterator();
 		NCEqNode eq;
 
-		ArrayList<String> list = new ArrayList<String>();
+		List<String> list = new ArrayList<String>();
 
 		while (iterator.hasNext()) {
-			eq = (NCEqNode) (iterator.next());
+			eq = iterator.next();
 			eq.addAllTraffics(list);
 		}
 
@@ -399,7 +411,6 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
 	}
 
 	public NCConnectorNode getLinkByName(String name) {
-
 		for (TGComponent tgc : this.componentList) {
 			if (tgc instanceof NCConnectorNode) {
 				NCConnectorNode link = (NCConnectorNode) tgc;
diff --git a/src/main/java/ui/ncdd/NCEqNode.java b/src/main/java/ui/ncdd/NCEqNode.java
index a92bfe543b96f483b8bdc444bc28ebab7022388d..563cde58463f45053563da8f32ae44610e99dd0e 100755
--- a/src/main/java/ui/ncdd/NCEqNode.java
+++ b/src/main/java/ui/ncdd/NCEqNode.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ncdd;
 
 import myutil.GraphicLib;
@@ -47,8 +44,13 @@ import ui.util.IconManager;
 import ui.window.JDialogNCEqNode;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Polygon;
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Vector;
 
 
@@ -113,6 +115,7 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo
         myImageIcon = IconManager.imgic700;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		Color c = g.getColor();
 		g.draw3DRect(x, y, width, height, true);
@@ -146,6 +149,7 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo
 		g.drawImage(IconManager.imgic1100.getImage(), x + width - 20, y + 4, null);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         
         Polygon pol = new Polygon();
@@ -179,6 +183,7 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo
 		return type;
 	}
 	
+    @Override
 	public boolean editOndoubleClick(JFrame frame) {
 	//
         String oldName = name;
@@ -225,16 +230,18 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo
         return true;
     }
     
-    
+    @Override
     public int getType() {
         return TGComponentManager.NCDD_EQNODE;
     }
 	
+    @Override
 	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
         return tgc instanceof NCTrafficArtifact;
 
     }
     
+    @Override
     public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
    
         if (tgc instanceof NCTrafficArtifact) {
@@ -251,11 +258,11 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo
        
     }
     
+    @Override
     public void removeSwallowedTGComponent(TGComponent tgc) {
         removeInternalComponent(tgc);
     }
     
-    
     public Vector<NCTrafficArtifact> getArtifactList() {
         Vector<NCTrafficArtifact> v = new Vector<NCTrafficArtifact> ();
         for(int i=0; i<nbInternalTGComponent; i++) {
@@ -266,13 +273,13 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo
         return v;
     }
 	
-	public void addAllTraffics(ArrayList<String> list) {
+	public void addAllTraffics( List<String> list) {
 		for(int i=0; i<nbInternalTGComponent; i++) {
            list.add(tgcomponent[i].getValue());
         }
 	}
 	
-	public void addAllTrafficArtifacts(ArrayList<NCTrafficArtifact> list) {
+	public void addAllTrafficArtifacts( List<NCTrafficArtifact> list) {
 		for(int i=0; i<nbInternalTGComponent; i++) {
            list.add((NCTrafficArtifact)(tgcomponent[i]));
         }
@@ -296,14 +303,13 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo
         
     }
     
- 
-    
+    @Override
    	public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_NODE_NC;
       }
 	 
-	  public String getAttributes() {
-		  String attr = "Type: ";
+    public String getAttributes() {
+		String attr = "Type: ";
 		if (type == 0) {
 			attr += "Standard\n";
 		} else {
@@ -316,8 +322,7 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo
 			pol = "SP";
 		}
 		attr += "Scheduling policy = " + pol + "\n";
-		return attr;
 		
+		return attr;
 	}
-    
 }
diff --git a/src/main/java/ui/ncdd/NCRouteArtifact.java b/src/main/java/ui/ncdd/NCRouteArtifact.java
index 5254257b7a49d03a6880b0fbe2154233745bc629..3f5e3c2bfe8b6c177bc9382b1e7109af235afb50 100755
--- a/src/main/java/ui/ncdd/NCRouteArtifact.java
+++ b/src/main/java/ui/ncdd/NCRouteArtifact.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.ncdd;
 
 import myutil.GraphicLib;
@@ -50,8 +47,11 @@ import ui.util.IconManager;
 import ui.window.JDialogNCRoute;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Graphics;
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Vector;
 
 /**
@@ -95,8 +95,8 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal
 		myImageIcon = IconManager.imgic702;
 	}
 
+	@Override
 	public void internalDrawing(Graphics g) {
-
 		if (oldValue.compareTo(value) != 0) {
 			setValue(value, g);
 		}
@@ -117,10 +117,9 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal
 		g.drawLine(x+width-space-cran, y+space+cran, x + width-space, y+space+cran);
 
 		g.drawString(value, x + textX , y + textY);
-
 	}
 
-	public void setValue(String val, Graphics g) {
+	private void setValue(String val, Graphics g) {
 		oldValue = value;
 		int w  = g.getFontMetrics().stringWidth(value);
 		int w1 = Math.max(minWidth, w + 2 * textX + fileX + space);
@@ -130,9 +129,9 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal
 			width = w1;
 			resizeWithFather();
 		}
-		//
 	}
 
+	@Override
 	public void resizeWithFather() {
 		if ((father != null) && ((father instanceof NCEqNode) || (father instanceof NCSwitchNode))) {
 			//
@@ -142,15 +141,16 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal
 		}
 	}
 
+	@Override
 	public boolean editOndoubleClick(JFrame frame) {
 		String tmp;
 		boolean error = false;
 
 		Vector<NCRoute> vroutes = new Vector<NCRoute>(routes);
 
-		ArrayList<String> inputInterfaces = ((NCDiagramPanel)tdp).getInterfaces((NCSwitchNode)(getFather()));
-		ArrayList<String> traffics = ((NCDiagramPanel)tdp).getTraffics();
-		ArrayList<String> outputInterfaces = new ArrayList<>(inputInterfaces);
+		List<String> inputInterfaces = ((NCDiagramPanel)tdp).getInterfaces((NCSwitchNode)(getFather()));
+		List<String> traffics = ((NCDiagramPanel)tdp).getTraffics();
+		List<String> outputInterfaces = new ArrayList<>(inputInterfaces);
 
 		JDialogNCRoute dialog = new JDialogNCRoute(frame, "Setting route attributes", value, vroutes, inputInterfaces, traffics, outputInterfaces);
 		//	dialog.setSize(900, 500);
@@ -196,6 +196,7 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal
 
 	}
 
+	@Override
 	public TGComponent isOnMe(int _x, int _y) {
 		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
 			return this;
@@ -203,10 +204,12 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal
 		return null;
 	}
 
+	@Override
 	public int getType() {
 		return TGComponentManager.NCDD_ROUTE_ARTIFACT;
 	}
 
+	@Override
 	protected String translateExtraParam() {
 		StringBuffer sb = new StringBuffer("<extraparam>\n");
 		for(NCRoute route: routes) {
@@ -265,7 +268,7 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal
 		//makeFullValue();
 	}
 
-	public java.util.List<NCRoute> getRoutes() {
+	public List<NCRoute> getRoutes() {
 		return routes;
 	}
 
diff --git a/src/main/java/ui/syscams/SysCAMSBlockDE.java b/src/main/java/ui/syscams/SysCAMSBlockDE.java
index cabef17c3e73e14dfd3666282a58692b3b78068d..b88b13e3c82a19afa02a6584084c75cdf76bae9b 100644
--- a/src/main/java/ui/syscams/SysCAMSBlockDE.java
+++ b/src/main/java/ui/syscams/SysCAMSBlockDE.java
@@ -104,7 +104,7 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements
 		removable = true;
 		userResizable = true;
 
-		value = tdp.findSysCAMSPrimitiveComponentName("Block_DE_");
+		value = tdp.findSysCAMSPrimitiveComponentName("blockDE");
 		name = "Primitive component - Block DE";
 
 //		setPeriod(-1);
@@ -430,7 +430,6 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements
 			Node n1, n2;
 			Element elt;
 
-			int period;
 			String code, nameFn, listStruct, nameTemplate, typeTemplate, listTypedef;
 
 			for(int i=0; i<nl.getLength(); i++) {
diff --git a/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java b/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java
index 7541ca889e9aeda9703b9b0be66b20c814d79cf7..152947c73a371f6b56ddf1099565bf33c4b6044a 100644
--- a/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java
+++ b/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java
@@ -89,7 +89,7 @@ public class SysCAMSBlockGPIO2VCI extends TGCScalableWithInternalComponent imple
         removable = true;
         userResizable = true;
 
-    	value = "Block_GPIO2VCI";
+    	value = "blockGPIO2VCI";
         name = "Primitive component - Block GPIO2VCI";
         
         myImageIcon = IconManager.imgic1202;
diff --git a/src/main/java/ui/syscams/SysCAMSBlockTDF.java b/src/main/java/ui/syscams/SysCAMSBlockTDF.java
index 004bf5d78ddbe80691a6e06bf53e0559b4b3c8cc..6241fbc349acc0a6854daba4b4f179db60c8b8e6 100644
--- a/src/main/java/ui/syscams/SysCAMSBlockTDF.java
+++ b/src/main/java/ui/syscams/SysCAMSBlockTDF.java
@@ -102,7 +102,7 @@ public class SysCAMSBlockTDF extends TGCScalableWithInternalComponent implements
 		removable = true;
 		userResizable = true;
 
-		value = tdp.findSysCAMSPrimitiveComponentName("Block_TDF_");
+		value = tdp.findSysCAMSPrimitiveComponentName("blockTDF");
 		oldValue = value;
 		name = "Primitive component - Block TDF";
 
diff --git a/src/main/java/ui/syscams/SysCAMSCompositeComponent.java b/src/main/java/ui/syscams/SysCAMSCompositeComponent.java
index b4715c23be17b14934c853c5863e53c085eb266d..7291cfafd470159d757649601770f32203d1d195 100644
--- a/src/main/java/ui/syscams/SysCAMSCompositeComponent.java
+++ b/src/main/java/ui/syscams/SysCAMSCompositeComponent.java
@@ -39,9 +39,6 @@
 package ui.syscams;
 
 import myutil.GraphicLib;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
 import ui.*;
 import ui.util.IconManager;
 
diff --git a/src/main/java/ui/syscams/SysCAMSPortConnector.java b/src/main/java/ui/syscams/SysCAMSPortConnector.java
index 4749eda5da4460fdb2371cad12ea80661a8af7b1..ca2f7828ccf83bfe9f8c0085989cdda708dc97e2 100644
--- a/src/main/java/ui/syscams/SysCAMSPortConnector.java
+++ b/src/main/java/ui/syscams/SysCAMSPortConnector.java
@@ -40,7 +40,6 @@ package ui.syscams;
 
 import ui.*;
 import ui.util.IconManager;
-import ui.window.JDialogELNConnector;
 import ui.window.JDialogSysCAMSConnector;
 
 import java.awt.*;
@@ -90,13 +89,6 @@ public class SysCAMSPortConnector extends TGConnector implements ScalableTGCompo
 	protected void drawLastSegment(Graphics gr, int x1, int y1, int x2, int y2) {
 		Graphics2D g = (Graphics2D) gr;
 		
-		int w = g.getFontMetrics().stringWidth(value);
-		Font fold = g.getFont();
-		Font f = fold.deriveFont(Font.ITALIC, (float) (tdp.getFontSize()));
-		g.setFont(f);
-		g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
-		g.setFont(fold);
-
 		try {
 			SysCAMSPortConnectingPoint pt1 = (SysCAMSPortConnectingPoint) p1;
 			SysCAMSPortConnectingPoint pt2 = (SysCAMSPortConnectingPoint) p2;
@@ -113,6 +105,11 @@ public class SysCAMSPortConnector extends TGConnector implements ScalableTGCompo
 				}
 			}
 			if ((pt1.port != null) && (pt2.port != null)) {
+				String name1 = pt1.port.getPortName();
+				String name2 = pt2.port.getPortName();
+				if (name1.equals(name2)) {
+					value = name1;
+				}
 				if ((pt1.port instanceof SysCAMSPortConverter) && (pt2.port instanceof SysCAMSPortDE)) {
 					if (pt2.port.getFather().getFather() instanceof SysCAMSCompositeComponent) {
 						GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true);
@@ -144,6 +141,14 @@ public class SysCAMSPortConnector extends TGConnector implements ScalableTGCompo
 					GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true);
 				}
 			}
+			
+			int w = g.getFontMetrics().stringWidth(value);
+			Font fold = g.getFont();
+			Font f = fold.deriveFont(Font.ITALIC, (float) (tdp.getFontSize()));
+			g.setFont(f);
+			g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2);
+			g.setFont(fold);
+			
 			return;
 		} catch (Exception e) {
 		}
diff --git a/src/main/java/ui/syscams/SysCAMSPrimitivePort.java b/src/main/java/ui/syscams/SysCAMSPrimitivePort.java
index d50ac502636280e33b42ba2d9529faa3ffe4bd2a..8d2e225f1c3113239b6f8196ba399e753f8d71f8 100644
--- a/src/main/java/ui/syscams/SysCAMSPrimitivePort.java
+++ b/src/main/java/ui/syscams/SysCAMSPrimitivePort.java
@@ -65,7 +65,6 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
     private int minFontSize = 4;
     private int currentFontSize = -1;
     protected int oldx, oldy;
-    protected int halfwidth = 13;
     protected int currentOrientation = GraphicLib.NORTH;
 
     private int isOrigin = -1;
@@ -76,14 +75,11 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
     private int textX = 15;
     private double dtextX = 0.0;
     protected int decPoint = 3;
-
-    private ImageIcon portImageIconTDF, portImageIconDE;
-    private ImageIcon portImageIconW, portImageIconE, portImageIconN, portImageIconS;
     
     public SysCAMSPrimitivePort(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-        initScaling(2*halfwidth, 2*halfwidth);
+        initScaling(20, 20);
 
         dtextX = textX * oldScaleFactor;
         textX = (int)dtextX;
@@ -107,12 +103,6 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
         name = "Primitive port - " + getPortTypeName();
         
         myImageIcon = IconManager.imgic1206;
-        portImageIconTDF = IconManager.imgic8000;
-        portImageIconDE = IconManager.imgic8001;
-        portImageIconW = IconManager.imgic8002; 
-        portImageIconE = IconManager.imgic8003; 
-        portImageIconN = IconManager.imgic8004; 
-        portImageIconS = IconManager.imgic8005; 
         
         if (this instanceof SysCAMSPortTDF) {
         	((SysCAMSPortTDF) this).setPeriod(-1);
@@ -186,84 +176,205 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
             f = f.deriveFont(this.currentFontSize);
     	}
 
+    	int attributeFontSize = this.currentFontSize * 5 / 6;
+    	int w = g.getFontMetrics().stringWidth(commName);
+		int h = g.getFontMetrics().getAscent();
+        g.setFont(f.deriveFont((float) attributeFontSize));
+        g.setFont(f);
+    	g.setFont(f.deriveFont(Font.BOLD));
+    	
         Color c = g.getColor();
         g.setColor(c);
          
         if (this instanceof SysCAMSPortTDF) {
-        	g.drawRect(x+width/2-portImageIconTDF.getIconWidth()/2, y+height/2-portImageIconTDF.getIconHeight()/2, portImageIconTDF.getIconWidth(), portImageIconTDF.getIconHeight());
-    		g.drawImage(portImageIconTDF.getImage(), x+width/2-portImageIconTDF.getIconWidth()/2, y+height/2-portImageIconTDF.getIconHeight()/2, null);
+        	g.setColor(Color.BLACK);
+        	g.fillRect(x, y, width, height);
+        	g.setColor(c);
+        	g.drawRect(x, y, width, height);
+        	switch (currentOrientation) {
+			case GraphicLib.NORTH:
+				g.drawString(commName, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(commName, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(commName, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(commName, x + width, y + height + height / 2 + h);
+			}
         } else if (this instanceof SysCAMSPortConverter) {
         	switch(currentOrientation) {
             case GraphicLib.NORTH:
-        		g.drawRect(x-1+width/2-portImageIconN.getIconWidth()/2, y-1+height/2-portImageIconN.getIconHeight()/2, portImageIconN.getIconWidth()+2, portImageIconN.getIconHeight()+2);
-         		g.drawImage(portImageIconN.getImage(), x+width/2-portImageIconN.getIconWidth()/2, y+height/2-portImageIconN.getIconHeight()/2, null);
+            	g.setColor(Color.WHITE);
+            	g.fillRect(x, y, width, height / 2);
+            	g.setColor(Color.BLACK);
+            	g.fillRect(x, y + height / 2, width, height / 2);
+            	g.setColor(c);
+            	g.drawRect(x, y, width, height);
+            	g.drawString(commName, x + width + width / 2, y);
             	break;
             case GraphicLib.SOUTH:
-        		g.drawRect(x+width/2-portImageIconS.getIconWidth()/2, y+height/2-portImageIconS.getIconHeight()/2, portImageIconS.getIconWidth(), portImageIconS.getIconHeight());
-         		g.drawImage(portImageIconS.getImage(), x+width/2-portImageIconS.getIconWidth()/2, y+height/2-portImageIconS.getIconHeight()/2, null);
+            	g.setColor(Color.BLACK);
+            	g.fillRect(x, y, width, height / 2);
+            	g.setColor(Color.WHITE);
+            	g.fillRect(x, y + height / 2, width, height / 2);
+            	g.setColor(c);
+            	g.drawRect(x, y, width, height);
+            	g.drawString(commName, x + width + width / 2, y + height + h);
             	break;
             case GraphicLib.WEST:
-        		g.drawRect(x+width/2-portImageIconW.getIconWidth()/2, y+height/2-portImageIconW.getIconHeight()/2, portImageIconW.getIconWidth(), portImageIconW.getIconHeight());
-         		g.drawImage(portImageIconW.getImage(), x+width/2-portImageIconW.getIconWidth()/2, y+height/2-portImageIconW.getIconHeight()/2, null);
+            	g.setColor(Color.WHITE);
+            	g.fillRect(x, y, width / 2, height);
+            	g.setColor(Color.BLACK);
+            	g.fillRect(x + width / 2, y, width / 2, height);
+            	g.setColor(c);
+            	g.drawRect(x, y, width, height);
+            	g.drawString(commName, x - w, y + height + height / 2 + h);
             	break;
             case GraphicLib.EAST:
             default:
-        		g.drawRect(x+width/2-portImageIconE.getIconWidth()/2, y+height/2-portImageIconE.getIconHeight()/2, portImageIconE.getIconWidth(), portImageIconE.getIconHeight());
-         		g.drawImage(portImageIconE.getImage(), x+width/2-portImageIconE.getIconWidth()/2, y+height/2-portImageIconE.getIconHeight()/2, null);
+            	g.setColor(Color.BLACK);
+            	g.fillRect(x, y, width / 2, height);
+            	g.setColor(Color.WHITE);
+            	g.fillRect(x + width / 2, y, width / 2, height);
+            	g.setColor(c);
+            	g.drawRect(x, y, width, height);
+            	g.drawString(commName, x + width, y + height + height / 2 + h);
             }
         } else if (this instanceof SysCAMSPortDE) {
-        	g.drawRect(x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, portImageIconDE.getIconWidth(), portImageIconDE.getIconHeight());
-    		g.drawImage(portImageIconDE.getImage(), x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, null);
+        	g.setColor(Color.WHITE);
+        	g.fillRect(x, y, width, height);
+        	g.setColor(c);
+        	g.drawRect(x, y, width, height);
+        	switch (currentOrientation) {
+			case GraphicLib.NORTH:
+				g.drawString(commName, x + width + width / 2, y);
+				break;
+			case GraphicLib.WEST:
+				g.drawString(commName, x - w, y + height + height / 2 + h);
+				break;
+			case GraphicLib.SOUTH:
+				g.drawString(commName, x + width + width / 2, y + height + h);
+				break;
+			case GraphicLib.EAST:
+			default:
+				g.drawString(commName, x + width, y + height + height / 2 + h);
+			}
     	}
         
         TGComponent tgc = getFather();
         if ((tgc != null) && (tgc instanceof SysCAMSBlockTDF)) {
         	if (tgc instanceof SysCAMSBlockTDF && this instanceof SysCAMSPortTDF) {
-        		g.drawRect(x+width/2-portImageIconTDF.getIconWidth()/2, y+height/2-portImageIconTDF.getIconHeight()/2, portImageIconTDF.getIconWidth(), portImageIconTDF.getIconHeight());
-        		g.drawImage(portImageIconTDF.getImage(), x+width/2-portImageIconTDF.getIconWidth()/2, y+height/2-portImageIconTDF.getIconHeight()/2, null);
+        		g.setColor(Color.BLACK);
+            	g.fillRect(x, y, width, height);
+            	g.setColor(c);
+            	g.drawRect(x, y, width, height);
+            	switch (currentOrientation) {
+    			case GraphicLib.NORTH:
+    				g.drawString(commName, x + width + width / 2, y);
+    				break;
+    			case GraphicLib.WEST:
+    				g.drawString(commName, x - w, y + height + height / 2 + h);
+    				break;
+    			case GraphicLib.SOUTH:
+    				g.drawString(commName, x + width + width / 2, y + height + h);
+    				break;
+    			case GraphicLib.EAST:
+    			default:
+    				g.drawString(commName, x + width, y + height + height / 2 + h);
+    			}
         	} 
         }
         if ((tgc != null) && (tgc instanceof SysCAMSBlockDE)) {
         	if (tgc instanceof SysCAMSBlockDE && this instanceof SysCAMSPortDE) {
-        		g.drawRect(x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, portImageIconDE.getIconWidth(), portImageIconDE.getIconHeight());
-        		g.drawImage(portImageIconDE.getImage(), x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, null);
+        		g.setColor(Color.WHITE);
+            	g.fillRect(x, y, width, height);
+            	g.setColor(c);
+            	g.drawRect(x, y, width, height);
+            	switch (currentOrientation) {
+    			case GraphicLib.NORTH:
+    				g.drawString(commName, x + width + width / 2, y);
+    				break;
+    			case GraphicLib.WEST:
+    				g.drawString(commName, x - w, y + height + height / 2 + h);
+    				break;
+    			case GraphicLib.SOUTH:
+    				g.drawString(commName, x + width + width / 2, y + height + h);
+    				break;
+    			case GraphicLib.EAST:
+    			default:
+    				g.drawString(commName, x + width, y + height + height / 2 + h);
+    			}
         	}
         }
         if ((tgc != null) && (tgc instanceof SysCAMSBlockGPIO2VCI)) {
         	if (tgc instanceof SysCAMSBlockGPIO2VCI && this instanceof SysCAMSPortDE) {
-        		g.drawRect(x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, portImageIconDE.getIconWidth(), portImageIconDE.getIconHeight());
-        		g.drawImage(portImageIconDE.getImage(), x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, null);
+        		g.setColor(Color.WHITE);
+            	g.fillRect(x, y, width, height);
+            	g.setColor(c);
+            	g.drawRect(x, y, width, height);
+            	switch (currentOrientation) {
+    			case GraphicLib.NORTH:
+    				g.drawString(commName, x + width + width / 2, y);
+    				break;
+    			case GraphicLib.WEST:
+    				g.drawString(commName, x - w, y + height + height / 2 + h);
+    				break;
+    			case GraphicLib.SOUTH:
+    				g.drawString(commName, x + width + width / 2, y + height + h);
+    				break;
+    			case GraphicLib.EAST:
+    			default:
+    				g.drawString(commName, x + width, y + height + height / 2 + h);
+    			}
         	}
         }
         if ((tgc != null) && (tgc instanceof SysCAMSBlockTDF)) {
         	if (tgc instanceof SysCAMSBlockTDF && this instanceof SysCAMSPortConverter) {
         		switch(currentOrientation) {
                 case GraphicLib.NORTH:
-            		g.drawRect(x-1+width/2-portImageIconN.getIconWidth()/2, y-1+height/2-portImageIconN.getIconHeight()/2, portImageIconN.getIconWidth()+2, portImageIconN.getIconHeight()+2);
-             		g.drawImage(portImageIconN.getImage(), x+width/2-portImageIconN.getIconWidth()/2, y+height/2-portImageIconN.getIconHeight()/2, null);
+                	g.setColor(Color.WHITE);
+                	g.fillRect(x, y, width, height / 2);
+                	g.setColor(Color.BLACK);
+                	g.fillRect(x, y + height / 2, width, height / 2);
+                	g.setColor(c);
+                	g.drawRect(x, y, width, height);
+                	g.drawString(commName, x + width + width / 2, y);
                 	break;
                 case GraphicLib.SOUTH:
-            		g.drawRect(x+width/2-portImageIconS.getIconWidth()/2, y+height/2-portImageIconS.getIconHeight()/2, portImageIconS.getIconWidth(), portImageIconS.getIconHeight());
-             		g.drawImage(portImageIconS.getImage(), x+width/2-portImageIconS.getIconWidth()/2, y+height/2-portImageIconS.getIconHeight()/2, null);
+                	g.setColor(Color.BLACK);
+                	g.fillRect(x, y, width, height / 2);
+                	g.setColor(Color.WHITE);
+                	g.fillRect(x, y + height / 2, width, height / 2);
+                	g.setColor(c);
+                	g.drawRect(x, y, width, height);
+                	g.drawString(commName, x + width + width / 2, y + height + h);
                 	break;
                 case GraphicLib.WEST:
-            		g.drawRect(x+width/2-portImageIconW.getIconWidth()/2, y+height/2-portImageIconW.getIconHeight()/2, portImageIconW.getIconWidth(), portImageIconW.getIconHeight());
-             		g.drawImage(portImageIconW.getImage(), x+width/2-portImageIconW.getIconWidth()/2, y+height/2-portImageIconW.getIconHeight()/2, null);
+                	g.setColor(Color.WHITE);
+                	g.fillRect(x, y, width / 2, height);
+                	g.setColor(Color.BLACK);
+                	g.fillRect(x + width / 2, y, width / 2, height);
+                	g.setColor(c);
+                	g.drawRect(x, y, width, height);
+                	g.drawString(commName, x - w, y + height + height / 2 + h);
                 	break;
                 case GraphicLib.EAST:
                 default:
-            		g.drawRect(x+width/2-portImageIconE.getIconWidth()/2, y+height/2-portImageIconE.getIconHeight()/2, portImageIconE.getIconWidth(), portImageIconE.getIconHeight());
-             		g.drawImage(portImageIconE.getImage(), x+width/2-portImageIconE.getIconWidth()/2, y+height/2-portImageIconE.getIconHeight()/2, null);
+                	g.setColor(Color.BLACK);
+                	g.fillRect(x, y, width / 2, height);
+                	g.setColor(Color.WHITE);
+                	g.fillRect(x + width / 2, y, width / 2, height);
+                	g.setColor(c);
+                	g.drawRect(x, y, width, height);
+                	g.drawString(commName, x + width, y + height + height / 2 + h);
                 }
         	}
         }
         
-        int attributeFontSize = this.currentFontSize * 5 / 6;
-        g.setFont(f.deriveFont((float) attributeFontSize));
-        g.setFont(f);
-    	g.setFont(f.deriveFont(Font.BOLD));
-    	g.drawString(commName, x, y-1);
-
         g.setFont(fold);
     }
 
diff --git a/src/main/java/ui/tmlad/TGConnectingPointTMLAD.java b/src/main/java/ui/tmlad/TGConnectingPointTMLAD.java
index a1f5ab090278a65ba89fe4397722fe2ea02150b9..a397a102bd7980d1f1f2be480f381e377249fe64 100755
--- a/src/main/java/ui/tmlad/TGConnectingPointTMLAD.java
+++ b/src/main/java/ui/tmlad/TGConnectingPointTMLAD.java
@@ -36,16 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
- 
 package ui.tmlad;
 
-//import java.awt.*;
-
 import ui.CDElement;
 import ui.TGComponentManager;
-import ui.TGConnectingPointWidthHeight;
+import ui.ad.TGConnectingPointAD;
 
 /**
  * Class TGConnectingPointTMLAD
@@ -54,21 +49,14 @@ import ui.TGConnectingPointWidthHeight;
  * @version 1.0 28/10/2005
  * @author Ludovic APVRILLE
  */
-public class TGConnectingPointTMLAD extends  TGConnectingPointWidthHeight{
+public class TGConnectingPointTMLAD extends TGConnectingPointAD /* Issue #69TGConnectingPoint*/ {
 
 	public TGConnectingPointTMLAD(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) {
 		super(_container, _x, _y, _in, _out, _w, _h);
 	}
 
+	@Override
 	public boolean isCompatibleWith(int type) {
         return type == TGComponentManager.CONNECTOR_TMLAD;
     }
-       
 }
-
-
-
-
-    
-
-
diff --git a/src/main/java/ui/tmlad/TGConnectorTMLAD.java b/src/main/java/ui/tmlad/TGConnectorTMLAD.java
index c7943dd2e9293f4c44041a3306b7578016c8178c..35955d3d254f9431278c572aff4451a787b45746 100755
--- a/src/main/java/ui/tmlad/TGConnectorTMLAD.java
+++ b/src/main/java/ui/tmlad/TGConnectorTMLAD.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADConnector;
 import ui.util.IconManager;
 
 import java.awt.*;
@@ -56,8 +54,9 @@ import java.util.Vector;
  * @version 1.0 30/09/2004
  * @author Ludovic APVRILLE
  */
-public  class TGConnectorTMLAD extends TGConnector {
-    protected int arrowLength = 10;
+public  class TGConnectorTMLAD extends TADConnector /* Issue #69 TGConnector*/ {
+    
+	protected int arrowLength = 10;
     
     public TGConnectorTMLAD(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) {
         super(_x, _y,  _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
@@ -65,6 +64,7 @@ public  class TGConnectorTMLAD extends TGConnector {
         myImageIcon = IconManager.imgic202;
     }
     
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
         if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) {
             g.drawLine(x1, y1, x2, y2);
@@ -73,14 +73,8 @@ public  class TGConnectorTMLAD extends TGConnector {
         }
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.CONNECTOR_TMLAD;
     }
 }
-
-
-
-
-
-
-
diff --git a/src/main/java/ui/tmlad/TMLADActionState.java b/src/main/java/ui/tmlad/TMLADActionState.java
index 75d464612c7a1a151e895f1d2d015f0b4b515c7f..a216f7d0454b47ce6a819814f67940bcfe3a7503 100755
--- a/src/main/java/ui/tmlad/TMLADActionState.java
+++ b/src/main/java/ui/tmlad/TMLADActionState.java
@@ -36,17 +36,25 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
+import java.awt.Color;
+import java.awt.Graphics;
 
-import java.awt.*;
-import java.awt.geom.Line2D;
+import ui.AllowedBreakpoint;
+import ui.BasicErrorHighlight;
+import ui.CheckableAccessibility;
+import ui.CheckableLatency;
+import ui.ColorManager;
+import ui.EmbeddedComment;
+import ui.ErrorHighlight;
+import ui.PostJavaCode;
+import ui.PreJavaCode;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADActionState;
 
 /**
  * Class TMLADActionState
@@ -55,36 +63,45 @@ import java.awt.geom.Line2D;
  * @version 1.0 21/11/2005
  * @author Ludovic APVRILLE
  */
-public class TMLADActionState extends TGCOneLineText implements PreJavaCode, PostJavaCode, CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
-    protected int lineLength = 5;
-    protected int textX =  5;
-    protected int textY =  15;
-    protected int arc = 5;
-	
-	protected int stateOfError = 0; // Not yet checked
+public class TMLADActionState extends TADActionState/* Issue #69 TGCOneLineText */implements PreJavaCode, PostJavaCode, CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+//    protected int lineLength = 5;
+//    protected int textX =  5;
+//    protected int textY =  15;
+//    protected int arc = 5;
+//	
+//	protected int stateOfError = 0; // Not yet checked
     
     public TMLADActionState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-        
-        width = 30;
-        height = 20;
-        minWidth = 30;
-        
-        nbConnectingPoint = 2;
-        connectingPoint = new TGConnectingPoint[2];
-        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0);
-        
-        moveable = true;
-        editable = true;
-        removable = true;
-        
-        value = "action";
-        name = "action state";
-        
-        myImageIcon = IconManager.imgic204;
+//        
+//        width = 30;
+//        height = 20;
+//        minWidth = 30;
+//        
+//        nbConnectingPoint = 2;
+//        connectingPoint = new TGConnectingPoint[2];
+//        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+//        connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0);
+//        
+//        moveable = true;
+//        editable = true;
+//        removable = true;
+//        
+//        value = "action";
+//        name = "action state";
+//        
+//        myImageIcon = IconManager.imgic204;
     }
     
+    @Override
+    protected void createConnectingPoints() {
+    	nbConnectingPoint = 2;
+    	connectingPoint = new TGConnectingPoint[ nbConnectingPoint ];
+    	connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+    	connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0);
+    }
+
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -94,9 +111,9 @@ public class TMLADActionState extends TGCOneLineText implements PreJavaCode, Pos
             //updateConnectingPoints();
         }
 		
-		if (stateOfError > 0)  {
+		if (stateAction > 0)  {
 			Color c = g.getColor();
-			switch(stateOfError) {
+			switch(stateAction) {
 			case ErrorHighlight.OK:
 				g.setColor(ColorManager.ATTRIBUTE_BOX_ACTION);
 				break;
@@ -112,25 +129,25 @@ public class TMLADActionState extends TGCOneLineText implements PreJavaCode, Pos
         g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
         
         g.drawString(value, x + (width - w) / 2 , y + textY);
-		
-    }
-    
-    public TGComponent isOnMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-        
-        if ((int)(Line2D.ptSegDistSq(x +width/2, y- lineLength,  x+width/2, y + lineLength + height, _x, _y)) < distanceSelected) {
-			return this;	
-		}
-        
-        return null;
     }
     
-    public String getAction() {
-        return value;
-    }
+//    public TGComponent isOnMe(int _x, int _y) {
+//        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//            return this;
+//        }
+//        
+//        if ((int)(Line2D.ptSegDistSq(x +width/2, y- lineLength,  x+width/2, y + lineLength + height, _x, _y)) < distanceSelected) {
+//			return this;	
+//		}
+//        
+//        return null;
+//    }
+//    
+//    public String getAction() {
+//        return value;
+//    }
     
+    @Override
     public String getAction(int cpt) {
         if (cpt <0) {
             return value;
@@ -156,17 +173,17 @@ public class TMLADActionState extends TGCOneLineText implements PreJavaCode, Pos
         return ret; 
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_ACTION_STATE;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
 	
-	public void setStateAction(int _stateAction) {
-		stateOfError = _stateAction;
-	}
-    
-    
+//	public void setStateAction(int _stateAction) {
+//		stateOfError = _stateAction;
+//	}
 }
diff --git a/src/main/java/ui/tmlad/TMLADChoice.java b/src/main/java/ui/tmlad/TMLADChoice.java
index 6d054ed994d909f352f682fb856cdb00912c18fc..c2f1175b4bf8fe8966880b691ae749a43b9cfcce 100755
--- a/src/main/java/ui/tmlad/TMLADChoice.java
+++ b/src/main/java/ui/tmlad/TMLADChoice.java
@@ -36,17 +36,16 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
-import java.awt.geom.Line2D;
+import ui.AllowedBreakpoint;
+import ui.BasicErrorHighlight;
+import ui.EmbeddedComment;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADChoice;
 
 /**
  * Class TMLADChoice
@@ -55,13 +54,13 @@ import java.awt.geom.Line2D;
  * @version 1.0 21/11/2005
  * @author Ludovic APVRILLE
  */
-public class TMLADChoice extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
-    private int lineLength = 10;
-    private int lineOutLength = 25;
-    private int textX1, textY1, textX2, textY2, textX3, textY3;
-    
-    protected int stateOfError = 0; // Not yet checked
-    public final static int NOT_VERIFIED = 0;
+public class TMLADChoice extends TADChoice /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+//    private int lineLength = 10;
+//    private int lineOutLength = 25;
+//    private int textX1, textY1, textX2, textY2, textX3, textY3;
+//    
+//    protected int stateOfError = 0; // Not yet checked
+//    public final static int NOT_VERIFIED = 0;
     public final static int REACHABLE = 1;
     public final static int NOT_REACHABLE = 2;
 
@@ -70,150 +69,161 @@ public class TMLADChoice extends TGCWithInternalComponent implements EmbeddedCom
     public TMLADChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
         
-        width = 30;
-        height = 30;
-        textX1 = -lineOutLength;
-        textY1 = height/2 - 5;
-        textX2 = width + 5;
-        textY2 = height/2 - 5;
-        textX3 = width /2 + 5;
-        textY3 = height + 15;
-        
-        nbConnectingPoint = 4;
-        connectingPoint = new TGConnectingPoint[nbConnectingPoint];
-        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[1] = new TGConnectingPointTMLAD(this, -lineOutLength, 0, false, true, 0.0, 0.5);
-        connectingPoint[2] = new TGConnectingPointTMLAD(this, lineOutLength, 0, false, true, 1.0, 0.5);
-        connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineOutLength,  false, true, 0.5, 1.0);
-        
-        nbInternalTGComponent = 3;
-        tgcomponent = new TGComponent[nbInternalTGComponent];
-        
-        TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 1");
-        tgcomponent[0] = tgc;
-        
-        tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 2");
-        tgcomponent[1] = tgc;
-        
-        tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 3");
-        tgcomponent[2] = tgc;
-        
-        moveable = true;
-        editable = false;
-        removable = true;
-        
-        name = "choice";
-        
-        myImageIcon = IconManager.imgic208;
-    }
-    
-    public void internalDrawing(Graphics g) {
-		if (stateOfError > 0)  {
-			Color c = g.getColor();
-			switch(stateOfError) {
-			case ErrorHighlight.OK:
-				g.setColor(ColorManager.CHOICE);
-				break;
-			default:
-				g.setColor(ColorManager.UNKNOWN_BOX_ACTION);
-			}
-			// Making the polygon
-			int [] px1 = {x+(width/2), x+width+2, x + (width/2), x};
-			int [] py1 = {y, y + height/2, y+height+2, y+height/2};
-			g.fillPolygon(px1, py1, 4);
-			g.setColor(c);
-		}
-		
-        g.drawLine(x+(width/2), y, x+width, y + height/2);
-        g.drawLine(x, y + height / 2, x+width/2, y + height);
-        g.drawLine(x + width/2, y, x, y + height/2);
-        g.drawLine(x + width, y + height/2, x + width/2, y + height);
-        
-        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
-        g.drawLine(x, y + height/2, x-lineOutLength, y + height/2);
-        g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2);
-        g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength);
-    }
-    
-    public TGComponent isOnOnlyMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-        
-        if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) {
-			return this;	
-		}
-		
-		if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
-			return this;
-		}
-		
-		if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
-			return this;
-		}
-		
-		if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) {
-			return this;
-		}
-        
-        return null;
-    }
-    
-    public String getGuard(int i) {
-        if ((i>=0) && (i<nbInternalTGComponent)) {
-            return tgcomponent[i].getValue();
-        }
-        return "";
+//        width = 30;
+//        height = 30;
+//        textX1 = -lineOutLength;
+//        textY1 = height/2 - 5;
+//        textX2 = width + 5;
+//        textY2 = height/2 - 5;
+//        textX3 = width /2 + 5;
+//        textY3 = height + 15;
+//        
+//        nbConnectingPoint = 4;
+//        connectingPoint = new TGConnectingPoint[nbConnectingPoint];
+//        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+//        connectingPoint[1] = new TGConnectingPointTMLAD(this, -lineOutLength, 0, false, true, 0.0, 0.5);
+//        connectingPoint[2] = new TGConnectingPointTMLAD(this, lineOutLength, 0, false, true, 1.0, 0.5);
+//        connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineOutLength,  false, true, 0.5, 1.0);
+//        
+//        nbInternalTGComponent = 3;
+//        tgcomponent = new TGComponent[nbInternalTGComponent];
+//        
+//        TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 1");
+//        tgcomponent[0] = tgc;
+//        
+//        tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 2");
+//        tgcomponent[1] = tgc;
+//        
+//        tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 3");
+//        tgcomponent[2] = tgc;
+//        
+//        moveable = true;
+//        editable = false;
+//        removable = true;
+//        
+//        name = "choice";
+//        
+//        myImageIcon = IconManager.imgic208;
     }
-    public void drawSecurityInformation(Graphics g) {
-        if (securityInformation > 0) {
-
-            Color c = g.getColor();
-            Color c1;
-            switch(securityInformation) {
-            case REACHABLE:
-                c1 = Color.green;
-                break;
-            case NOT_REACHABLE:
-                c1 = Color.red;
-                break;
-            default:
-                return;
-            }
-
-            GraphicLib.arrowWithLine(g, 1, 0, 10, x-30, y+4, x-15, y+4, true);
-            g.drawOval(x-11, y-3, 7, 9);
-            g.setColor(c1);
-            g.fillRect(x-12, y, 9, 7);
-            g.setColor(c);
-            g.drawRect(x-12, y, 9, 7);
-
-        }
 
+    @Override
+    protected void createConnectingPoints() {
+    	nbConnectingPoint = 4;
+    	connectingPoint = new TGConnectingPoint[nbConnectingPoint];
+    	connectingPoint[ 0 ] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+    	connectingPoint[ 1 ] = new TGConnectingPointTMLAD(this, -lineOutLength, 0, false, true, 0.0, 0.5);
+    	connectingPoint[ 2 ] = new TGConnectingPointTMLAD(this, lineOutLength, 0, false, true, 1.0, 0.5);
+    	connectingPoint[ 3 ] = new TGConnectingPointTMLAD(this, 0, lineOutLength,  false, true, 0.5, 1.0);
     }
     
-    public void setGuard(String guard, int i) {
-         if ((i>=0) && (i<nbInternalTGComponent)) {
-            tgcomponent[i].setValue(guard);
-         }
-    }
+//    public void internalDrawing(Graphics g) {
+//		if (stateOfError > 0)  {
+//			Color c = g.getColor();
+//			switch(stateOfError) {
+//			case ErrorHighlight.OK:
+//				g.setColor(ColorManager.CHOICE);
+//				break;
+//			default:
+//				g.setColor(ColorManager.UNKNOWN_BOX_ACTION);
+//			}
+//			// Making the polygon
+//			int [] px1 = {x+(width/2), x+width+2, x + (width/2), x};
+//			int [] py1 = {y, y + height/2, y+height+2, y+height/2};
+//			g.fillPolygon(px1, py1, 4);
+//			g.setColor(c);
+//		}
+//		
+//        g.drawLine(x+(width/2), y, x+width, y + height/2);
+//        g.drawLine(x, y + height / 2, x+width/2, y + height);
+//        g.drawLine(x + width/2, y, x, y + height/2);
+//        g.drawLine(x + width, y + height/2, x + width/2, y + height);
+//        
+//        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
+//        g.drawLine(x, y + height/2, x-lineOutLength, y + height/2);
+//        g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2);
+//        g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength);
+//    }
+//    
+//    public TGComponent isOnOnlyMe(int _x, int _y) {
+//        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//            return this;
+//        }
+//        
+//        if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) {
+//			return this;	
+//		}
+//		
+//		if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
+//			return this;
+//		}
+//		
+//		if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
+//			return this;
+//		}
+//		
+//		if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) {
+//			return this;
+//		}
+//        
+//        return null;
+//    }
+    
+//    public String getGuard(int i) {
+//        if ((i>=0) && (i<nbInternalTGComponent)) {
+//            return tgcomponent[i].getValue();
+//        }
+//        return "";
+//    }
+//    public void drawSecurityInformation(Graphics g) {
+//        if (securityInformation > 0) {
+//
+//            Color c = g.getColor();
+//            Color c1;
+//            switch(securityInformation) {
+//            case REACHABLE:
+//                c1 = Color.green;
+//                break;
+//            case NOT_REACHABLE:
+//                c1 = Color.red;
+//                break;
+//            default:
+//                return;
+//            }
+//
+//            GraphicLib.arrowWithLine(g, 1, 0, 10, x-30, y+4, x-15, y+4, true);
+//            g.drawOval(x-11, y-3, 7, 9);
+//            g.setColor(c1);
+//            g.fillRect(x-12, y, 9, 7);
+//            g.setColor(c);
+//            g.drawRect(x-12, y, 9, 7);
+//
+//        }
+//
+//    }
+//    
+//    public void setGuard(String guard, int i) {
+//         if ((i>=0) && (i<nbInternalTGComponent)) {
+//            tgcomponent[i].setValue(guard);
+//         }
+//    }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_CHOICE;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
-	
-	public void setStateAction(int _stateAction) {
-		stateOfError = _stateAction;
-	}
-    
+//	
+//	public void setStateAction(int _stateAction) {
+//		stateOfError = _stateAction;
+//	}
 }
diff --git a/src/main/java/ui/tmlad/TMLADDecrypt.java b/src/main/java/ui/tmlad/TMLADDecrypt.java
index 5c75a5f9554e6f2c88027b57d71a585fe8b57b29..09c37ac7b23a6c6bd2dd073b906f32bce059de58 100755
--- a/src/main/java/ui/tmlad/TMLADDecrypt.java
+++ b/src/main/java/ui/tmlad/TMLADDecrypt.java
@@ -44,6 +44,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 import ui.window.JDialogMultiString;
 
@@ -60,7 +61,7 @@ import java.util.ArrayList;
  * @author Ludovic APVRILLE
  * @version 1.0 21/11/2005
  */
-public class TMLADDecrypt extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADDecrypt extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     private int lineLength = 5;
     //    private int textX, textY;
     private int ilength = 20;
@@ -92,6 +93,7 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde
         myImageIcon = IconManager.imgic214;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         if (stateOfError > 0) {
             Color c = g.getColor();
@@ -131,6 +133,7 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde
         g.drawString("sec:" + securityContext, x + 3 * width / 2, y + height / 2);
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String[] labels = new String[1];
         String[] values = new String[1];
@@ -151,9 +154,9 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde
         }
 
         return false;
-
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -170,6 +173,7 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde
         return null;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data secPattern=\"");
@@ -190,9 +194,6 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde
 //            int k;
 //            String s;
 
-            //
-            //
-
             for (int i = 0; i < nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
@@ -213,20 +214,22 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_DECRYPT;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLAD;
     }
 
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
 }
-
diff --git a/src/main/java/ui/tmlad/TMLADDelay.java b/src/main/java/ui/tmlad/TMLADDelay.java
index fd017298059b4340999d9ad8f812843638defaf0..4a936c36df55a6a06b11f688590fb97b034b2eca 100755
--- a/src/main/java/ui/tmlad/TMLADDelay.java
+++ b/src/main/java/ui/tmlad/TMLADDelay.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADComponentWithSubcomponents;
 import ui.util.IconManager;
 
 import java.awt.*;
@@ -55,11 +53,11 @@ import java.awt.geom.Line2D;
  * @version 1.0 10/11/2008
  * @author Ludovic APVRILLE
  */
-public class TMLADDelay extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADDelay extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     private int lineLength = 5;
     private int textX, textY;
-    private int ilength = 10;
-    private int lineLength1 = 2;
+//    private int ilength = 10;
+//    private int lineLength1 = 2;
 	
 	protected int stateOfError = 0; // Not yet checked
     
@@ -97,6 +95,7 @@ public class TMLADDelay extends TGCWithInternalComponent implements EmbeddedComm
         myImageIcon = IconManager.imgic214;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		if (stateOfError > 0)  {
 			Color c = g.getColor();
@@ -116,6 +115,7 @@ public class TMLADDelay extends TGCWithInternalComponent implements EmbeddedComm
         g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -140,17 +140,18 @@ public class TMLADDelay extends TGCWithInternalComponent implements EmbeddedComm
 		return ((TGCTimeDelay)tgcomponent[0]).getUnit();
 	}
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_DELAY;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
-    
 }
-
diff --git a/src/main/java/ui/tmlad/TMLADDelayInterval.java b/src/main/java/ui/tmlad/TMLADDelayInterval.java
index f7bb0e9277b593d72406f83cf2cc8102f504f46b..d7234a843973ff198f44154178de647737fcf1da 100755
--- a/src/main/java/ui/tmlad/TMLADDelayInterval.java
+++ b/src/main/java/ui/tmlad/TMLADDelayInterval.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADComponentWithSubcomponents;
 import ui.util.IconManager;
 
 import java.awt.*;
@@ -55,11 +53,11 @@ import java.awt.geom.Line2D;
 * @version 1.0 10/11/2008
 * @author Ludovic APVRILLE
  */
-public class TMLADDelayInterval extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADDelayInterval extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     private int lineLength = 5;
 	private int textX, textY;
-    private int ilength = 10;
-    private int lineLength1 = 2;
+//    private int ilength = 10;
+//    private int lineLength1 = 2;
 	private int incrementY = 3;
     private int segment = 4;
 	
@@ -99,8 +97,8 @@ public class TMLADDelayInterval extends TGCWithInternalComponent implements Embe
         myImageIcon = IconManager.imgic214;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
-		
 		if (stateOfError > 0)  {
 			Color c = g.getColor();
 			switch(stateOfError) {
@@ -130,6 +128,7 @@ public class TMLADDelayInterval extends TGCWithInternalComponent implements Embe
         }
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -158,10 +157,12 @@ public class TMLADDelayInterval extends TGCWithInternalComponent implements Embe
         ((TGCTimeDelay)(tgcomponent[0])).setMaxDelay(val);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_INTERVAL_DELAY;
     }
     
+    @Override
     public int getDefaultConnector() {
 		return TGComponentManager.CONNECTOR_TMLAD;
     }
@@ -170,8 +171,8 @@ public class TMLADDelayInterval extends TGCWithInternalComponent implements Embe
 		return ((TGCTimeDelay)tgcomponent[0]).getUnit();
 	}
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
-    
 }
diff --git a/src/main/java/ui/tmlad/TMLADEncrypt.java b/src/main/java/ui/tmlad/TMLADEncrypt.java
index 11ecb9a3809b83e37eac778954fbbea9b4afff1d..f3fac8dc34d48549623c0e285519c9390824ec0a 100755
--- a/src/main/java/ui/tmlad/TMLADEncrypt.java
+++ b/src/main/java/ui/tmlad/TMLADEncrypt.java
@@ -44,6 +44,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 import ui.window.JDialogCryptographicConfiguration;
 
@@ -59,7 +60,7 @@ import java.awt.geom.Line2D;
  * @author Ludovic APVRILLE
  * @version 1.0 21/11/2005
  */
-public class TMLADEncrypt extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADEncrypt extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     private int lineLength = 5;
     //  private int textX, textY;
     private int ex = 5;
@@ -101,6 +102,7 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde
         myImageIcon = IconManager.imgic214;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         if (stateOfError > 0) {
             Color c = g.getColor();
@@ -181,8 +183,8 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde
         g.drawImage(IconManager.imgic7000.getImage(), x - 22, y + height / 2, null);
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-
         //JDialogTwoString jdts = new JDialogTwoString(frame, "Setting channel's properties", "Channel name", channelName, "Nb of samples", nbOfSamples);]
         String[] values = new String[]{securityContext, type, message_overhead, encTime, size, nonce, formula, decTime, key, algorithm};
         String[] nonces = tdp.getMGUI().getAllNonce();
@@ -209,6 +211,7 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde
         return false;
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -225,6 +228,7 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde
         return null;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data secContext=\"");
@@ -252,18 +256,13 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde
 
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
-        //
         try {
-
             NodeList nli;
             Node n1, n2;
             Element elt;
             //    int k;
             //     String s;
 
-            //
-            //
-
             for (int i = 0; i < nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
@@ -292,20 +291,22 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_ENCRYPT;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLAD;
     }
 
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
 }
-
diff --git a/src/main/java/ui/tmlad/TMLADExecC.java b/src/main/java/ui/tmlad/TMLADExecC.java
index e8df888ce212a9761a0063c8e4552d6ded723c7d..c7be2687dd657920ed6b6ac0e6c01318711eb433 100755
--- a/src/main/java/ui/tmlad/TMLADExecC.java
+++ b/src/main/java/ui/tmlad/TMLADExecC.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADComponentWithSubcomponents;
 import ui.util.IconManager;
 
 import java.awt.*;
@@ -55,7 +53,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 21/05/2008
  * @author Ludovic APVRILLE
  */
-public class TMLADExecC extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADExecC extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     private int lineLength = 5;
     private int textX, textY;
     private int ilength = 10;
@@ -93,6 +91,7 @@ public class TMLADExecC extends TGCWithInternalComponent implements EmbeddedComm
         myImageIcon = IconManager.imgic214;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		if (stateOfError > 0)  {
 			Color c = g.getColor();
@@ -114,6 +113,7 @@ public class TMLADExecC extends TGCWithInternalComponent implements EmbeddedComm
         g.drawLine(x + (width/2) - lineLength1, y+(height-ilength)/2, x + (width/2)- lineLength1, y+(height+ilength)/2);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -134,17 +134,18 @@ public class TMLADExecC extends TGCWithInternalComponent implements EmbeddedComm
         tgcomponent[0].setValue(value);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_EXECC;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
-    
 }
-
diff --git a/src/main/java/ui/tmlad/TMLADExecCInterval.java b/src/main/java/ui/tmlad/TMLADExecCInterval.java
index 3ba864c72349c86ccff8559eb0a0144fadc007e8..bf07c7eafebfad4b5f9e7dbb541b9cb3b648fae4 100755
--- a/src/main/java/ui/tmlad/TMLADExecCInterval.java
+++ b/src/main/java/ui/tmlad/TMLADExecCInterval.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADComponentWithSubcomponents;
 import ui.util.IconManager;
 
 import java.awt.*;
@@ -55,7 +53,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 21/05/2008
  * @author Ludovic APVRILLE
  */
-public class TMLADExecCInterval extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADExecCInterval extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     private int lineLength = 5;
     private int textX, textY;
     private int ilength = 10;
@@ -93,6 +91,7 @@ public class TMLADExecCInterval extends TGCWithInternalComponent implements Embe
         myImageIcon = IconManager.imgic214;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		if (stateOfError > 0)  {
 			Color c = g.getColor();
@@ -114,6 +113,7 @@ public class TMLADExecCInterval extends TGCWithInternalComponent implements Embe
         g.drawLine(x + (width/2) - lineLength1, y+(height-ilength)/2, x + (width/2) - lineLength1, y+(height+ilength)/2);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -142,14 +142,17 @@ public class TMLADExecCInterval extends TGCWithInternalComponent implements Embe
         ((TGCTimeInterval)(tgcomponent[0])).setMaxDelay(val);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_EXECC_INTERVAL;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
     
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
diff --git a/src/main/java/ui/tmlad/TMLADExecI.java b/src/main/java/ui/tmlad/TMLADExecI.java
index cac0941253553a4a66a28e5f02be97ca969f8d42..024b0c57605c721713c0afe1e10b36e62a3dc7f5 100755
--- a/src/main/java/ui/tmlad/TMLADExecI.java
+++ b/src/main/java/ui/tmlad/TMLADExecI.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADComponentWithSubcomponents;
 import ui.util.IconManager;
 
 import java.awt.*;
@@ -55,7 +53,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 21/11/2005
  * @author Ludovic APVRILLE
  */
-public class TMLADExecI extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, CheckableLatency, BasicErrorHighlight {
+public class TMLADExecI extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, CheckableLatency, BasicErrorHighlight {
     private int lineLength = 5;
     private int textX, textY;
     private int ilength = 10;
@@ -93,6 +91,7 @@ public class TMLADExecI extends TGCWithInternalComponent implements EmbeddedComm
         myImageIcon = IconManager.imgic214;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		if (stateOfError > 0)  {
 			Color c = g.getColor();
@@ -114,6 +113,7 @@ public class TMLADExecI extends TGCWithInternalComponent implements EmbeddedComm
         g.drawLine(x + (width/2), y+(height-ilength)/2, x + (width/2), y+(height+ilength)/2);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -134,16 +134,18 @@ public class TMLADExecI extends TGCWithInternalComponent implements EmbeddedComm
         tgcomponent[0].setValue(value);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_EXECI;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
     
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
 }
-
diff --git a/src/main/java/ui/tmlad/TMLADExecIInterval.java b/src/main/java/ui/tmlad/TMLADExecIInterval.java
index 585478caeca499e4637deffb7518be25b0b6afcd..49c6b1546867e49a1c55c881509aec503ff0ddd9 100755
--- a/src/main/java/ui/tmlad/TMLADExecIInterval.java
+++ b/src/main/java/ui/tmlad/TMLADExecIInterval.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADComponentWithSubcomponents;
 import ui.util.IconManager;
 
 import java.awt.*;
@@ -55,7 +53,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 02/12/2005
  * @author Ludovic APVRILLE
  */
-public class TMLADExecIInterval extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADExecIInterval extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent */ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     private int lineLength = 5;
     private int textX, textY;
     private int ilength = 10;
@@ -93,6 +91,7 @@ public class TMLADExecIInterval extends TGCWithInternalComponent implements Embe
         myImageIcon = IconManager.imgic214;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		if (stateOfError > 0)  {
 			Color c = g.getColor();
@@ -114,6 +113,7 @@ public class TMLADExecIInterval extends TGCWithInternalComponent implements Embe
         g.drawLine(x + (width/2), y+(height-ilength)/2, x + (width/2), y+(height+ilength)/2);
     }
     
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -142,16 +142,18 @@ public class TMLADExecIInterval extends TGCWithInternalComponent implements Embe
         ((TGCTimeInterval)(tgcomponent[0])).setMaxDelay(val);
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_EXECI_INTERVAL;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
-    
 }
diff --git a/src/main/java/ui/tmlad/TMLADForEverLoop.java b/src/main/java/ui/tmlad/TMLADForEverLoop.java
index 58cb33eb2e3adaf9e5b44f74782ab5115df4894b..a59a009886c6c686b298f12d51eb4b02e1b3ff7d 100755
--- a/src/main/java/ui/tmlad/TMLADForEverLoop.java
+++ b/src/main/java/ui/tmlad/TMLADForEverLoop.java
@@ -36,17 +36,21 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
+import java.awt.Color;
+import java.awt.Graphics;
 
-import java.awt.*;
-import java.awt.geom.Line2D;
+import ui.AllowedBreakpoint;
+import ui.BasicErrorHighlight;
+import ui.ColorManager;
+import ui.EmbeddedComment;
+import ui.ErrorHighlight;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADForLoop;
 
 /**
  * Class TMLADForEverLoop
@@ -55,41 +59,39 @@ import java.awt.geom.Line2D;
  * @version 1.0 19/11/2008
  * @author Ludovic APVRILLE
  */
-public class TMLADForEverLoop extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
-    protected int lineLength = 5;
-    protected int textX =  5;
-    protected int textY =  15;
-    protected int arc = 5;
-	
-	protected int stateOfError = 0; // Not yet checked
+public class TMLADForEverLoop extends TADForLoop /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+//    protected int lineLength = 5;
+//    protected int textX =  5;
+//    protected int textY =  15;
+//    protected int arc = 5;
+//	
+//	protected int stateOfError = 0; // Not yet checked
     
     public TMLADForEverLoop(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
         
-        width = 30;
-        height = 20;
-        minWidth = 30;
+//        width = 30;
+//        height = 20;
+//        minWidth = 30;
         
         nbConnectingPoint = 2;
         connectingPoint = new TGConnectingPoint[2];
-        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop
+        connectingPoint[ INDEX_ENTER_LOOP ] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+        connectingPoint[ INDEX_INSIDE_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop
         //connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp
         
-        moveable = true;
-        editable = true;
-        removable = true;
+//        moveable = true;
+//        editable = true;
+//        removable = true;
         
 		value = "Loop for ever";
         name = "for ever loop";
         
-        myImageIcon = IconManager.imgic912;
+       // myImageIcon = IconManager.imgic912;
     }
 	
-    
+    @Override
     public void internalDrawing(Graphics g) {
-		
-	
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -142,32 +144,33 @@ public class TMLADForEverLoop extends TGCWithoutInternalComponent implements Emb
         return false;
     }*/
     
-    public TGComponent isOnMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-        
-        if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
-			return this;	
-		}
-		
-		if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) {
-			return this;	
-		}
-        
-        return null;
-    }
-    
+//    public TGComponent isOnMe(int _x, int _y) {
+//        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//            return this;
+//        }
+//        
+//        if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
+//			return this;	
+//		}
+//		
+//		if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) {
+//			return this;	
+//		}
+//        
+//        return null;
+//    }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_FOR_EVER_LOOP;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
-	
-    public void setStateAction(int _stateAction) {
-		stateOfError = _stateAction;
-	}
+//	
+//    public void setStateAction(int _stateAction) {
+//		stateOfError = _stateAction;
+//	}
 }
diff --git a/src/main/java/ui/tmlad/TMLADForLoop.java b/src/main/java/ui/tmlad/TMLADForLoop.java
index c214fd743cc6d7e5e576502a4401cf5e3e220306..75e89fcb6ccc172803358b7d42af2e7dedad1763 100755
--- a/src/main/java/ui/tmlad/TMLADForLoop.java
+++ b/src/main/java/ui/tmlad/TMLADForLoop.java
@@ -36,22 +36,31 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.tmlad;
 
+import java.awt.Color;
+import java.awt.Graphics;
 
+import javax.swing.JFrame;
 
-package ui.tmlad;
-
-import myutil.GraphicLib;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import ui.*;
-import ui.util.IconManager;
-import ui.window.JDialogMultiString;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
+import myutil.GraphicLib;
+import ui.AllowedBreakpoint;
+import ui.BasicErrorHighlight;
+import ui.ColorManager;
+import ui.EmbeddedComment;
+import ui.ErrorHighlight;
+import ui.GTURTLEModeling;
+import ui.MalformedModelingException;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADForLoop;
+import ui.window.JDialogMultiString;
 
 /**
  * Class TMLADForLoop
@@ -60,47 +69,48 @@ import java.awt.geom.Line2D;
  * @version 1.0 21/11/2005
  * @author Ludovic APVRILLE
  */
-public class TMLADForLoop extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
-
-    private final static String IN_LOOP = "inside loop";
-    private final static String EXIT_LOOP = "exit loop";
+public class TMLADForLoop extends TADForLoop /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
 
-    
-    protected int lineLength = 5;
-    protected int textX =  5;
-    protected int textY =  15;
-    protected int arc = 5;
+//    private final static String IN_LOOP = "inside loop";
+//    private final static String EXIT_LOOP = "exit loop";
+//
+//    
+//    protected int lineLength = 5;
+//    protected int textX =  5;
+//    protected int textY =  15;
+//    protected int arc = 5;
 
     protected String init = "i=0";
     protected String condition = "i<5";
     protected String increment = "i = i+1";
 
-    protected int stateOfError = 0; // Not yet checked
+  //  protected int stateOfError = 0; // Not yet checked
 
     public TMLADForLoop(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-        width = 30;
-        height = 20;
-        minWidth = 30;
+//        width = 30;
+//        height = 20;
+//        minWidth = 30;
 
         nbConnectingPoint = 3;
         connectingPoint = new TGConnectingPoint[3];
-        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop
-        connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp
-
-        moveable = true;
-        editable = true;
-        removable = true;
+        connectingPoint[ INDEX_ENTER_LOOP ] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+        connectingPoint[ INDEX_INSIDE_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop
+        connectingPoint[ INDEX_EXIT_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp
+//
+//        moveable = true;
+//        editable = true;
+//        removable = true;
 
         makeValue();
 
         name = "for loop";
 
-        myImageIcon = IconManager.imgic912;
+      //  myImageIcon = IconManager.imgic912;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -110,7 +120,7 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde
             //updateConnectingPoints();
         }
 
-        if (stateOfError > 0)  {
+        if ( isEnabled() && stateOfError > 0 )  {
             Color c = g.getColor();
             switch(stateOfError) {
             case ErrorHighlight.OK:
@@ -130,13 +140,13 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde
 
         g.drawString(value, x + (width - w) / 2 , y + textY);
 
-	// Info on loops
-	g.drawString(IN_LOOP, x+width+2, y+height/2);
-	//int wTmp =  g.getFontMetrics().stringWidth(EXIT_LOOP);
-	g.drawString(EXIT_LOOP, x+width/2+2, y+height+10);
-	
+		// Info on loops
+		g.drawString(IN_LOOP, x+width+2, y+height/2);
+		//int wTmp =  g.getFontMetrics().stringWidth(EXIT_LOOP);
+		g.drawString(EXIT_LOOP, x+width/2+2, y+height+10);
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String [] labels = new String[3];
         String [] values = new String[3];
@@ -163,26 +173,25 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde
         }
 
         return false;
-
-    }
-
-    public TGComponent isOnMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-
-        if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        return null;
     }
 
-    public void makeValue() {
+//    public TGComponent isOnMe(int _x, int _y) {
+//        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//            return this;
+//        }
+//
+//        if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        return null;
+//    }
+
+    private void makeValue() {
         value = "for(" + init + ";" + condition + ";" + increment + ")";
     }
 
@@ -202,6 +211,7 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde
         return increment;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data init=\"");
@@ -219,16 +229,12 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
         //
         try {
-
             NodeList nli;
             Node n1, n2;
             Element elt;
 //            int k;
 //            String s;
 
-            //
-            //
-
             for(int i=0; i<nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
@@ -251,23 +257,22 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeValue();
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_FOR_LOOP;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLAD;
     }
-
-    public void setStateAction(int _stateAction) {
-        stateOfError = _stateAction;
-    }
-
-
+//
+//    public void setStateAction(int _stateAction) {
+//        stateOfError = _stateAction;
+//    }
 }
diff --git a/src/main/java/ui/tmlad/TMLADForStaticLoop.java b/src/main/java/ui/tmlad/TMLADForStaticLoop.java
index 1c85ff268f29ce7f136ba3de759bdffcab9fdc49..5f38637077528baa1aec8360ebf6aaf79672fcc0 100755
--- a/src/main/java/ui/tmlad/TMLADForStaticLoop.java
+++ b/src/main/java/ui/tmlad/TMLADForStaticLoop.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADForLoop;
 import ui.util.IconManager;
 
 import javax.swing.*;
@@ -56,50 +54,51 @@ import java.awt.geom.Line2D;
  * @version 1.0 21/11/2005
  * @author Ludovic APVRILLE
  */
-public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
-    private final static String IN_LOOP = "inside loop";
-    private final static String EXIT_LOOP = "exit loop";
-
-    protected int lineLength = 5;
-    protected int textX =  5;
-    protected int textY =  15;
-    protected int arc = 5;
+public class TMLADForStaticLoop extends TADForLoop /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+//    private final static String IN_LOOP = "inside loop";
+//    private final static String EXIT_LOOP = "exit loop";
+//
+//    protected int lineLength = 5;
+//    protected int textX =  5;
+//    protected int textY =  15;
+//    protected int arc = 5;
     protected String valueLoop = "";
 
-    protected int stateOfError = 0; // Not yet checked
+    //protected int stateOfError = 0; // Not yet checked
 
     public TMLADForStaticLoop(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-        width = 30;
-        height = 20;
-        minWidth = 30;
+//        width = 30;
+//        height = 20;
+//        minWidth = 30;
 
         nbConnectingPoint = 3;
         connectingPoint = new TGConnectingPoint[3];
-        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop
-        connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp
+        connectingPoint[ INDEX_ENTER_LOOP ] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+        connectingPoint[ INDEX_INSIDE_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop
+        connectingPoint[ INDEX_EXIT_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp
 
-        moveable = true;
-        editable = true;
-        removable = true;
+//        moveable = true;
+//        editable = true;
+//        removable = true;
 
         value = "10";
         name = "for loop";
 
-        myImageIcon = IconManager.imgic912;
+//        myImageIcon = IconManager.imgic912;
     }
 
-    public void makeValueLoop() {
+    private void makeValueLoop() {
         valueLoop = "Loop " + value + " times";
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
-
         if (valueLoop.length() == 0) {
             makeValueLoop();
         }
+
         int w  = g.getFontMetrics().stringWidth(valueLoop);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -134,6 +133,7 @@ public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements E
 	
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String text = "Static for loop : ";
         String s = (String)JOptionPane.showInputDialog(frame, text,
@@ -145,8 +145,6 @@ public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements E
             s = s.trim();
         }
 
-        //
-
         if ((s != null) && (s.length() > 0) && (s.matches("\\d*"))) {
             setValue(s);
             makeValueLoop();
@@ -157,6 +155,7 @@ public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements E
         return false;
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -173,16 +172,17 @@ public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements E
         return null;
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_FOR_STATIC_LOOP;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLAD;
     }
-
-    public void setStateAction(int _stateAction) {
-        stateOfError = _stateAction;
-    }
+//
+//    public void setStateAction(int _stateAction) {
+//        stateOfError = _stateAction;
+//    }
 }
diff --git a/src/main/java/ui/tmlad/TMLADNotifiedEvent.java b/src/main/java/ui/tmlad/TMLADNotifiedEvent.java
index c48a8ba84807206ab4fe9f10ec21b9400bb21719..174ae7f50293825ebb3c860cc224936ad96626a7 100755
--- a/src/main/java/ui/tmlad/TMLADNotifiedEvent.java
+++ b/src/main/java/ui/tmlad/TMLADNotifiedEvent.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
@@ -46,6 +43,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 import ui.window.JDialogMultiString;
 
@@ -60,7 +58,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 27/10/2006
  * @author Ludovic APVRILLE
  */
-public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADNotifiedEvent extends TADComponentWithoutSubcomponents/* Issue #69TGCWithoutInternalComponent */ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -94,6 +92,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E
         myImageIcon = IconManager.imgic904;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 3 * textX);
@@ -147,6 +146,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E
         g.drawString(value, x + linebreak + textX1, y + textY);
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -159,7 +159,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E
         return null;
     }
     
-    public void makeValue() {
+    private void makeValue() {
         value = result + "=?" + eventName + "()";
     }
     
@@ -180,6 +180,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E
         return value;
     }
     
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String [] labels = new String[2];
         String [] values = new String[2];
@@ -205,6 +206,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E
          
     }
     
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data eventName=\"");
@@ -218,18 +220,13 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E
     
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
-        //
         try {
-            
             NodeList nli;
             Node n1, n2;
             Element elt;
 //            int k;
 //            String s;
             
-            //
-            //
-            
             for(int i=0; i<nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
@@ -251,23 +248,22 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E
             }
             
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeValue();
     }
     
-
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_NOTIFIED_EVENT;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
 	
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
-    
-    
 }
diff --git a/src/main/java/ui/tmlad/TMLADRandom.java b/src/main/java/ui/tmlad/TMLADRandom.java
index 50879302ac79cdb469c0bc0b4f15f81fb558ae1c..45e41fe525452fe78f1469450f236f90cb7ad5ec 100755
--- a/src/main/java/ui/tmlad/TMLADRandom.java
+++ b/src/main/java/ui/tmlad/TMLADRandom.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
@@ -46,6 +43,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 import ui.window.JDialogTMLADRandom;
 
@@ -60,7 +58,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 10/06/2008
  * @author Ludovic APVRILLE
  */
-public class TMLADRandom extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADRandom extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent */implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -97,12 +95,12 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded
         myImageIcon = IconManager.imgic912;
     }
 	
-	public void makeValue() {
+	private void makeValue() {
 		valueRandom = variable + " = RANDOM" + functionId + "(" + minValue + ", " + maxValue + ")";
 	}
     
+	@Override
     public void internalDrawing(Graphics g) {
-		
 		if (valueRandom.length() == 0) {
 			makeValue();
 		}
@@ -136,6 +134,7 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded
         g.drawString(valueRandom, x + (width - w) / 2 , y + textY);
     }
 	
+	@Override
 	public boolean editOndoubleClick(JFrame frame) {
         boolean error = false;
 		String errors = "";
@@ -191,6 +190,7 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded
         return true;
     }
     
+	@Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -223,6 +223,7 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded
 		return functionId;
 	}
 	
+	@Override
 	protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data variable=\"");
@@ -240,18 +241,13 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded
     
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
-        //
         try {
-            
             NodeList nli;
             Node n1, n2;
             Element elt;
          //   int k;
             String s;
             
-            //
-            //
-            
             for(int i=0; i<nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
@@ -281,23 +277,23 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded
             }
             
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeValue();
     }
     
-    
+	@Override
     public int getType() {
         return TGComponentManager.TMLAD_RANDOM;
     }
     
+	@Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+		return TGComponentManager.CONNECTOR_TMLAD;
     }
 	
+	@Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
-	
-    
 }
diff --git a/src/main/java/ui/tmlad/TMLADReadChannel.java b/src/main/java/ui/tmlad/TMLADReadChannel.java
index 97b2a4358cde48b05e00ece0fbda06432b9d9e4d..0e4ec24024cbc7581e7e30876891dc4e86e2189f 100755
--- a/src/main/java/ui/tmlad/TMLADReadChannel.java
+++ b/src/main/java/ui/tmlad/TMLADReadChannel.java
@@ -36,26 +36,41 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.tmlad;
 
-import myutil.GraphicLib;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.geom.Line2D;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.swing.JFrame;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import ui.*;
+
+import myutil.GraphicLib;
+import ui.AllowedBreakpoint;
+import ui.BasicErrorHighlight;
+import ui.CheckableAccessibility;
+import ui.CheckableLatency;
+import ui.ColorManager;
+import ui.EmbeddedComment;
+import ui.ErrorHighlight;
+import ui.LinkedReference;
+import ui.MalformedModelingException;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
-import ui.window.JDialogMultiString;
-import myutil.*;
 import ui.window.JDialogMultiStringAndTabs;
 import ui.window.TabInfo;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.ArrayList;
-import java.util.concurrent.ConcurrentHashMap;
-
 /**
  * Class TMLADReadChannel
  * Action of writing data in channel
@@ -64,8 +79,8 @@ import java.util.concurrent.ConcurrentHashMap;
  * @author Ludovic APVRILLE
  * @version 1.0 21/11/2005
  */
-public class TMLADReadChannel extends TGCWithoutInternalComponent implements CheckableAccessibility, LinkedReference, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
-    private ConcurrentHashMap<String, String> latencyVals;
+public class TMLADReadChannel extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements CheckableAccessibility, LinkedReference, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+    private Map<String, String> latencyVals;
     protected int lineLength = 5;
     protected int textX = 5;
     protected int textX0 = 2;
@@ -117,17 +132,17 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         myImageIcon = IconManager.imgic906;
         latencyVals = new ConcurrentHashMap<String, String>();
         //latencyVals.put("sendChannel: sensorData", "3");
-
     }
 
 	/*public void addLatency(String name, String num){
         latencyVals.put(name,num);
 	}*/
 
-    public ConcurrentHashMap<String, String> getLatencyMap() {
+    public Map<String, String> getLatencyMap() {
         return latencyVals;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         int w = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -201,7 +216,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         }
     }
 
-    public void drawLatencyInformation(Graphics g) {
+    private void drawLatencyInformation(Graphics g) {
         int index = 1;
         for (String s : latencyVals.keySet()) {
             int w = g.getFontMetrics().stringWidth(s);
@@ -213,9 +228,8 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         }
     }
 
-    public void drawReachabilityInformation(Graphics g) {
+    private void drawReachabilityInformation(Graphics g) {
         if (reachabilityInformation > 0) {
-
             Color c = g.getColor();
             Color c1;
             switch (reachabilityInformation) {
@@ -242,6 +256,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         }
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -270,6 +285,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         return value;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         TabInfo tab1 = new TabInfo("Name and samples");
         String[] labels = new String[2];
@@ -280,7 +296,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         values[1] = nbOfSamples;
         tab1.labels=labels;
         tab1.values =  values;
-        ArrayList<String[]> help = new ArrayList<String[]>();
+        List<String[]> help = new ArrayList<String[]>();
         String[] allInChannels = tdp.getMGUI().getAllInChannels();
         if (isAttacker) {
             allInChannels = tdp.getMGUI().getAllCompInChannels();
@@ -307,7 +323,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         tab2.values =  values;
         tab2.help = help;
 
-        ArrayList<TabInfo> tabs = new ArrayList<>();
+        List<TabInfo> tabs = new ArrayList<>();
         tabs.add(tab1);
         tabs.add(tab2);
 
@@ -328,8 +344,6 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         }
 
         return false;
-
-
     }
 
     public void setSamples(String sp) {
@@ -337,6 +351,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         makeValue();
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data channelName=\"");
@@ -388,12 +403,11 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeValue();
     }
 
-
     public String getSecurityContext() {
         return securityContext;
     }
@@ -406,18 +420,22 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         return isAttacker;
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_READ_CHANNEL;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLAD;
     }
 
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
-	public boolean getEncForm(){
+
+    public boolean getEncForm(){
 		return isEncForm;
 	}
 		
@@ -430,5 +448,4 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         channelName = s;
         makeValue();
     }
-
 }
diff --git a/src/main/java/ui/tmlad/TMLADReadRequestArg.java b/src/main/java/ui/tmlad/TMLADReadRequestArg.java
index f6d1b240b784acb2a6fcfe28c49eda9b9eb4b66c..89a6fd960122b7adea9cf65d68f1c0ddcbc10132 100755
--- a/src/main/java/ui/tmlad/TMLADReadRequestArg.java
+++ b/src/main/java/ui/tmlad/TMLADReadRequestArg.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
@@ -46,6 +43,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 import ui.window.JDialogMultiString;
 
@@ -60,7 +58,7 @@ import java.awt.geom.Line2D;
 * @version 1.0 11/02/201
 * @author Ludovic APVRILLE
  */
-public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADReadRequestArg extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -152,8 +150,8 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements
 		return value;
 	}
 	
+	@Override
 	public void internalDrawing(Graphics g) {
-		
 		if (value.length() == 0) {
 			makeValue();
 		}
@@ -189,6 +187,7 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements
 		g.drawString(value, x + (width - w) / 2 , y + textY);
 	}
 	
+	@Override
 	public boolean editOndoubleClick(JFrame frame) {
 		String [] labels = new String[nParam];
 		String [] values = new String[nParam];
@@ -214,6 +213,7 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements
 		
 	}
 	
+	@Override
 	public TGComponent isOnMe(int _x, int _y) {
 		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
 			return this;
@@ -255,9 +255,6 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements
 			int k;
 			String s;
 			
-			//
-			//
-			
 			for(int i=0; i<nl.getLength(); i++) {
 				n1 = nl.item(i);
 				//
@@ -287,18 +284,18 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements
 		makeValue();
 	}
 	
-	
+	@Override
 	public int getType() {
 		return TGComponentManager.TMLAD_READ_REQUEST_ARG;
 	}
 	
+	@Override
 	public int getDefaultConnector() {
 		return TGComponentManager.CONNECTOR_TMLAD;
 	}
 	
+	@Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
-	
-	
 }
diff --git a/src/main/java/ui/tmlad/TMLADSelectEvt.java b/src/main/java/ui/tmlad/TMLADSelectEvt.java
index 8e48f75f1e2476b26b19eb1a9bd66df30b3ecfa9..693b65b5838544a27d216404b4c2d65f3c4afb4e 100755
--- a/src/main/java/ui/tmlad/TMLADSelectEvt.java
+++ b/src/main/java/ui/tmlad/TMLADSelectEvt.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 
 import java.awt.*;
@@ -55,7 +53,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 06/04/2007
  * @author Ludovic APVRILLE
  */
-public class TMLADSelectEvt extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADSelectEvt extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     private int lineLength = 10;
     private int lineOutLength = 25;
     //private int textX1, textY1, textX2, textY2, textX3, textY3;
@@ -96,8 +94,8 @@ public class TMLADSelectEvt extends TGCWithoutInternalComponent implements Embed
         myImageIcon = IconManager.imgic208;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
-		
 		if (stateOfError > 0)  {
 			Color c = g.getColor();
 			switch(stateOfError) {
@@ -126,9 +124,9 @@ public class TMLADSelectEvt extends TGCWithoutInternalComponent implements Embed
         
         //g.drawString("select", x, y + height/2 - 5);
         g.drawString("evt", x+7, y + height/2 + 3);
-
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -153,15 +151,27 @@ public class TMLADSelectEvt extends TGCWithoutInternalComponent implements Embed
         return null;
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_SELECT_EVT;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
     
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}	
+    
+    /* Issue #69
+     * (non-Javadoc)
+     * @see ui.AbstractCDElement#canBeDisabled()
+     */
+    @Override
+    public boolean canBeDisabled() {
+    	return false;
+    }
 }
diff --git a/src/main/java/ui/tmlad/TMLADSendEvent.java b/src/main/java/ui/tmlad/TMLADSendEvent.java
index 3d73447ce45756e2490add2cb573139b46e6159a..9715bc12867b78b620b0a303d7daba12a4c615b3 100755
--- a/src/main/java/ui/tmlad/TMLADSendEvent.java
+++ b/src/main/java/ui/tmlad/TMLADSendEvent.java
@@ -36,22 +36,37 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.tmlad;
 
-import myutil.GraphicLib;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.geom.Line2D;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JFrame;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import ui.*;
+
+import myutil.GraphicLib;
+import ui.AllowedBreakpoint;
+import ui.BasicErrorHighlight;
+import ui.CheckableAccessibility;
+import ui.CheckableLatency;
+import ui.ColorManager;
+import ui.EmbeddedComment;
+import ui.ErrorHighlight;
+import ui.MalformedModelingException;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 import ui.window.JDialogMultiString;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.ArrayList;
-
 /**
  * Class TMLADSendEvent
  * Action of sending an event
@@ -60,7 +75,7 @@ import java.util.ArrayList;
  * @author Ludovic APVRILLE
  * @version 1.0 21/11/2005
  */
-public class TMLADSendEvent extends TGCWithoutInternalComponent implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADSendEvent extends TADComponentWithoutSubcomponents implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX = 5;
     protected int textY = 15;
@@ -106,8 +121,8 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check
         myImageIcon = IconManager.imgic904;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
-
         int w = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -116,7 +131,8 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check
         }
 
 
-        if (stateOfError > 0) {
+        // Issue #69
+        if ( isEnabled() && stateOfError > 0) {
             Color c = g.getColor();
             switch (stateOfError) {
                 case ErrorHighlight.OK:
@@ -147,7 +163,12 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check
         int y1 = y + 1;
         int height1 = height;
         int width1 = width;
-        g.setColor(ColorManager.TML_PORT_EVENT);
+        
+        // Issue #69
+        if ( isEnabled() ) {
+        	g.setColor(ColorManager.TML_PORT_EVENT);
+        }
+        
         g.drawLine(x1, y1, x1 + width1 - linebreak, y1);
         g.drawLine(x1, y1 + height1, x1 + width1 - linebreak, y1 + height1);
         g.drawLine(x1, y1, x1, y1 + height1);
@@ -166,10 +187,9 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check
         g.drawString(value, x + (width - w) / 2, y + textY);
 
         drawReachabilityInformation(g);
-
     }
 
-    public void drawReachabilityInformation(Graphics g) {
+    private void drawReachabilityInformation(Graphics g) {
         if (reachabilityInformation > 0) {
 
             Color c = g.getColor();
@@ -194,6 +214,7 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check
         }
     }
 
+   // @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -206,7 +227,7 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check
         return null;
     }
 
-    public void makeValue() {
+    private void makeValue() {
         boolean first = true;
         value = eventName + "(";
         for (int i = 0; i < nParam; i++) {
@@ -269,6 +290,7 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check
         return value;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String[] labels = new String[nParam + 1];
         String[] values = new String[nParam + 1];
@@ -278,7 +300,8 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check
             labels[i + 1] = "Param #" + (i + 1);
             values[i + 1] = params[i];
         }
-        ArrayList<String[]> help = new ArrayList<String[]>();
+        
+        List<String[]> help = new ArrayList<String[]>();
         String[] allOutEvents = tdp.getMGUI().getAllOutEvents();
         help.add(allOutEvents);
 
diff --git a/src/main/java/ui/tmlad/TMLADSendRequest.java b/src/main/java/ui/tmlad/TMLADSendRequest.java
index 4d1a9033b76c54d5b05152561d59b2068f56f1a5..8bb62a0d90b6f78aca0583f55df0d55ce4de5240 100755
--- a/src/main/java/ui/tmlad/TMLADSendRequest.java
+++ b/src/main/java/ui/tmlad/TMLADSendRequest.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
@@ -46,13 +43,17 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 import ui.window.JDialogMultiString;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Graphics;
 import java.awt.geom.Line2D;
 import java.util.ArrayList;
+import java.util.List;
 
 /**
    * Class TMLADSendRequest
@@ -61,7 +62,7 @@ import java.util.ArrayList;
    * @version 1.0 18/11/2005
    * @author Ludovic APVRILLE
  */
-public class TMLADSendRequest extends TGCWithoutInternalComponent implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADSendRequest extends TADComponentWithoutSubcomponents/* Issue #69TGCWithoutInternalComponent*/ implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -107,6 +108,7 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che
         myImageIcon = IconManager.imgic902;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -157,11 +159,11 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che
         g.drawString("req", x+(width-w) / 2, y);
         g.drawString(value, x + (width - w) / 2 , y + textY);
 
-	drawReachabilityInformation(g);
+        drawReachabilityInformation(g);
     }
-    public void drawReachabilityInformation(Graphics g) {
+    
+    private void drawReachabilityInformation(Graphics g) {
         if (reachabilityInformation > 0) {
-
             Color c = g.getColor();
             Color c1;
             switch(reachabilityInformation) {
@@ -181,9 +183,10 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che
             g.fillRect(x-12, y-7, 9, 7);
             g.setColor(c);
             g.drawRect(x-12, y-7, 9, 7);
-
         }
     }
+
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -218,7 +221,6 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che
         return requestName;
     }
 
-
 	public void setRequestName(String name){
 		requestName = name;
 		makeValue();
@@ -263,6 +265,7 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che
         return value;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String [] labels = new String[nParam + 1];
         String [] values = new String[nParam + 1];
@@ -273,9 +276,9 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che
             values[i+1] = params[i];
         }
 
-	ArrayList<String []> help = new ArrayList<String []>();
-	String[] allOutRequests = tdp.getMGUI().getAllOutRequests();
-	help.add(allOutRequests);
+        List<String []> help = new ArrayList<String []>();
+        String[] allOutRequests = tdp.getMGUI().getAllOutRequests();
+        help.add(allOutRequests);
 
         JDialogMultiString jdms = new JDialogMultiString(frame, "Setting request's properties", nParam+1, labels, values, help);
     //    jdms.setSize(350, 300);
@@ -293,9 +296,9 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che
         }
 
         return false;
-
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data requestName=\"");
@@ -326,9 +329,6 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che
             int k;
             String s;
 
-            //
-            //
-
             for(int i=0; i<nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
@@ -354,22 +354,23 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeValue();
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_SEND_REQUEST;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLAD;
     }
 
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
-
 }
diff --git a/src/main/java/ui/tmlad/TMLADSequence.java b/src/main/java/ui/tmlad/TMLADSequence.java
index ce9d380867124519c4ba27305b237ea9205896ef..c29c9d814cfccf780f8bfe8d908b9a5b1c6cdb34 100755
--- a/src/main/java/ui/tmlad/TMLADSequence.java
+++ b/src/main/java/ui/tmlad/TMLADSequence.java
@@ -36,16 +36,15 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
+import ui.AllowedBreakpoint;
+import ui.EmbeddedComment;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADSequence;
 
 /**
  * Class TMLADSequence
@@ -54,66 +53,71 @@ import java.awt.*;
  * @version 1.0 13/03/2006
  * @author Ludovic APVRILLE
  */
-public class TMLADSequence extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint {
-    private int lineLength = 0;
-  private int textX, textY;
+public class TMLADSequence extends TADSequence /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint {
+   // private int lineLength = 0;
+    //private int textX, textY;
 
 	public TMLADSequence(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 		
-		
-		width = 150;
-		height = 5;
-                
-    textX = width - 6;
-		textY = height + 2;
-		
+//		width = 150;
+//		height = 5;
+//                
+//		textX = width - 6;
+//		textY = height + 2;
+//		
+//		nbConnectingPoint = 6;
+//		connectingPoint = new TGConnectingPoint[6];
+//		connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+//		connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0);
+//		connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.333, 1.0);
+//		connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0);
+//		connectingPoint[4] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.667, 1.0);
+//		connectingPoint[5] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.833, 1.0);
+//
+//		nbInternalTGComponent = 1;
+//		tgcomponent = new TGComponent[nbInternalTGComponent];
+//
+//		TGCOneLineText tgc = new TGCOneLineText(x+textX + 10, y+textY, textX +10 , textX + 10 , textY, textY, true, this, _tdp);
+//		tgc.setValue(">>");
+//		tgc.setName("Sequence");
+//    tgc.setEditable(false);
+//                
+//		tgcomponent[0] = tgc;
+//
+//		moveable = true;
+//		editable = false;
+//		removable = true;
+//
+//		name = "sequence";
+//		
+//		myImageIcon = IconManager.imgic206;
+	}
+
+	@Override
+	protected void createConnectingPoints() {
 		nbConnectingPoint = 6;
 		connectingPoint = new TGConnectingPoint[6];
 		connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-    connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0);
+		connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0);
 		connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.333, 1.0);
 		connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0);
 		connectingPoint[4] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.667, 1.0);
 		connectingPoint[5] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.833, 1.0);
-
-		nbInternalTGComponent = 1;
-		tgcomponent = new TGComponent[nbInternalTGComponent];
-
-		TGCOneLineText tgc = new TGCOneLineText(x+textX + 10, y+textY, textX +10 , textX + 10 , textY, textY, true, this, _tdp);
-		tgc.setValue(">>");
-		tgc.setName("Sequence");
-    tgc.setEditable(false);
-                
-		tgcomponent[0] = tgc;
-
-		moveable = true;
-		editable = false;
-		removable = true;
-
-		name = "sequence";
-		
-		myImageIcon = IconManager.imgic206;
 	}
     
-    public void internalDrawing(Graphics g) {
-		g.drawRect(x, y, width, height);
-		g.fillRect(x, y, width, height);
-	}
+//    public void internalDrawing(Graphics g) {
+//		g.drawRect(x, y, width, height);
+//		g.fillRect(x, y, width, height);
+//	}
 
-	public TGComponent isOnOnlyMe(int x1, int y1) {
-		if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
-			return this;
-		}
-		return null;
-	}
-	
+	@Override
     public int getType() {
         return TGComponentManager.TMLAD_SEQUENCE;
     }
     
+	@Override
     public int getDefaultConnector() {
       return TGComponentManager.CONNECTOR_TMLAD;
     }  
-    
 }
diff --git a/src/main/java/ui/tmlad/TMLADStartState.java b/src/main/java/ui/tmlad/TMLADStartState.java
index 5e0e06b9d56462d653809e1960fbac4a2925ab0e..0fa07b1319dba0045d4045d4c243ef2490af8de7 100755
--- a/src/main/java/ui/tmlad/TMLADStartState.java
+++ b/src/main/java/ui/tmlad/TMLADStartState.java
@@ -36,17 +36,14 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
-import java.awt.geom.Line2D;
+import ui.EmbeddedComment;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADStartState;
 
 /**
  * Class TMLADStartState
@@ -55,53 +52,61 @@ import java.awt.geom.Line2D;
  * @version 1.0 28/10/2005
  * @author Ludovic APVRILLE
  */
-public class TMLADStartState extends TGCWithoutInternalComponent implements EmbeddedComment{
+public class TMLADStartState extends TADStartState /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment{
     private int lineLength = 5;
     
     public TMLADStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-        
-        width = 15;
-        height = 15;
-        
+//        
+//        width = 15;
+//        height = 15;
+//        
+//        nbConnectingPoint = 1;
+//        connectingPoint = new TGConnectingPoint[1];
+//        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0);
+//        
+//        nbInternalTGComponent = 0;
+//        
+//        moveable = true;
+//        editable = false;
+//        removable = true;
+//        
+//        name = "start state";
+//        
+//        myImageIcon = IconManager.imgic222;
+    }
+
+    @Override
+    protected void createConnectingPoints() {
         nbConnectingPoint = 1;
         connectingPoint = new TGConnectingPoint[1];
         connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0);
-        
-        nbInternalTGComponent = 0;
-        
-        moveable = true;
-        editable = false;
-        removable = true;
-        
-        name = "start state";
-        
-        myImageIcon = IconManager.imgic222;
     }
     
-    public void internalDrawing(Graphics g) {
-        g.fillOval(x, y, width, height);
-        g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
-    }
-    
-    public TGComponent isOnMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-        
-        if ((int)(Line2D.ptSegDistSq(x+(width/2), y+height, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
-			return this;	
-		}
-        
-        return null;
-    }
+//    public void internalDrawing(Graphics g) {
+//        g.fillOval(x, y, width, height);
+//        g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
+//    }
+//    
+//    public TGComponent isOnMe(int _x, int _y) {
+//        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//            return this;
+//        }
+//        
+//        if ((int)(Line2D.ptSegDistSq(x+(width/2), y+height, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
+//			return this;	
+//		}
+//        
+//        return null;
+//    }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_START_STATE;
     }
     
+    @Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
-    
 }
diff --git a/src/main/java/ui/tmlad/TMLADStopState.java b/src/main/java/ui/tmlad/TMLADStopState.java
index 09cecbfca23954a0274e3342da25fa99ae0a53ac..516a2dcddad5fd7669d777b45092a8461bbfeceb 100755
--- a/src/main/java/ui/tmlad/TMLADStopState.java
+++ b/src/main/java/ui/tmlad/TMLADStopState.java
@@ -36,16 +36,15 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
+import ui.AllowedBreakpoint;
+import ui.EmbeddedComment;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADStopState;
 
 /**
  * Class TMLADStopState
@@ -54,59 +53,59 @@ import java.awt.*;
  * @version 1.0 28/10/2005
  * @author Ludovic APVRILLE
  */
-public class TMLADStopState extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint {
-    private int internalCircleSize = 16;
-    private int lineLength = 5;
+public class TMLADStopState extends TADStopState /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint {
+//    private int internalCircleSize = 16;
+//    private int lineLength = 5;
     
     public TMLADStopState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-        
-        width = 20;
-        height = 20;
-        
-        nbConnectingPoint = 1;
-        connectingPoint = new TGConnectingPoint[1];
-        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, - lineLength, true, false, 0.5, 0.0);
-        
-        nbInternalTGComponent = 0;
-        
-        moveable = true;
-        editable = false;
-        removable = true;
-        
-        name = "stop state";
-        
-        myImageIcon = IconManager.imgic210;
+//        
+//        width = 20;
+//        height = 20;
+//        
+//        nbConnectingPoint = 1;
+//        connectingPoint = new TGConnectingPoint[1];
+//        connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, - lineLength, true, false, 0.5, 0.0);
+//        
+//        nbInternalTGComponent = 0;
+//        
+//        moveable = true;
+//        editable = false;
+//        removable = true;
+//        
+//        name = "stop state";
+//        
+//        myImageIcon = IconManager.imgic210;
     }
     
-    public void internalDrawing(Graphics g) {
-        ColorManager.setColor(g, state, 0);
-        g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize);
-        g.drawOval(x, y, width, height);
-        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
-    }
-    
-    
-    public TGComponent isOnMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-        return null;
+    @Override
+	protected void createConnectingPoints() {
+      nbConnectingPoint = 1;
+      connectingPoint = new TGConnectingPoint[1];
+      connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, - lineLength, true, false, 0.5, 0.0);
     }
+//    public void internalDrawing(Graphics g) {
+//        ColorManager.setColor(g, state, 0);
+//        g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize);
+//        g.drawOval(x, y, width, height);
+//        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
+//    }
+//    
+//    
+//    public TGComponent isOnMe(int _x, int _y) {
+//        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//            return this;
+//        }
+//        return null;
+//    }
     
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_STOP_STATE;
     }
 	
+    @Override
 	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+    	return TGComponentManager.CONNECTOR_TMLAD;
     }
-    
 }
-
-
-
-
-
-
-
diff --git a/src/main/java/ui/tmlad/TMLADUnorderedSequence.java b/src/main/java/ui/tmlad/TMLADUnorderedSequence.java
index aca4f9bd327004739889f7edde30fc4a75646250..0df1f8d927889b4f42d3fbfa40adae92cadd6289 100755
--- a/src/main/java/ui/tmlad/TMLADUnorderedSequence.java
+++ b/src/main/java/ui/tmlad/TMLADUnorderedSequence.java
@@ -36,16 +36,15 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
+import ui.AllowedBreakpoint;
+import ui.EmbeddedComment;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADSequence;
 
 /**
  * Class TMLADUnorderedSequence
@@ -54,66 +53,77 @@ import java.awt.*;
  * @version 1.0 07/07/2010
  * @author Ludovic APVRILLE
  */
-public class TMLADUnorderedSequence extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint {
-    private int lineLength = 0;
-  private int textX, textY;
+public class TMLADUnorderedSequence extends TADSequence/* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint {
+//    private int lineLength = 0;
+//  private int textX, textY;
 
 	public TMLADUnorderedSequence(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 		
-		
-		width = 150;
-		height = 5;
-                
-    textX = width - 6;
-		textY = height + 2;
-		
+//		width = 150;
+//		height = 5;
+//                
+//    textX = width - 6;
+//		textY = height + 2;
+//		
+//		nbConnectingPoint = 6;
+//		connectingPoint = new TGConnectingPoint[6];
+//		connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
+//    connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0);
+//		connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.333, 1.0);
+//		connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0);
+//		connectingPoint[4] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.667, 1.0);
+//		connectingPoint[5] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.833, 1.0);
+//
+//		nbInternalTGComponent = 1;
+//		tgcomponent = new TGComponent[nbInternalTGComponent];
+//
+//		TGCOneLineText tgc = new TGCOneLineText(x+textX + 10, y+textY, textX +10 , textX + 10 , textY, textY, true, this, _tdp);
+//		tgc.setValue("<>");
+//		tgc.setName("Random sequence");
+//		tgc.setEditable(false);
+//                
+//		tgcomponent[0] = tgc;
+//
+//		moveable = true;
+//		editable = false;
+//		removable = true;
+//
+//		name = "random sequence";
+//		
+//		myImageIcon = IconManager.imgic206;
+	}
+    
+	@Override
+    protected void createConnectingPoints() {
 		nbConnectingPoint = 6;
 		connectingPoint = new TGConnectingPoint[6];
 		connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0);
-    connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0);
+		connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0);
 		connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.333, 1.0);
 		connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0);
 		connectingPoint[4] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.667, 1.0);
 		connectingPoint[5] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.833, 1.0);
-
-		nbInternalTGComponent = 1;
-		tgcomponent = new TGComponent[nbInternalTGComponent];
-
-		TGCOneLineText tgc = new TGCOneLineText(x+textX + 10, y+textY, textX +10 , textX + 10 , textY, textY, true, this, _tdp);
-		tgc.setValue("<>");
-		tgc.setName("Random sequence");
-		tgc.setEditable(false);
-                
-		tgcomponent[0] = tgc;
-
-		moveable = true;
-		editable = false;
-		removable = true;
-
-		name = "random sequence";
-		
-		myImageIcon = IconManager.imgic206;
-	}
-    
-    public void internalDrawing(Graphics g) {
-		g.drawRect(x, y, width, height);
-		g.fillRect(x, y, width, height);
 	}
+//    public void internalDrawing(Graphics g) {
+//		g.drawRect(x, y, width, height);
+//		g.fillRect(x, y, width, height);
+//	}
 
-	public TGComponent isOnOnlyMe(int x1, int y1) {
-		if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
-			return this;
-		}
-		return null;
-	}
+//	public TGComponent isOnOnlyMe(int x1, int y1) {
+//		if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
+//			return this;
+//		}
+//		return null;
+//	}
 	
+	@Override
     public int getType() {
         return TGComponentManager.TMLAD_UNORDERED_SEQUENCE;
     }
     
+	@Override
     public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLAD;
+		return TGComponentManager.CONNECTOR_TMLAD;
     }  
-    
 }
diff --git a/src/main/java/ui/tmlad/TMLADWaitEvent.java b/src/main/java/ui/tmlad/TMLADWaitEvent.java
index 91da01c21690508513f8276d4b1e27da9fac00d7..ae17151b2df4d2d5f186a09c4251719384ba35a8 100755
--- a/src/main/java/ui/tmlad/TMLADWaitEvent.java
+++ b/src/main/java/ui/tmlad/TMLADWaitEvent.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlad;
 
 import myutil.GraphicLib;
@@ -46,13 +43,17 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 import ui.window.JDialogMultiString;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Graphics;
 import java.awt.geom.Line2D;
 import java.util.ArrayList;
+import java.util.List;
 
 /**
    * Class TMLADWaitEvent
@@ -61,7 +62,7 @@ import java.util.ArrayList;
    * @version 1.0 21/11/2005
    * @author Ludovic APVRILLE
  */
-public class TMLADWaitEvent extends TGCWithoutInternalComponent implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADWaitEvent extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -107,6 +108,7 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
         myImageIcon = IconManager.imgic904;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -116,7 +118,8 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
             //updateConnectingPoints();
         }
 
-        if (stateOfError > 0)  {
+        // Issue #69
+        if ( isEnabled() && stateOfError > 0)  {
             Color c = g.getColor();
             switch(stateOfError) {
             case ErrorHighlight.OK:
@@ -141,7 +144,12 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
         int y1 = y + 1;
         int height1 = height;
         int width1 = width;
-        g.setColor(ColorManager.TML_PORT_EVENT);
+        
+        // Issue #69
+        if ( isEnabled() ) {
+        	g.setColor(ColorManager.TML_PORT_EVENT);
+        }
+
         g.drawLine(x1, y1, x1+width1, y1);
         g.drawLine(x1+width1, y1, x1+width1, y1+height1);
         g.drawLine(x1, y1+height1, x1+width1, y1+height1);
@@ -158,12 +166,12 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
         g.drawString("evt", x+(width-w) / 2, y);
         g.drawString(value, x + linebreak + textX1, y + textY);
 
-	drawReachabilityInformation(g);
-
+        drawReachabilityInformation(g);
     }
-    public void drawReachabilityInformation(Graphics g) {
-        if (reachabilityInformation > 0) {
 
+    private void drawReachabilityInformation(Graphics g) {
+    	// Issue #69
+        if ( isEnabled() && reachabilityInformation > 0 ) {
             Color c = g.getColor();
             Color c1;
             switch(reachabilityInformation) {
@@ -186,6 +194,8 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
 
         }
     }
+    
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -216,8 +226,6 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
 
     }
 
-	
-
     public String getEventName() {
         return eventName;
     }
@@ -268,6 +276,7 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
         return value;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String [] labels = new String[nParam + 1];
         String [] values = new String[nParam + 1];
@@ -278,9 +287,9 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
             values[i+1] = params[i];
         }
 
-	ArrayList<String []> help = new ArrayList<String []>();
-	String[] allInEvents = tdp.getMGUI().getAllInEvents();
-	help.add(allInEvents);
+        List<String []> help = new ArrayList<String []>();
+        String[] allInEvents = tdp.getMGUI().getAllInEvents();
+        help.add(allInEvents);
 
         JDialogMultiString jdms = new JDialogMultiString(frame, "Setting event's properties", nParam+1, labels, values, help);
       //  jdms.setSize(450, 300);
@@ -301,6 +310,7 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
 
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data eventName=\"");
@@ -359,22 +369,23 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeValue();
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_WAIT_EVENT;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLAD;
     }
 
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
-
 }
diff --git a/src/main/java/ui/tmlad/TMLADWriteChannel.java b/src/main/java/ui/tmlad/TMLADWriteChannel.java
index 3eb3ca19ac03d308891229890dce37ff025d1af7..f38f4dedba2a5f34977fa37aef4c0b706938c9b3 100755
--- a/src/main/java/ui/tmlad/TMLADWriteChannel.java
+++ b/src/main/java/ui/tmlad/TMLADWriteChannel.java
@@ -36,26 +36,42 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.tmlad;
 
-import myutil.Conversion;
-import myutil.GraphicLib;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.geom.Line2D;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.swing.JFrame;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import ui.*;
+
+import myutil.Conversion;
+import myutil.GraphicLib;
+import ui.AllowedBreakpoint;
+import ui.BasicErrorHighlight;
+import ui.CheckableAccessibility;
+import ui.CheckableLatency;
+import ui.ColorManager;
+import ui.EmbeddedComment;
+import ui.ErrorHighlight;
+import ui.LinkedReference;
+import ui.MalformedModelingException;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
-import ui.window.JDialogMultiString;
 import ui.window.JDialogMultiStringAndTabs;
 import ui.window.TabInfo;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.ArrayList;
-import java.util.concurrent.ConcurrentHashMap;
-
 /**
  * Class TMLADWriteChannel
  * Action of writting data in channel
@@ -64,7 +80,7 @@ import java.util.concurrent.ConcurrentHashMap;
  * @author Ludovic APVRILLE
  * @version 1.0 17/11/2005
  */
-public class TMLADWriteChannel extends TGCWithoutInternalComponent implements CheckableAccessibility, LinkedReference, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
+public class TMLADWriteChannel extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements CheckableAccessibility, LinkedReference, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight {
     protected int lineLength = 5;
     protected int textX = 5;
     protected int textY = 15;
@@ -72,15 +88,13 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
     protected int linebreak = 10;
     protected int decSec = 4;
 
-
-    private ConcurrentHashMap<String, String> latencyVals;
+    private Map<String, String> latencyVals;
 
     protected int latencyX = 30;
     protected int latencyY = 25;
     protected int textWidth = 10;
     protected int textHeight = 20;
 
-
     protected String channelName = "ch";
     protected String nbOfSamples = "1";
     protected String securityContext = "";
@@ -120,10 +134,11 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         latencyVals = new ConcurrentHashMap<String, String>();
     }
 
-    public ConcurrentHashMap<String, String> getLatencyMap() {
+    public Map<String, String> getLatencyMap() {
         return latencyVals;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         int w = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -197,7 +212,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         drawReachabilityInformation(g);
     }
 
-    public void drawLatencyInformation(Graphics g) {
+    private void drawLatencyInformation(Graphics g) {
         int index = 1;
         for (String s : latencyVals.keySet()) {
             int w = g.getFontMetrics().stringWidth(s);
@@ -209,12 +224,11 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         }
     }
 
-
     public void addLatency(String name, String num) {
         latencyVals.put(name, num);
     }
 
-    public void drawReachabilityInformation(Graphics g) {
+    private void drawReachabilityInformation(Graphics g) {
         if (reachabilityInformation > 0) {
 
             Color c = g.getColor();
@@ -243,6 +257,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         }
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -282,6 +297,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         return value;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         TabInfo tab1 = new TabInfo("Name and samples");
         String[] labels = new String[2];
@@ -295,7 +311,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         values[2] = securityContext;
 		labels[3] = "Attacker?";
 		values[3] = isAttacker ? "Yes" : "No"; */
-        ArrayList<String []> help = new ArrayList<String []>();
+        List<String []> help = new ArrayList<String []>();
 		String[] allOutChannels = tdp.getMGUI().getAllOutChannels();
 		if (isAttacker){
 			allOutChannels =tdp.getMGUI().getAllCompOutChannels();
@@ -328,7 +344,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         tab2.values =  values;
         tab2.help = help;
 
-        ArrayList<TabInfo> tabs = new ArrayList<>();
+        List<TabInfo> tabs = new ArrayList<>();
         tabs.add(tab1);
         tabs.add(tab2);
 
@@ -347,15 +363,13 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
             isEncForm = jdmsat.getString(1, 2).equals("Yes");
             makeValue();
             
-
-            
             return true;
         }
 
         return false;
-
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data channelName=\"");
@@ -375,16 +389,11 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
 
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
-        //
         try {
-
             NodeList nli;
             Node n1, n2;
             Element elt;
 
-            //
-            //
-
             for (int i = 0; i < nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
@@ -413,16 +422,17 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeValue();
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.TMLAD_WRITE_CHANNEL;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLAD;
     }
@@ -449,7 +459,6 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         securityContext = sc;
     }
 
-
     public boolean isAttacker() {
         return isAttacker;
     }
@@ -463,8 +472,8 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
 		isEncForm=encForm;
 	}
 
+    @Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
-
 }
diff --git a/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java b/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java
index 3358c81e3fd67605a8efadd60431fffbc13650d4..8c54b5663383e769bdb0e04106f94de0835e5910 100755
--- a/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java
+++ b/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlcompd;
 
 import myutil.GraphicLib;
@@ -49,8 +46,12 @@ import ui.*;
 import ui.util.IconManager;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
 import java.util.ArrayList;
+import java.util.List;
 import java.util.ListIterator;
 
 /**
@@ -111,6 +112,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
         myImageIcon = IconManager.imgic1200;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		int w;
 		int c;
@@ -158,7 +160,6 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 			currentFontSize = maxCurrentFontSize;
 
             displayText = currentFontSize >= minFontSize;
-			
 		}
 		
 		// Zoom is assumed to be computed
@@ -191,6 +192,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		}
     }
 	
+    @Override
 	public void rescale(double scaleFactor){
 		dtextX = (textX + dtextX) / oldScaleFactor * scaleFactor;
 		textX = (int)(dtextX);
@@ -199,6 +201,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		super.rescale(scaleFactor);
 	}
     
+    @Override
     public TGComponent isOnOnlyMe(int _x, int _y) {
 		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -206,7 +209,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
         return null;
     }
 
-    
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String s = (String)JOptionPane.showInputDialog(frame, "Name:", "Setting component name",
 		JOptionPane.PLAIN_MESSAGE, IconManager.imgic100,
@@ -233,25 +236,27 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
         return false;
     }
 	
-    
+    @Override
     public int getType() {
         return TGComponentManager.TMLCTD_CCOMPONENT;
     }
 	
+    @Override
 	public void wasSwallowed() {
 		myColor = null;
 	}
 	
+    @Override
 	public void wasUnswallowed() {
 		myColor = null;
 		setFather(null);
 		TDiagramPanel tdp = getTDiagramPanel();
 		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
-			
 	}
 	
+    @Override
 	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
-		 if (tgc instanceof TMLCCompositeComponent) {
+		if (tgc instanceof TMLCCompositeComponent) {
             return true;
         }
 		
@@ -268,9 +273,9 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
         }
 
         return tgc instanceof TMLCCompositePort;
-
     }
     
+    @Override
     public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
 		boolean swallowed = false;
 		
@@ -332,6 +337,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		return true;
     }
     
+    @Override
     public void removeSwallowedTGComponent(TGComponent tgc) {
 		//
 		if (tgc instanceof TMLCCompositePort) {
@@ -360,8 +366,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		 }
     }
     
-    
-    
+    @Override
     public void hasBeenResized() {
 		rescaled = true;
         for(int i=0; i<nbInternalTGComponent; i++) {
@@ -387,6 +392,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		}
     }
 	
+    @Override
 	public void resizeWithFather() {
         if ((father != null) && ((father instanceof TMLCCompositeComponent) ||(father instanceof TMLCPrimitiveComponent))) {
 			// Too large to fit in the father? -> resize it!
@@ -397,8 +403,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
         }
     }
 	
-	public java.util.List<TMLCPrimitiveComponent> getAllPrimitiveComponents() {
-		ArrayList<TMLCPrimitiveComponent> ll = new ArrayList<TMLCPrimitiveComponent>();
+	public List<TMLCPrimitiveComponent> getAllPrimitiveComponents() {
+		List<TMLCPrimitiveComponent> ll = new ArrayList<TMLCPrimitiveComponent>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
 			if (tgcomponent[i] instanceof TMLCCompositeComponent) {
 				ll.addAll(((TMLCCompositeComponent)tgcomponent[i]).getAllPrimitiveComponents());
@@ -415,8 +421,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		return ll;
 	}
 	
-	public ArrayList<TMLCRecordComponent> getAllRecordComponents() {
-		ArrayList<TMLCRecordComponent> ll = new ArrayList<TMLCRecordComponent>();
+	public List<TMLCRecordComponent> getAllRecordComponents() {
+		List<TMLCRecordComponent> ll = new ArrayList<TMLCRecordComponent>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
 			if (tgcomponent[i] instanceof TMLCCompositeComponent) {
 				ll.addAll(((TMLCCompositeComponent)tgcomponent[i]).getAllRecordComponents());
@@ -433,7 +439,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		return ll;
 	}
 	
-	public void getAllCompositeComponents(ArrayList<String> list, String _name) {
+	public void getAllCompositeComponents( List<String> list, String _name) {
 		String s;
 		TMLCCompositeComponent tmlcc;
 		for(int i=0; i<nbInternalTGComponent; i++) {
@@ -446,8 +452,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		}
 	}
 	
-	public ArrayList<TMLCCompositePort> getAllInternalCompositePorts() {
-		ArrayList<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>();
+	public List<TMLCCompositePort> getAllInternalCompositePorts() {
+		List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
 			if (tgcomponent[i] instanceof TMLCCompositeComponent) {
 				list.addAll(((TMLCCompositeComponent)tgcomponent[i]).getAllInternalCompositePorts());
@@ -463,8 +469,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		return list;
 	}
 	
-	public ArrayList<TMLCCompositePort> getAllReferencedCompositePorts() {
-		ArrayList<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>();
+	public List<TMLCCompositePort> getAllReferencedCompositePorts() {
+		List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
 			if (tgcomponent[i] instanceof TMLCCompositeComponent) {
 				list.addAll(((TMLCCompositeComponent)tgcomponent[i]).getAllReferencedCompositePorts());
@@ -477,8 +483,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		return list;
 	}
 	
-	public ArrayList<TMLCCompositePort> getFirstLevelCompositePorts() {
-		ArrayList<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>();
+	public List<TMLCCompositePort> getFirstLevelCompositePorts() {
+		List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
 			if (tgcomponent[i] instanceof TMLCCompositePort) {
 				list.add((TMLCCompositePort)(tgcomponent[i]));
@@ -488,8 +494,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		return list;
 	}
 	
-	public ArrayList<TMLCPrimitivePort> getAllInternalPrimitivePorts() {
-		ArrayList<TMLCPrimitivePort> list = new ArrayList<TMLCPrimitivePort>();
+	public List<TMLCPrimitivePort> getAllInternalPrimitivePorts() {
+		List<TMLCPrimitivePort> list = new ArrayList<TMLCPrimitivePort>();
 		for(int i=0; i<nbInternalTGComponent; i++) {
 			
 			if (tgcomponent[i] instanceof TMLCCompositeComponent) {
@@ -540,6 +546,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		return null;
 	}
 	
+    @Override
 	public void setInternalsHidden(boolean hide) {
 		hiddeni = hide;
 		for(int i=0; i<nbInternalTGComponent; i++) {
@@ -553,20 +560,22 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		}
 	}
 	
+    @Override
 	public boolean areInternalsHidden() {
 		return hiddeni;
 	}
-	
-	public void drawInternalComponentsWhenHidden(Graphics g) {
-		//
-		for(int i=0; i<nbInternalTGComponent; i++) {
-			if (tgcomponent[i] instanceof TMLCCompositePort) {
-				//ColorManager.setColor(g, tgcomponent[i].getState(), 0);
-				tgcomponent[i].draw(g);
-			}
-		}
-	}
+//	
+//	private void drawInternalComponentsWhenHidden(Graphics g) {
+//		//
+//		for(int i=0; i<nbInternalTGComponent; i++) {
+//			if (tgcomponent[i] instanceof TMLCCompositePort) {
+//				//ColorManager.setColor(g, tgcomponent[i].getState(), 0);
+//				tgcomponent[i].draw(g);
+//			}
+//		}
+//	}
     
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<info hiddeni=\"" + hiddeni + "\" "); 
@@ -577,9 +586,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
     
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
-        //
         try {
-            
             NodeList nli;
             Node n1, n2;
             Element elt;
@@ -607,10 +614,11 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
             }
             
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
     }
 	
+    @Override
 	public void drawTGConnectingPoint(Graphics g, int type) {
         //
         for (int i=0; i<nbConnectingPoint; i++) {
@@ -700,5 +708,4 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 		
 		return false;
 	}
-    
 }
diff --git a/src/main/java/ui/tmlcompd/TMLCRemoteCompositeComponent.java b/src/main/java/ui/tmlcompd/TMLCRemoteCompositeComponent.java
index 64474151cab0c40e6b985a1edadb116654419dca..0eb38b932ddf50c25e66100810f2c6dc572a4ace 100755
--- a/src/main/java/ui/tmlcompd/TMLCRemoteCompositeComponent.java
+++ b/src/main/java/ui/tmlcompd/TMLCRemoteCompositeComponent.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlcompd;
 
 import myutil.GraphicLib;
@@ -51,8 +48,12 @@ import ui.util.IconManager;
 import ui.window.JDialogTMLRemoteCompositeComponent;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
 import java.util.ArrayList;
+import java.util.List;
 
 /**
 * Class TMLCRemoteCompositeComponent
@@ -137,6 +138,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 		}
 	}
     
+	@Override
     public void internalDrawing(Graphics g) {
 		int w;
 		int c;
@@ -258,6 +260,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 		}
     }
 	
+	@Override
 	public void rescale(double scaleFactor){
 		dtextX = (textX + dtextX) / oldScaleFactor * scaleFactor;
 		textX = (int)(dtextX);
@@ -270,6 +273,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 		super.rescale(scaleFactor);
 	}
     
+	@Override
     public TGComponent isOnOnlyMe(int _x, int _y) {
 		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -277,7 +281,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
         return null;
     }
 	
-    
+	@Override
     public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
 		
 		// On the icon?
@@ -316,6 +320,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 		return false;
     }
 	
+	@Override
 	protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         
@@ -354,7 +359,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 			TMLCRemotePortCompositeComponent pcc;
 			TGConnectingPoint[] old = null;
 			
-			ArrayList<TMLCCompositePort> tmp = null;
+			List<TMLCCompositePort> tmp = null;
 			//ArrayList<TMLCReferencePortConnectingPoint> points = new ArrayList<TMLCReferencePortConnectingPoint>();
 			
             for(int i=0; i<nl.getLength(); i++) {
@@ -458,29 +463,30 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 			((TMLComponentTaskDiagramPanel)getTDiagramPanel()).makePaths();
             
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
 		
     }
     
-    
+	@Override
     public int getType() {
         return TGComponentManager.TMLCTD_CREMOTECOMPONENT;
     }
 	
+	@Override
 	public void wasSwallowed() {
 		myColor = null;
 	}
 	
+	@Override
 	public void wasUnswallowed() {
 		myColor = null;
 		setFather(null);
 		TDiagramPanel tdp = getTDiagramPanel();
 		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
-		
 	}
 	
-    
+	@Override
     public void hasBeenResized() {
 		rescaled = true;
         /*for(int i=0; i<nbInternalTGComponent; i++) {
@@ -500,6 +506,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 		}
     }
 	
+	@Override
 	public void resizeWithFather() {
         if ((father != null) && ((father instanceof TMLCCompositeComponent) ||(father instanceof TMLCPrimitiveComponent))) {
 			// Too large to fit in the father? -> resize it!
@@ -510,30 +517,30 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
         }
     }
 	
-	public java.util.List<TMLCPrimitiveComponent> getAllPrimitiveComponents() {
+	public List<TMLCPrimitiveComponent> getAllPrimitiveComponents() {
 		if (tmlcc == null) {
 			return new ArrayList<TMLCPrimitiveComponent>();
 		}
 		return tmlcc.getAllPrimitiveComponents();
 	}
 	
-	public java.util.List<TMLCRecordComponent> getAllRecordComponents() {
+	public List<TMLCRecordComponent> getAllRecordComponents() {
 		if (tmlcc == null) {
 			return new ArrayList<TMLCRecordComponent>();
 		}
 		return tmlcc.getAllRecordComponents();
 	}
 	
-	public java.util.List<TMLCCompositePort> getAllInternalCompositePorts() {
-		java.util.List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>();
+	public List<TMLCCompositePort> getAllInternalCompositePorts() {
+		List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>();
 		if (tmlcc == null) {
 			return list;
 		}
 		return tmlcc.getAllInternalCompositePorts();
 	}
 	
-	public ArrayList<TMLCPrimitivePort> getAllInternalPrimitivePorts() {
-		ArrayList<TMLCPrimitivePort> list = new ArrayList<TMLCPrimitivePort>();
+	public List<TMLCPrimitivePort> getAllInternalPrimitivePorts() {
+		List<TMLCPrimitivePort> list = new ArrayList<TMLCPrimitivePort>();
 		if (tmlcc == null) {
 			return list;
 		}
@@ -573,7 +580,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 	// to a list of those points, keep that list, and then, generate a array of those points.
 	public void updatePorts() {
 		//TraceManager.addDev("Update my ports");
-		ArrayList<TMLCCompositePort> list = tmlcc.getFirstLevelCompositePorts();
+		List<TMLCCompositePort> list = tmlcc.getFirstLevelCompositePorts();
 		int cpt=0;
 		
 		/*TraceManager.addDev("list size:" + list.size());
@@ -604,7 +611,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 		if (change) {
 			TraceManager.addDev("change on  ports!");
 			// Delete unused ports and 
-			ArrayList<TMLCReferencePortConnectingPoint> points = new ArrayList<TMLCReferencePortConnectingPoint>();
+			List<TMLCReferencePortConnectingPoint> points = new ArrayList<TMLCReferencePortConnectingPoint>();
 			cpt=0;
 			
 			for(i=0; i<ports.size(); i++) {
@@ -699,7 +706,6 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 		int i;
         //TraceManager.addDev("name= " + name + " nbCP=" + nbConnectingPoint + " num=" + num +  "id=" + id);
 		try {
-			
 			if (connectingPoint == null) {
 				nbConnectingPoint = num + 1;
 				connectingPoint = new TGConnectingPoint[nbConnectingPoint];
@@ -781,11 +787,13 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 		}
     }*/
 	
+	@Override
 	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
         return tgc instanceof TMLCRemotePortCompositeComponent;
 
     }
 	
+	@Override
     public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
 		if (!acceptSwallowedTGComponent(tgc)) {
 			return false;
@@ -799,6 +807,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 		 return true;
 	}
 	
+	@Override
     public void removeSwallowedTGComponent(TGComponent tgc) {
 	}
 	
@@ -816,5 +825,4 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone
 	public TMLCCompositeComponent getReference() {
 		return tmlcc;
 	}
-    
 }
diff --git a/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java b/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java
index 58a7adaf1d40a10faa3b31cee23717a1078a2603..6bff4804513d6b57b5b737269471195772b21e89 100755
--- a/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java
+++ b/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java
@@ -37,10 +37,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.tmlcompd;
 
-
 import myutil.TraceManager;
 import org.w3c.dom.Element;
 import ui.*;
@@ -66,6 +64,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         //setAttributesVisible(true);
     }
 
+    @Override
     public boolean actionOnDoubleClick(TGComponent tgc) {
         /*TraceManager.addDev("Action on double click!");
           if (tgc instanceof TMLCPrimitiveComponent) {
@@ -77,6 +76,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return false;
     }
 
+    @Override
     public boolean actionOnAdd(TGComponent tgc) {
         //TraceManager.addDev("Action on add! value=" + tgc.getValue());
         if (tgc instanceof TMLCPrimitiveComponent) {
@@ -98,6 +98,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return true;
     }
 
+    @Override
     public boolean actionOnRemove(TGComponent tgc) {
         //TraceManager.addDev("Action on remove tgc=" + tgc + " value=" + tgc.getValue());
         if (tgc instanceof TMLCPrimitiveComponent) {
@@ -167,6 +168,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return ports;
     }
 
+    @Override
     public boolean actionOnValueChanged(TGComponent tgc) {
         //TraceManager.addDev("Action on value changed on component:" + tgc);
         if (tgc instanceof TMLCPrimitiveComponent) {
@@ -195,21 +197,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return ko ? ko : nameAllRecordComponentInUse(oldValue, newValue);
     }
 
-    /**
-     * Check if newvalue is already a name of a component.
-     *
-     * @param newvalue
-     * @return true if the name is used
-     * @author Fabien Tessier
-     */
-    public boolean isCompositeNameUsed(String newvalue) {
-        for (TGComponent tgc : this.componentList) {
-            if (tgc.getValue().equals(newvalue))
-                return true;
-        }
-        return false;
-    }
-
     public boolean nameAllRecordComponentInUse(String oldValue, String newValue) {
         //   LinkedList ll = getRecordComponentList();
         Iterator<TMLCRecordComponent> iterator = getRecordComponentList().listIterator();
@@ -226,8 +213,8 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return false;
     }
 
-    public LinkedList<TMLCRecordComponent> getRecordComponentList() {
-        LinkedList<TMLCRecordComponent> ll = new LinkedList<TMLCRecordComponent>();
+    public List<TMLCRecordComponent> getRecordComponentList() {
+        List<TMLCRecordComponent> ll = new LinkedList<TMLCRecordComponent>();
         TGComponent tgc;
 
         Iterator<TGComponent> iterator = componentList.listIterator();
@@ -472,7 +459,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return al;
     }
 
-
     public void getAllPortsConnectedTo(List<TGComponent> ll, TMLCPrimitivePort _port) {
         List<TGComponent> components = getMGUI().getAllTMLComponents();
         Iterator<TGComponent> iterator = components.listIterator();
@@ -514,36 +500,40 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         }
     }
 
+    @Override
     public String getXMLHead() {
         return "<TMLComponentTaskDiagramPanel name=\"" + name + "\"" + sizeParam() + displayParam() + zoomParam() + " >";
     }
 
+    @Override
     public String getXMLTail() {
         return "</TMLComponentTaskDiagramPanel>";
     }
 
+    @Override
     public String getXMLSelectedHead() {
         return "<TMLComponentTaskDiagramPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >";
     }
 
+    @Override
     public String getXMLSelectedTail() {
         return "</TMLComponentTaskDiagramPanelCopy>";
     }
 
+    @Override
     public String getXMLCloneHead() {
         return "<TMLComponentTaskDiagramPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >";
     }
 
+    @Override
     public String getXMLCloneTail() {
         return "</TMLComponentTaskDiagramPanelCopy>";
     }
 
-
     public boolean areAttributesVisible() {
         return attributesVisible;
     }
 
-
     public boolean areChannelVisible() {
         return synchroVisible;
     }
@@ -552,7 +542,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         attributesVisible = b;
     }
 
-
     public void setChannelVisible(boolean b) {
         channelVisible = b;
     }
@@ -612,8 +601,8 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         }
     }
 
-    public ArrayList<String> getAllCompositeComponent(String _name) {
-        ArrayList<String> list = new ArrayList<String>();
+    public List<String> getAllCompositeComponent(String _name) {
+        List<String> list = new ArrayList<String>();
         TGComponent tgc1;
         String s;
         TMLCCompositeComponent tmlcc;
@@ -650,7 +639,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         TGComponent tgc;
         Iterator<TGComponent> iterator = componentList.listIterator();
         // List<String> list = new ArrayList<String>();
-        TMLCPrimitiveComponent tmp;
+        //TMLCPrimitiveComponent tmp;
 
         while (iterator.hasNext()) {
             tgc = iterator.next();
@@ -674,7 +663,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         TGComponent tgc;
         Iterator<TGComponent> iterator = componentList.listIterator();
         // List<String> list = new ArrayList<String>();
-        TMLCPrimitiveComponent tmp;
+        //TMLCPrimitiveComponent tmp;
 
         while (iterator.hasNext()) {
             tgc = iterator.next();
@@ -693,7 +682,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return chlArray;
     }
 
-
     public TMLCPrimitiveComponent getPrimitiveComponentByName(String _name) {
         TGComponent tgc;
         Iterator<TGComponent> iterator = componentList.listIterator();
@@ -993,10 +981,10 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
     }
 
     // Returns the faulty paths
-    public ArrayList<TMLCPath> updatePorts() {
+    public List<TMLCPath> updatePorts() {
         //TraceManager.addDev("Making paths");
         List<TMLCPath> paths = makePaths();
-        ArrayList<TMLCPath> faultyPaths = new ArrayList<TMLCPath>();
+        List<TMLCPath> faultyPaths = new ArrayList<TMLCPath>();
         //String error = "";
 
         // Checking rules of paths, and setting colors accordingly
@@ -1079,7 +1067,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         }
 
         // We take each primitive ports individually and we go thru the graph
-        ArrayList<TMLCChannelFacility> mets = new ArrayList<TMLCChannelFacility>();
+        List<TMLCChannelFacility> mets = new ArrayList<TMLCChannelFacility>();
         TGConnector connector;
         TGConnectingPoint tp;
         String conflictMessage;
@@ -1104,7 +1092,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         }
     }
 
-    public String propagate(TMLCPrimitivePort pport, TGConnectingPoint tp, TGConnector connector, ArrayList<TMLCChannelFacility> mets) {
+    public String propagate(TMLCPrimitivePort pport, TGConnectingPoint tp, TGConnector connector, List<TMLCChannelFacility> mets) {
         TGConnectingPoint tp2;
         TMLCChannelFacility cp = null;
         //boolean conflict = false;
@@ -1283,7 +1271,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return conflictMessage;
     }
 
-    public String explore(TMLCPrimitivePort pport, TGConnectingPoint _tp, TMLCChannelFacility cp, ArrayList<TMLCChannelFacility> mets) {
+    public String explore(TMLCPrimitivePort pport, TGConnectingPoint _tp, TMLCChannelFacility cp, List<TMLCChannelFacility> mets) {
         String conflictMessage = null;
         String conflictMessageTmp;
         TGConnectingPoint tp;
@@ -1305,7 +1293,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return conflictMessage;
     }
 
-    public void analysePorts(TMLCPrimitivePort pport, ArrayList<TMLCChannelFacility> mets, boolean conflict, String message) {
+    public void analysePorts(TMLCPrimitivePort pport, List<TMLCChannelFacility> mets, boolean conflict, String message) {
         if (mets.size() == 0) {
             return;
         }
@@ -1532,11 +1520,9 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         for (TDiagramPanel panel : panels) {
             iterator = panel.getComponentList().listIterator();
 
-
             List<TMLCCompositePort> listcp;
             List<TMLCPrimitivePort> listpp;
 
-
             while (iterator.hasNext()) {
                 tgc = iterator.next();
 
@@ -1646,7 +1632,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
 
 
         return paths;
-
     }
 
     public TMLCPath getPathOf(List<TMLCPath> paths, TGComponent tgc) {
@@ -1675,8 +1660,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         paths.add(ph);
     }
 
-
-    public void getPanelsUsingAComponent(TMLCCompositeComponent tmlcc, ArrayList<TMLComponentTaskDiagramPanel> panels) {
+    public void getPanelsUsingAComponent(TMLCCompositeComponent tmlcc, List<TMLComponentTaskDiagramPanel> panels) {
         //TraceManager.addDev("Update from " + tmlcc.getValue());
         Iterator<TGComponent> iterator = componentList.listIterator();
         TGComponent tgc;
@@ -1699,7 +1683,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         }
     }
 
-
     public String[] getAllOutEvents(String nameOfComponent) {
         TMLCPrimitiveComponent comp = getPrimitiveComponentByName(nameOfComponent);
         if (comp == null) {
@@ -1707,7 +1690,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         }
 
         List<TMLCPrimitivePort> ll = comp.getAllEventsOriginPorts();
-        LinkedList<String> lString = new LinkedList<>();
+        List<String> lString = new LinkedList<>();
 
 
         //String[] terms = new String[ll.size()];
diff --git a/src/main/java/ui/tmlcp/TGConnectingPointTMLCP.java b/src/main/java/ui/tmlcp/TGConnectingPointTMLCP.java
index 311de473ad9c5bd404483a6af6933a4493ab4d17..7e071398c9304250562b91732f80dc2701b2950c 100755
--- a/src/main/java/ui/tmlcp/TGConnectingPointTMLCP.java
+++ b/src/main/java/ui/tmlcp/TGConnectingPointTMLCP.java
@@ -36,12 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlcp;
 
-
 import ui.CDElement;
 import ui.TGComponentManager;
 import ui.TGConnectingPointWidthHeight;
@@ -54,13 +50,12 @@ import ui.TGConnectingPointWidthHeight;
  * @author Ludovic APVRILLE
  */
 public class TGConnectingPointTMLCP extends  TGConnectingPointWidthHeight{
-
-
     
     public TGConnectingPointTMLCP(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) {
         super(_container, _x, _y, _in, _out, _w, _h);
     }
     
+    @Override
     public boolean isCompatibleWith(int type) {
         //
         if (type == TGComponentManager.CONNECTOR_TMLCP) {
diff --git a/src/main/java/ui/tmlcp/TGConnectorTMLCP.java b/src/main/java/ui/tmlcp/TGConnectorTMLCP.java
index 71b38e664c9e99332963f3ddb7d9f382f8eb584d..4bcca5ef6284ce4f394d8e69446cdf295a867831 100755
--- a/src/main/java/ui/tmlcp/TGConnectorTMLCP.java
+++ b/src/main/java/ui/tmlcp/TGConnectorTMLCP.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlcp;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADConnector;
 import ui.util.IconManager;
 
 import java.awt.*;
@@ -56,7 +54,7 @@ import java.util.Vector;
  * @version 1.0 17/02/2014
  * @author Ludovic APVRILLE
  */
-public class TGConnectorTMLCP extends TGConnector {
+public class TGConnectorTMLCP extends TADConnector /* Issue #69 TGConnector*/ {
     protected int arrowLength = 10;
 		protected String guard = "";
     
@@ -65,12 +63,12 @@ public class TGConnectorTMLCP extends TGConnector {
         myImageIcon = IconManager.imgic202;
 
         name = "connector";
-				_p1.setReferenceToConnector( this );
-				_p2.setReferenceToConnector( this );
-
+		_p1.setReferenceToConnector( this );
+		_p2.setReferenceToConnector( this );
 				//editable = true;
     }
     
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
         if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) {
             g.drawLine(x1, y1, x2, y2);
@@ -79,6 +77,7 @@ public class TGConnectorTMLCP extends TGConnector {
         }
     }
     
+    @Override
     public int getType() {
         return TGComponentManager.CONNECTOR_TMLCP;
     }
@@ -95,5 +94,4 @@ public class TGConnectorTMLCP extends TGConnector {
 		}
 		return "noGuard";
 	}
-
 }//End of class
diff --git a/src/main/java/ui/tmlcp/TMLCPChoice.java b/src/main/java/ui/tmlcp/TMLCPChoice.java
index 8b55369d70a2b01fef5ea613f5359fe27bba0803..9e9ea5db9759211e30342b9ca5b60b8331ff4759 100755
--- a/src/main/java/ui/tmlcp/TMLCPChoice.java
+++ b/src/main/java/ui/tmlcp/TMLCPChoice.java
@@ -37,18 +37,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlcp;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.ArrayList;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADChoice;
 
 /**
    * Class TMLCPChoice
@@ -57,10 +52,10 @@ import java.util.ArrayList;
    * @version 1.0 17/02/2014
    * @author Ludovic APVRILLE, Andrea ENRICI
  */
-public class TMLCPChoice extends TGCWithInternalComponent {
-    private int lineLength = 10;
-    private int lineOutLength = 25;
-    private int textX1, textY1, textX2, textY2, textX3, textY3;
+public class TMLCPChoice extends TADChoice /* Issue #69 TGCWithInternalComponent*/ {
+//    private int lineLength = 10;
+//    private int lineOutLength = 25;
+//    private int textX1, textY1, textX2, textY2, textX3, textY3;
     private static int instanceCounter = 0;
     private int counter = 0;
 
@@ -68,151 +63,161 @@ public class TMLCPChoice extends TGCWithInternalComponent {
     public TMLCPChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-        width = 30;
-        height = 30;
-        textX1 = -lineOutLength;
-        textY1 = height/2 - 5;
-        textX2 = width + 5;
-        textY2 = height/2 - 5;
-        textX3 = width /2 + 5;
-        textY3 = height + 15;
-
-        nbConnectingPoint = 4;
-        connectingPoint = new TGConnectingPoint[nbConnectingPoint];
-        connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0);
-        connectingPoint[1] = new TGConnectingPointTMLCP(this, -lineOutLength, 0, false, true, 0.0, 0.5);
-        connectingPoint[2] = new TGConnectingPointTMLCP(this, lineOutLength, 0, false, true, 1.0, 0.5);
-        connectingPoint[3] = new TGConnectingPointTMLCP(this, 0, lineOutLength,  false, true, 0.5, 1.0);
+//        width = 30;
+//        height = 30;
+//        textX1 = -lineOutLength;
+//        textY1 = height/2 - 5;
+//        textX2 = width + 5;
+//        textY2 = height/2 - 5;
+//        textX3 = width /2 + 5;
+//        textY3 = height + 15;
+//
+//        nbConnectingPoint = 4;
+//        connectingPoint = new TGConnectingPoint[nbConnectingPoint];
+//        connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0);
+//        connectingPoint[1] = new TGConnectingPointTMLCP(this, -lineOutLength, 0, false, true, 0.0, 0.5);
+//        connectingPoint[2] = new TGConnectingPointTMLCP(this, lineOutLength, 0, false, true, 1.0, 0.5);
+//        connectingPoint[3] = new TGConnectingPointTMLCP(this, 0, lineOutLength,  false, true, 0.5, 1.0);
 
         addTGConnectingPointsComment();
 
         //nbInternalTGComponent = 0;
-        nbInternalTGComponent = 3;
-        tgcomponent = new TGComponent[nbInternalTGComponent];
-
-        TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 1");
-        tgcomponent[0] = tgc;
-
-        tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 2");
-        tgcomponent[1] = tgc;
-
-        tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp);
-        tgc.setValue("[ ]");
-        tgc.setName("guard 3");
-        tgcomponent[2] = tgc;
-
-        moveable = true;
-        editable = false;
-        removable = true;
+//        nbInternalTGComponent = 3;
+//        tgcomponent = new TGComponent[nbInternalTGComponent];
+//
+//        TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 1");
+//        tgcomponent[0] = tgc;
+//
+//        tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 2");
+//        tgcomponent[1] = tgc;
+//
+//        tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp);
+//        tgc.setValue("[ ]");
+//        tgc.setName("guard 3");
+//        tgcomponent[2] = tgc;
+//
+//        moveable = true;
+//        editable = false;
+//        removable = true;
 
         instanceCounter++;
         counter = instanceCounter;
         name = "choice" + Integer.toString(counter);
 
-        myImageIcon = IconManager.imgic208;
-    }
-
-    public void internalDrawing(Graphics g) {
-        g.drawLine(x+(width/2), y, x+width, y + height/2);
-        g.drawLine(x, y + height / 2, x+width/2, y + height);
-        g.drawLine(x + width/2, y, x, y + height/2);
-        g.drawLine(x + width, y + height/2, x + width/2, y + height);
-
-        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
-        g.drawLine(x, y + height/2, x-lineOutLength, y + height/2);
-        g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2);
-        g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength);
-    }
-
-    public TGComponent isOnOnlyMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-
-        // horizontal line
-        if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        return null;
+       // myImageIcon = IconManager.imgic208;
     }
-
+	
+	@Override
+    protected void createConnectingPoints() {
+		nbConnectingPoint = 4;
+		connectingPoint = new TGConnectingPoint[nbConnectingPoint];
+		connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0);
+		connectingPoint[1] = new TGConnectingPointTMLCP(this, -lineOutLength, 0, false, true, 0.0, 0.5);
+		connectingPoint[2] = new TGConnectingPointTMLCP(this, lineOutLength, 0, false, true, 1.0, 0.5);
+		connectingPoint[3] = new TGConnectingPointTMLCP(this, 0, lineOutLength,  false, true, 0.5, 1.0);
+	}
+//
+//    public void internalDrawing(Graphics g) {
+//        g.drawLine(x+(width/2), y, x+width, y + height/2);
+//        g.drawLine(x, y + height / 2, x+width/2, y + height);
+//        g.drawLine(x + width/2, y, x, y + height/2);
+//        g.drawLine(x + width, y + height/2, x + width/2, y + height);
+//
+//        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
+//        g.drawLine(x, y + height/2, x-lineOutLength, y + height/2);
+//        g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2);
+//        g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength);
+//    }
+//
+//    public TGComponent isOnOnlyMe(int _x, int _y) {
+//        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//            return this;
+//        }
+//
+//        // horizontal line
+//        if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        return null;
+//    }
+
+	@Override
     public int getType() {
         return TGComponentManager.TMLCP_CHOICE;
     }
-
-    public String getGuard(int i) {
-        if ((i>=0) && (i<nbInternalTGComponent)) {
-            //
-            return tgcomponent[i].getValue();
-        }
-        return "";
-    }
-
-    public ArrayList<String> getGuards()        {
-
-        ArrayList<String> guards = new ArrayList<String>();
-        for( int i = 0; i < nbInternalTGComponent; i++ ) {
-            guards.add( getGuard(i) );
-        }
-        return guards;
-    }
-
-    public boolean hasUnvalidGuards() {
-        return (getUnvalidGuards() != null);
-    }
-
-    public String getUnvalidGuards() {
-        String s, g;
-        int index;
-        for(int i=0; i<nbInternalTGComponent; i++) {
-            s = getGuard(i);
-            g = s;
-            if ((s.compareTo("[]") != 0) && (s.compareTo("[ ]") != 0)) {
-                index = s.indexOf('/');
-                if (index == -1) {
-                    return g;
-                }
-                s = s.substring(1, index);
-                s = s.trim();
-                //
-                if (!TAttribute.isAValidId(s, false, false)) {
-                    //if (!s.matches("(\\w)+*(\\s)*")) {
-                    return g;
-                }
-            }
-        }
-
-        return null;
-    }
-
+//
+//    public String getGuard(int i) {
+//        if ((i>=0) && (i<nbInternalTGComponent)) {
+//            //
+//            return tgcomponent[i].getValue();
+//        }
+//        return "";
+//    }
+//
+//    public ArrayList<String> getGuards()        {
+//
+//        ArrayList<String> guards = new ArrayList<String>();
+//        for( int i = 0; i < nbInternalTGComponent; i++ ) {
+//            guards.add( getGuard(i) );
+//        }
+//        return guards;
+//    }
+//
+//    public boolean hasUnvalidGuards() {
+//        return (getUnvalidGuards() != null);
+//    }
+//
+//    public String getUnvalidGuards() {
+//        String s, g;
+//        int index;
+//        for(int i=0; i<nbInternalTGComponent; i++) {
+//            s = getGuard(i);
+//            g = s;
+//            if ((s.compareTo("[]") != 0) && (s.compareTo("[ ]") != 0)) {
+//                index = s.indexOf('/');
+//                if (index == -1) {
+//                    return g;
+//                }
+//                s = s.substring(1, index);
+//                s = s.trim();
+//                //
+//                if (!TAttribute.isAValidId(s, false, false)) {
+//                    //if (!s.matches("(\\w)+*(\\s)*")) {
+//                    return g;
+//                }
+//            }
+//        }
+//
+//        return null;
+//    }
+
+	@Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLCP;
     }
-
-
-
-    public TGConnectingPoint[] getConnectingPoints()    {
-        return connectingPoint;
-    }
-
-    public TGComponent[] getTGComponents()      {
-        return tgcomponent;
-    }
+//
+//    public TGConnectingPoint[] getConnectingPoints()    {
+//        return connectingPoint;
+//    }
+//
+//    public TGComponent[] getTGComponents()      {
+//        return tgcomponent;
+//    }
 }
diff --git a/src/main/java/ui/tmlcp/TMLCPForLoop.java b/src/main/java/ui/tmlcp/TMLCPForLoop.java
index 923246f4b90fcad985f52d5bf9c1ce8eaa2b9205..5a2e19156d237684c8a5f34a9e278e14cdfad72c 100755
--- a/src/main/java/ui/tmlcp/TMLCPForLoop.java
+++ b/src/main/java/ui/tmlcp/TMLCPForLoop.java
@@ -36,20 +36,30 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.tmlcp;
 
-import myutil.GraphicLib;
+import java.awt.Color;
+import java.awt.Graphics;
+
+import javax.swing.JFrame;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import ui.*;
-import ui.util.IconManager;
-import ui.window.JDialogMultiString;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
+import myutil.GraphicLib;
+import ui.BasicErrorHighlight;
+import ui.ColorManager;
+import ui.EmbeddedComment;
+import ui.ErrorHighlight;
+import ui.GTURTLEModeling;
+import ui.MalformedModelingException;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADForLoop;
+import ui.window.JDialogMultiString;
 
 /**
  * Class TMLCPForLoop
@@ -59,24 +69,24 @@ import java.awt.geom.Line2D;
  * @author Ludovic APVRILLE
  * @version 1.0 03/06/2015
  */
-public class TMLCPForLoop extends TGCWithoutInternalComponent implements EmbeddedComment, BasicErrorHighlight {
-    protected int lineLength = 5;
-    protected int textX = 5;
-    protected int textY = 15;
-    protected int arc = 5;
+public class TMLCPForLoop extends TADForLoop /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, BasicErrorHighlight {
+//    protected int lineLength = 5;
+//    protected int textX = 5;
+//    protected int textY = 15;
+//    protected int arc = 5;
 
     protected String init = "i=0";
     protected String condition = "i<5";
     protected String increment = "i = i+1";
 
-    protected int stateOfError = 0; // Not yet checked
+  //  protected int stateOfError = 0; // Not yet checked
 
     public TMLCPForLoop(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-        width = 30;
-        height = 20;
-        minWidth = 30;
+//        width = 30;
+//        height = 20;
+//        minWidth = 30;
 
         nbConnectingPoint = 3;
         connectingPoint = new TGConnectingPoint[3];
@@ -84,17 +94,18 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde
         connectingPoint[1] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 1.0, 0.45); // loop
         connectingPoint[2] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp
 
-        moveable = true;
-        editable = true;
-        removable = true;
+//        moveable = true;
+//        editable = true;
+//        removable = true;
 
         makeValue();
 
         name = "for loop";
 
-        myImageIcon = IconManager.imgic912;
+//        myImageIcon = IconManager.imgic912;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         final int textWidth = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, textWidth + 2 * textX);
@@ -125,6 +136,7 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde
         g.drawString(value, x + (width - textWidth) / 2, y + textY);
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String[] labels = new String[3];
         String[] values = new String[3];
@@ -135,7 +147,6 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde
         labels[2] = "Increment at each loop";
         values[2] = increment;
 
-
         JDialogMultiString jdms = new JDialogMultiString(frame, "Setting loop's properties", 3, labels, values);
         //    jdms.setSize(400, 300);
         GraphicLib.centerOnParent(jdms, 400, 300);
@@ -151,24 +162,23 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde
         }
 
         return false;
-
     }
 
-    public TGComponent isOnMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-
-        if ((int) (Line2D.ptSegDistSq(x + (width / 2), y - lineLength, x + (width / 2), y + lineLength + height, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        if ((int) (Line2D.ptSegDistSq(x + width, y + height / 2, x + width + lineLength, y + height / 2, _x, _y)) < distanceSelected) {
-            return this;
-        }
-
-        return null;
-    }
+//    public TGComponent isOnMe(int _x, int _y) {
+//        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//            return this;
+//        }
+//
+//        if ((int) (Line2D.ptSegDistSq(x + (width / 2), y - lineLength, x + (width / 2), y + lineLength + height, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        if ((int) (Line2D.ptSegDistSq(x + width, y + height / 2, x + width + lineLength, y + height / 2, _x, _y)) < distanceSelected) {
+//            return this;
+//        }
+//
+//        return null;
+//    }
 
     public void makeValue() {
         value = "for(" + init + ";" + condition + ";" + increment + ")";
@@ -190,6 +200,7 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde
         return increment;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<Data init=\"");
@@ -205,18 +216,12 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde
 
     @Override
     public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
-        //
         try {
-
             NodeList nli;
             Node n1, n2;
             Element elt;
 //            int k;
 //            String s;
-
-            //
-            //
-
             for (int i = 0; i < nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
@@ -239,23 +244,22 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde
             }
 
         } catch (Exception e) {
-            throw new MalformedModelingException();
+            throw new MalformedModelingException( e );
         }
         makeValue();
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.TMLCP_FOR_LOOP;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLCP;
     }
 
-    public void setStateAction(int _stateAction) {
-        stateOfError = _stateAction;
-    }
-
-
+//    public void setStateAction(int _stateAction) {
+//        stateOfError = _stateAction;
+//    }
 }
diff --git a/src/main/java/ui/tmlcp/TMLCPFork.java b/src/main/java/ui/tmlcp/TMLCPFork.java
index 4e98d86590eacd79e0ec4e65d8805d7caa3b9b0c..eeb8146e7acc91d84d9c294238c1b91f46be7223 100755
--- a/src/main/java/ui/tmlcp/TMLCPFork.java
+++ b/src/main/java/ui/tmlcp/TMLCPFork.java
@@ -37,17 +37,18 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
- 
 package ui.tmlcp;
 
+import java.awt.Graphics;
+import java.util.Arrays;
+import java.util.List;
+
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.EnablingADConnectorVisitor;
+import ui.ad.TADComponentWithoutSubcomponents;
 import ui.util.IconManager;
 
-import java.awt.*;
-
 /**
  * Class TMLCPFork
  * Fork operator. The incoming activity is split into several outgoing activities
@@ -56,7 +57,7 @@ import java.awt.*;
  * @version 1.0 17/02/2014
  * @author Ludovic APVRILLE
  */
-public class TMLCPFork extends TGCWithoutInternalComponent{
+public class TMLCPFork extends TADComponentWithoutSubcomponents /* Issue #69 TGCWithoutInternalComponent*/ {
 	
 	private int lineLength = 0;
 	private static int instanceCounter = 0;
@@ -81,7 +82,7 @@ public class TMLCPFork extends TGCWithoutInternalComponent{
 		connectingPoint[4] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.833, 1.0);
 		connectingPoint[5] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0);
                 
-                addTGConnectingPointsComment();
+        addTGConnectingPointsComment();
 
 		nbInternalTGComponent = 0;
 
@@ -96,11 +97,13 @@ public class TMLCPFork extends TGCWithoutInternalComponent{
 		myImageIcon = IconManager.imgic206;
 	}
 
+	@Override
 	public void internalDrawing(Graphics g) {
 		g.drawRect(x, y, width, height);
 		g.fillRect(x, y, width, height);
 	}
 
+	@Override
 	public TGComponent isOnMe(int x1, int y1) {
 		if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
 			return this;
@@ -112,11 +115,36 @@ public class TMLCPFork extends TGCWithoutInternalComponent{
 		return tgcomponent[0].getValue();	
 	}
 	
+	@Override
 	public int getType() {
 		return TGComponentManager.TMLCP_FORK;
 	}
 	
+	@Override
 	public int getDefaultConnector() {
       return TGComponentManager.CONNECTOR_TMLCP;
     }
+
+    public TGConnectingPoint getEnterConnectingPoint() {
+    	return connectingPoint[ 5 ];
+    }
+	
+    public List<TGConnectingPoint> getExitConnectingPoints() {
+    	return Arrays.asList( Arrays.copyOfRange( connectingPoint, 0, connectingPoint.length - 1 ) );
+    }
+	
+    /**
+     * Issue #69
+     * @param _enabled
+     */
+    @Override
+    public void setEnabled( final boolean _enabled ) {
+    	super.setEnabled( _enabled );
+    	
+    	for ( final TGConnectingPoint point : connectingPoint ) {
+    		if ( point != getEnterConnectingPoint() ) {
+    			point.acceptForward( new EnablingADConnectorVisitor( _enabled ) );
+        	}
+    	}
+    }
 }
diff --git a/src/main/java/ui/tmlcp/TMLCPJoin.java b/src/main/java/ui/tmlcp/TMLCPJoin.java
index 74a4ae549865794cac2638a76600d3094ecd0d80..341f896cde57bc4c08d38b91565f367f4cb59474 100755
--- a/src/main/java/ui/tmlcp/TMLCPJoin.java
+++ b/src/main/java/ui/tmlcp/TMLCPJoin.java
@@ -37,17 +37,16 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
- 
 package ui.tmlcp;
 
+import java.awt.Graphics;
+import java.util.Arrays;
+import java.util.List;
+
 import myutil.GraphicLib;
 import ui.*;
 import ui.util.IconManager;
 
-import java.awt.*;
-
 /**
  * Class TMLCPJoin
  * Join operator. All  incoming activities join in one remaining activity
@@ -81,8 +80,7 @@ public class TMLCPJoin extends TGCWithoutInternalComponent{
 		connectingPoint[4] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.833, 0.0);
 		connectingPoint[5] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.5, 1.0);
 
-                
-                addTGConnectingPointsComment();
+		addTGConnectingPointsComment();
 
 		nbInternalTGComponent = 0;
 
@@ -97,11 +95,13 @@ public class TMLCPJoin extends TGCWithoutInternalComponent{
 		myImageIcon = IconManager.imgic206;
 	}
 
+	@Override
 	public void internalDrawing(Graphics g) {
 		g.drawRect(x, y, width, height);
 		g.fillRect(x, y, width, height);
 	}
 
+	@Override
 	public TGComponent isOnMe(int x1, int y1) {
 		if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
 			return this;
@@ -113,11 +113,21 @@ public class TMLCPJoin extends TGCWithoutInternalComponent{
 		return tgcomponent[0].getValue();	
 	}
 	
+	@Override
 	public int getType() {
 		return TGComponentManager.TMLCP_JOIN;
 	}
 	
+	@Override
 	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLCP;
+		return TGComponentManager.CONNECTOR_TMLCP;
+    }
+	
+    public List<TGConnectingPoint> getEnterConnectingPoints() {
+    	return Arrays.asList( Arrays.copyOfRange( connectingPoint, 0, connectingPoint.length - 1 ) );
+    }
+
+    public TGConnectingPoint getExitConnectingPoint() {
+    	return connectingPoint[ 5 ];
     }
 }
diff --git a/src/main/java/ui/tmlcp/TMLCPJunction.java b/src/main/java/ui/tmlcp/TMLCPJunction.java
deleted file mode 100755
index 007fc1f42614b18a4d92167da3198e77cb1bc78f..0000000000000000000000000000000000000000
--- a/src/main/java/ui/tmlcp/TMLCPJunction.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille, Andrea Enrici
- * 
- * ludovic.apvrille AT telecom-paristech.fr
- * andrea.enrici AT telecom-paristech.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 ui.tmlcp;
-
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
-import java.awt.geom.Line2D;
-
-
-/**
- * Class TMLCPJunction
- * Junction between several activities, without any synchronization. 
- * To be used in communication patterns diagrams
- * Creation: 17/02/2014
- * @version 1.0 17/02/2014
- * @author Ludovic APVRILLE, Andrea ENRICI
- */
-public class TMLCPJunction extends TGCWithoutInternalComponent {
-
-	private static int instanceCounter = 0;
-	private int counter = 0;
-	
-	public TMLCPJunction(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
-		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-		
-		width = 30;
-		height = 30;
-
-		nbConnectingPoint = 4;
-		connectingPoint = new TGConnectingPoint[nbConnectingPoint];
-		connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, 0, true, false, 0.5, 0.0);
-		connectingPoint[1] = new TGConnectingPointTMLCP(this, 0, 0, true, false, 0.0, 0.5);
-		connectingPoint[2] = new TGConnectingPointTMLCP(this, 0, 0, true, false, 1.0, 0.5);
-		connectingPoint[3] = new TGConnectingPointTMLCP(this, 0, 0, false, true, 0.5, 1);
-
-		moveable = true;
-		editable = false;
-		removable = true;
-	
-		value = "";
-		instanceCounter++;
-		counter = instanceCounter;
-		name = "junction" + Integer.toString(counter);
-		
-		myImageIcon = IconManager.imgic212;
-	}
-
-	public void internalDrawing(Graphics g) {
-		g.drawLine(x +width/2, y,  x+width/2, y + height);
-		g.drawLine(x, y + (height/2), x+width, y + (height/2));
-	}
-
-	public TGComponent isOnMe(int _x, int _y) {
-		// vertical line
-		if ((int)(Line2D.ptSegDistSq(x +width/2, y,  x+width/2, y + height, _x, _y)) < distanceSelected) {
-			return this;	
-		}
-		// horizontal line
-		if ((int)(Line2D.ptSegDistSq(x, y + (height/2), x+width, y + (height/2), _x, _y)) < distanceSelected) {
-			return this;	
-		}
-		return null;
-	}
-	
-	public int getType() {
-		return TGComponentManager.TMLCP_JUNCTION;
-	}
-	
-	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLCP;
-    }
-
-}
-
-
-
-
-    
-
-
diff --git a/src/main/java/ui/tmlcp/TMLCPPanel.java b/src/main/java/ui/tmlcp/TMLCPPanel.java
index 94bdaf07d13098377ec634b2cf0548a893b38a00..cb458388ddd31668b754b4cc3f9cc31631b3e29b 100755
--- a/src/main/java/ui/tmlcp/TMLCPPanel.java
+++ b/src/main/java/ui/tmlcp/TMLCPPanel.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlcp;
 
 import ui.*;
@@ -60,6 +57,7 @@ public class TMLCPPanel extends TDiagramPanel {
 
     }
     
+    @Override
     public boolean actionOnDoubleClick(TGComponent tgc) {
         //
         /*if (tgc instanceof TCDTClass) {
@@ -80,6 +78,7 @@ public class TMLCPPanel extends TDiagramPanel {
         return false;
     }
     
+    @Override
     public boolean actionOnAdd(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
             TCDTClass tgcc = (TCDTClass)(tgc);
@@ -89,6 +88,7 @@ public class TMLCPPanel extends TDiagramPanel {
         return false;
     }
     
+    @Override
     public boolean actionOnRemove(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
             TCDTClass tgcc = (TCDTClass)(tgc);
@@ -99,6 +99,7 @@ public class TMLCPPanel extends TDiagramPanel {
         return false;
     }
     
+    @Override
     public boolean actionOnValueChanged(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
             return actionOnDoubleClick(tgc);
@@ -106,26 +107,32 @@ public class TMLCPPanel extends TDiagramPanel {
         return false;
     }
     
+    @Override
     public String getXMLHead() {
         return "<CommunicationPatternDiagramPanel name=\"" + name + "\"" + sizeParam() + " >";
     }
     
+    @Override
     public String getXMLTail() {
         return "</CommunicationPatternDiagramPanel>";
     }
     
+    @Override
     public String getXMLSelectedHead() {
         return "<CommunicationPatternDiagramPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >";
     }
     
+    @Override
     public String getXMLSelectedTail() {
         return "</CommunicationPatternDiagramPanelCopy>";
     }
     
+    @Override
     public String getXMLCloneHead() {
         return "<CommunicationPatternDiagramPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >";
     }
     
+    @Override
     public String getXMLCloneTail() {
         return "</CommunicationPatternDiagramPanelCopy>";
     }
@@ -183,7 +190,7 @@ public class TMLCPPanel extends TDiagramPanel {
     }*/
     
     public void makePostLoadingProcessing() throws MalformedModelingException {
-        TGComponent tgc;
+       // TGComponent tgc;
         
         /*for(int i=0; i<componentList.size(); i++) {
             tgc = (TGComponent)(componentList.elementAt(i));
@@ -225,7 +232,7 @@ public class TMLCPPanel extends TDiagramPanel {
         //
         Vector<TGComponent> v = new Vector<>();
         Object o;
-        Iterator iterator = componentList.listIterator();
+        Iterator<TGComponent> iterator = componentList.listIterator();
         
         while(iterator.hasNext()) {
             o = iterator.next();
@@ -243,8 +250,6 @@ public class TMLCPPanel extends TDiagramPanel {
         TGConnector tgcon;
         int i;
         
-        //
-        
         if (tgc == null) {
             return;
         }
@@ -275,8 +280,8 @@ public class TMLCPPanel extends TDiagramPanel {
         }
     }
 	
+    @Override
 	public boolean hasAutoConnect() {
 		return true;
 	}
-   
 }
diff --git a/src/main/java/ui/tmlcp/TMLCPRefAD.java b/src/main/java/ui/tmlcp/TMLCPRefAD.java
index 621a6c6772be6fe0b50f9016ddb4fb75169887bc..5e07d716018dd43b9402c9b5ebbfcd8d6a1c8cef 100755
--- a/src/main/java/ui/tmlcp/TMLCPRefAD.java
+++ b/src/main/java/ui/tmlcp/TMLCPRefAD.java
@@ -37,13 +37,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlcp;
 
 import myutil.GraphicLib;
 import ui.*;
+import ui.ad.TADOneLineText;
 import ui.util.IconManager;
 
 import javax.swing.*;
@@ -59,7 +57,7 @@ import java.awt.geom.Line2D;
  * @version 1.0 17/02/2014
  * @author Ludovic APVRILLE, Andrea ENRICI
  */
-public class TMLCPRefAD extends TGCOneLineText {
+public class TMLCPRefAD extends TADOneLineText /* Issue #69 TGCOneLineText*/ {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
@@ -89,6 +87,7 @@ public class TMLCPRefAD extends TGCOneLineText {
         myImageIcon = IconManager.imgic400;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         //int w2 = g.getFontMetrics().stringWidth("ref");
         int w  = g.getFontMetrics().stringWidth(value) /*+ w2*/;
@@ -119,6 +118,7 @@ public class TMLCPRefAD extends TGCOneLineText {
 
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -136,12 +136,13 @@ public class TMLCPRefAD extends TGCOneLineText {
     }
 
 
+    @Override
     public int getType() {
         return TGComponentManager.TMLCP_REF_CP;
     }
 
+    @Override
     public void addActionToPopupMenu( JPopupMenu componentMenu, ActionListener menuAL, int x, int y ) {
-
         componentMenu.addSeparator();
         boolean b = ( (TMLCPPanel)tdp ).isTMLCPCreated( name );
         JMenuItem isCPCreated;
@@ -157,8 +158,8 @@ public class TMLCPRefAD extends TGCOneLineText {
         componentMenu.add( isCPCreated );
     }
 
+    @Override
     public boolean eventOnPopup( ActionEvent e ) {
-
         boolean b = ( (TMLCPPanel)tdp ).isTMLCPCreated( name );
         if (b) {
             ( (TMLCPPanel)tdp ).openTMLCPDiagram( name );
@@ -170,13 +171,13 @@ public class TMLCPRefAD extends TGCOneLineText {
         return true;
     }
 
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.CONNECTOR_TMLCP;
     }
 
-    @Override public boolean editOndoubleClick( JFrame frame ) {
-
-        //
+    @Override
+    public boolean editOndoubleClick( JFrame frame ) {
         String text = "Reference to AD: ";
         if( hasFather() ) {
             text = getTopLevelName() + " / " + text;
diff --git a/src/main/java/ui/tmlcp/TMLCPRefSD.java b/src/main/java/ui/tmlcp/TMLCPRefSD.java
index da3776579b218ce6bee5058d08b3faea9f064ccd..dc6bb9e8469ffe7fc6f6b911a8aa3e1fc8179d92 100755
--- a/src/main/java/ui/tmlcp/TMLCPRefSD.java
+++ b/src/main/java/ui/tmlcp/TMLCPRefSD.java
@@ -36,22 +36,28 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlcp;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.tmlsd.TMLSDPanel;
-import ui.util.IconManager;
-
-import javax.swing.*;
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Graphics;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.geom.Line2D;
 
+import javax.swing.JFrame;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPopupMenu;
+
+import myutil.GraphicLib;
+import ui.ColorManager;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADOneLineText;
+import ui.util.IconManager;
+
 /**
  * Class TMLCPRefSD
  * Reference to an SD in a communication pattern diagram
@@ -59,12 +65,12 @@ import java.awt.geom.Line2D;
  * @version 1.0 17/02/2014
  * @author Ludovic APVRILLE
  */
-public class TMLCPRefSD extends TGCOneLineText {
+public class TMLCPRefSD extends TADOneLineText /* Issue #69 TGCOneLineText*/ {
     protected int lineLength = 5;
     protected int textX =  5;
     protected int textY =  15;
     protected int arc = 5;
-		private TMLSDPanel refToSD;
+	//	private TMLSDPanel refToSD;
 //		private TGConnectorTMLCP[] connectors = new TGConnectorTMLCP[2];
 		//private int index = 0;
 
@@ -87,11 +93,12 @@ public class TMLCPRefSD extends TGCOneLineText {
         removable = true;
         value = "Reference to a SD";
         name = "SequenceDiagram";
-				refToSD = null;
+		//		refToSD = null;
 
         myImageIcon = IconManager.imgic400;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         //int w2 = g.getFontMetrics().stringWidth("ref");
         int w  = g.getFontMetrics().stringWidth(value) /*+ w2*/;
@@ -118,6 +125,7 @@ public class TMLCPRefSD extends TGCOneLineText {
         g.drawLine(x+15, y+15, x+25, y+8);
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -134,41 +142,42 @@ public class TMLCPRefSD extends TGCOneLineText {
         return value;
     }
     
-    
+    @Override
     public int getType() {
         return TGComponentManager.TMLCP_REF_SD;
     }
     
+    @Override
     public void addActionToPopupMenu( JPopupMenu componentMenu, ActionListener menuAL, int x, int y ) {
-			
-			componentMenu.addSeparator();
-      boolean b = ((TMLCPPanel)tdp).isTMLCPSDCreated( name );
-      JMenuItem isSDCreated;
-        
-      if( b )	{ 
-				isSDCreated = new JMenuItem("Open diagram");
-			}
-			else	{
-				isSDCreated = new JMenuItem( "Create Sequence Diagram" );
-      }
-        
-      isSDCreated.addActionListener( menuAL );
-      componentMenu.add( isSDCreated );
+    	componentMenu.addSeparator();
+    	boolean b = ((TMLCPPanel)tdp).isTMLCPSDCreated( name );
+    	JMenuItem isSDCreated;
+
+    	if( b )	{ 
+    		isSDCreated = new JMenuItem("Open diagram");
+    	}
+    	else	{
+    		isSDCreated = new JMenuItem( "Create Sequence Diagram" );
+    	}
+
+    	isSDCreated.addActionListener( menuAL );
+    	componentMenu.add( isSDCreated );
     }
     
+    @Override
     public boolean eventOnPopup(ActionEvent e) {
-
-			boolean b = ((TMLCPPanel)tdp).isTMLCPSDCreated( name );
-      if( b )	{
-				( (TMLCPPanel)tdp ).openTMLCPSequenceDiagram( name );
-      }
-			else {
-				( (TMLCPPanel)tdp ).createTMLCPSequenceDiagram( name );
-			}
-      tdp.getMouseManager().setSelection(-1, -1);
-      return true;
+    	boolean b = ((TMLCPPanel)tdp).isTMLCPSDCreated( name );
+    	if( b )	{
+    		( (TMLCPPanel)tdp ).openTMLCPSequenceDiagram( name );
+    	}
+    	else {
+    		( (TMLCPPanel)tdp ).createTMLCPSequenceDiagram( name );
+    	}
+    	tdp.getMouseManager().setSelection(-1, -1);
+    	return true;
     }
 	
+    @Override
 	public int getDefaultConnector() {
       return TGComponentManager.CONNECTOR_TMLCP;
     }
@@ -177,28 +186,26 @@ public class TMLCPRefSD extends TGCOneLineText {
 		refToSD = _panel;
 	}*/
 
-	@Override public boolean editOndoubleClick(JFrame frame) {
-		
-		//
-     String text = "Reference to a SD: ";
-    if( hasFather() ) {
+	@Override
+	public boolean editOndoubleClick(JFrame frame) {
+		String text = "Reference to a SD: ";
+		if( hasFather() ) {
 			text = getTopLevelName() + " / " + text;
-    }
-    String s = (String) JOptionPane.showInputDialog(frame, text,
-		"Setting Name", JOptionPane.PLAIN_MESSAGE, IconManager.imgic100, null, getName() );
-    if( (s != null) && (s.length() > 0) )	{
-    	if (nameUsed(s)) {
-            JOptionPane.showMessageDialog(frame,
-                                          "Error: the name is already in use",
-                                          "Name modification",
-                                          JOptionPane.ERROR_MESSAGE);
-            return false;
-        }
-    		renameTab(s);
+		}
+		String s = (String) JOptionPane.showInputDialog(frame, text,
+				"Setting Name", JOptionPane.PLAIN_MESSAGE, IconManager.imgic100, null, getName() );
+		if( (s != null) && (s.length() > 0) )	{
+			if (nameUsed(s)) {
+				JOptionPane.showMessageDialog(frame,
+						"Error: the name is already in use",
+						"Name modification",
+						JOptionPane.ERROR_MESSAGE);
+				return false;
+			}
+			renameTab(s);
 			setName(s);
 			return true;
 		}
-    return false;
+		return false;
     }
-
 }	//End of Class
diff --git a/src/main/java/ui/tmlcp/TMLCPStartState.java b/src/main/java/ui/tmlcp/TMLCPStartState.java
index d7eadfa554e6ffa5124cf796bec44e76a906ed5d..03816840c1817200800f6c78f911828490f48d92 100755
--- a/src/main/java/ui/tmlcp/TMLCPStartState.java
+++ b/src/main/java/ui/tmlcp/TMLCPStartState.java
@@ -36,17 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
- 
 package ui.tmlcp;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
-import java.awt.geom.Line2D;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADStartState;
 
 /**
  * Class TMLCPStartState
@@ -55,52 +51,61 @@ import java.awt.geom.Line2D;
  * @version 1.0 17/02/2014
  * @author Ludovic APVRILLE
  */
-public class TMLCPStartState extends TGCWithoutInternalComponent{
+public class TMLCPStartState extends TADStartState /* Issue #69 TGCWithoutInternalComponent*/{
 	private int lineLength = 5;
 
 	public TMLCPStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 		
-		width = 15;
-		height = 15;
+//		width = 15;
+//		height = 15;
+//
+//		nbConnectingPoint = 1;
+//		connectingPoint = new TGConnectingPoint[1];
+//		connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.5, 1.0);
+//
+//		nbInternalTGComponent = 0;
+//
+//		moveable = true;
+//		editable = false;
+//		removable = true;
+//	
+//		name = "start state";
+//		
+//		myImageIcon = IconManager.imgic222;
+	}
 
+	@Override
+    protected void createConnectingPoints() {
 		nbConnectingPoint = 1;
 		connectingPoint = new TGConnectingPoint[1];
 		connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.5, 1.0);
-
-		nbInternalTGComponent = 0;
-
-		moveable = true;
-		editable = false;
-		removable = true;
-	
-		name = "start state";
-		
-		myImageIcon = IconManager.imgic222;
 	}
 
-	public void internalDrawing(Graphics g) {
-		g.fillOval(x, y, width, height);
-		g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
-	}
+//	public void internalDrawing(Graphics g) {
+//		g.fillOval(x, y, width, height);
+//		g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
+//	}
 
-	public TGComponent isOnMe(int _x, int _y) {
-		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-			return this;
-		}
-		
-		if ((int)(Line2D.ptSegDistSq(x+(width/2), y+height, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
-			return this;	
-		}
-		
-		return null;
-	}
+//	public TGComponent isOnMe(int _x, int _y) {
+//		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//			return this;
+//		}
+//		
+//		if ((int)(Line2D.ptSegDistSq(x+(width/2), y+height, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
+//			return this;	
+//		}
+//		
+//		return null;
+//	}
 	
+	@Override
 	public int getType() {
 		return TGComponentManager.TMLCP_START_STATE;
 	}	
 	
+	@Override
 	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLCP;
+		return TGComponentManager.CONNECTOR_TMLCP;
     }
 }
\ No newline at end of file
diff --git a/src/main/java/ui/tmlcp/TMLCPStopState.java b/src/main/java/ui/tmlcp/TMLCPStopState.java
index f5f6bdc4be267b5a6560f742051095cc6b96fed9..238b27a331a28c1e34f5ecd4f0ae2b0e195e6a59 100755
--- a/src/main/java/ui/tmlcp/TMLCPStopState.java
+++ b/src/main/java/ui/tmlcp/TMLCPStopState.java
@@ -35,17 +35,14 @@
  * 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 ui.tmlcp;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-
-import java.awt.*;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.ad.TADStopState;
 
 /**
  * Class TMLCPStopState
@@ -54,55 +51,55 @@ import java.awt.*;
  * @version 1.0 30/09/2004
  * @author Ludovic APVRILLE
  */
-public class TMLCPStopState extends TGCWithoutInternalComponent{
-	private int internalCircleSize = 16;
-	private int lineLength = 5;
+public class TMLCPStopState extends TADStopState /* Issue #69 TGCWithoutInternalComponent*/{
+//	private int internalCircleSize = 16;
+//	private int lineLength = 5;
 
 	public TMLCPStopState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-		width = 20;
-		height = 20;
+//		width = 20;
+//		height = 20;
+//
+//		nbConnectingPoint = 1;
+//		connectingPoint = new TGConnectingPoint[1];
+//		connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, - lineLength, true, false, 0.5, 0.0);
+//
+//		nbInternalTGComponent = 0;
+//
+//		moveable = true;
+//		editable = false;
+//		removable = true;
+//	
+//		name = "stop state";
+//		
+//		myImageIcon = IconManager.imgic210;
+	}
 
+	@Override
+	protected void createConnectingPoints() {
 		nbConnectingPoint = 1;
 		connectingPoint = new TGConnectingPoint[1];
 		connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, - lineLength, true, false, 0.5, 0.0);
-
-		nbInternalTGComponent = 0;
-
-		moveable = true;
-		editable = false;
-		removable = true;
-	
-		name = "stop state";
-		
-		myImageIcon = IconManager.imgic210;
-	}
-
-	public void internalDrawing(Graphics g) {
-		ColorManager.setColor(g, state, 0);
-		g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize);
-		g.drawOval(x, y, width, height);
-		g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
 	}
 
-
-	public TGComponent isOnMe(int _x, int _y) {
-		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-			return this;
-		}
-		return null;
-	}
+//	public void internalDrawing(Graphics g) {
+//		ColorManager.setColor(g, state, 0);
+//		g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize);
+//		g.drawOval(x, y, width, height);
+//		g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
+//	}
+//
+//
+//	public TGComponent isOnMe(int _x, int _y) {
+//		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+//			return this;
+//		}
+//		return null;
+//	}
 	
+    @Override
 	public int getType() {
 		return TGComponentManager.TMLCP_STOP_STATE;
 	}
-	
 }
-
-
-
-
-    
-
-
diff --git a/src/main/java/ui/tmlcp/TMLCPToolBar.java b/src/main/java/ui/tmlcp/TMLCPToolBar.java
index a75922b2cf303fd4de6dba6e6b40755961853f71..aca7bcf04ae1881d51f92a490421d16d5b9b1a0f 100755
--- a/src/main/java/ui/tmlcp/TMLCPToolBar.java
+++ b/src/main/java/ui/tmlcp/TMLCPToolBar.java
@@ -37,9 +37,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.tmlcp;
 
 import ui.MainGUI;
@@ -48,9 +45,6 @@ import ui.TToolBar;
 
 import javax.swing.*;
 
-//import java.awt.*;
-//import java.awt.event.*;
-
 /**
    * Class TMLCPToolBar
    * Implements the toolbar to be used in conjunction with the panel of an interaction overview diagram
@@ -63,9 +57,9 @@ public class TMLCPToolBar extends TToolBar {
 
     public TMLCPToolBar(MainGUI _mgui) {
         super(_mgui);
-
     }
 
+    @Override
     protected void setActive(boolean b) {
         mgui.actions[TGUIAction.TMLCP_EDIT].setEnabled(b);
         mgui.actions[TGUIAction.UML_NOTE].setEnabled(b);
@@ -79,7 +73,7 @@ public class TMLCPToolBar extends TToolBar {
         mgui.actions[TGUIAction.TMLCP_START].setEnabled(b);
         mgui.actions[TGUIAction.TMLCP_STOP].setEnabled(b);
         //mgui.actions[TGUIAction.TMLCP_JUNCTION].setEnabled(b);
-	mgui.actions[TGUIAction.TMLCP_FOR_LOOP].setEnabled(b);
+        mgui.actions[TGUIAction.TMLCP_FOR_LOOP].setEnabled(b);
         mgui.actions[TGUIAction.ACT_ENHANCE].setEnabled(b);
 
         mgui.actions[TGUIAction.ACT_ZOOM_MORE].setEnabled(false);
@@ -90,6 +84,7 @@ public class TMLCPToolBar extends TToolBar {
 
     }
 
+    @Override
     protected void setButtons() {
         JButton button;
 
@@ -129,7 +124,7 @@ public class TMLCPToolBar extends TToolBar {
         button.addMouseListener(mgui.mouseHandler);
 
         button = this.add(mgui.actions[TGUIAction.TMLCP_JOIN]);
-	button.addMouseListener(mgui.mouseHandler);
+        button.addMouseListener(mgui.mouseHandler);
 	
 
         button = this.add(mgui.actions[TGUIAction.TMLCP_CHOICE]);
@@ -138,14 +133,12 @@ public class TMLCPToolBar extends TToolBar {
         /*button = this.add(mgui.actions[TGUIAction.TMLCP_JUNCTION]);
 	  button.addMouseListener(mgui.mouseHandler);*/
 
-	button = this.add(mgui.actions[TGUIAction.TMLCP_FOR_LOOP]);
-	button.addMouseListener(mgui.mouseHandler);
+        button = this.add(mgui.actions[TGUIAction.TMLCP_FOR_LOOP]);
+        button.addMouseListener(mgui.mouseHandler);
 
         this.addSeparator();
 
         button = this.add(mgui.actions[TGUIAction.ACT_ENHANCE]);
         button.addMouseListener(mgui.mouseHandler);
-
     }
-
 } // Class
diff --git a/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java b/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java
index e4ba382344471f10a966ad4de782779ee427e33d..1d1c8571b49ddee9c7ff55e2515605062f647938 100755
--- a/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java
+++ b/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java
@@ -69,6 +69,7 @@ public class TMLArchiDiagramToolBar extends TToolBar  implements ActionListener
         super(_mgui);
     }
 
+    @Override
     protected void setActive(boolean b) {
         mgui.actions[TGUIAction.TMLARCHI_EDIT].setEnabled(b);
         mgui.actions[TGUIAction.UML_NOTE].setEnabled(b);
@@ -100,6 +101,7 @@ public class TMLArchiDiagramToolBar extends TToolBar  implements ActionListener
         mgui.updateZoomInfo();
     }
 
+    @Override
     protected void setButtons() {
         JButton button;
 
diff --git a/src/main/java/ui/util/DefaultText.java b/src/main/java/ui/util/DefaultText.java
index ca6785b0a23c9f45212c3f2903e5d5f9dff58346..53a16508a09d2d47ef5ce99987d7db935fff7407 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 = "12707";
-    public static String DATE = "2018/07/23 16:51:06 CET";
+    public static String BUILD = "12734";
+    public static String DATE = "2018/08/23 02:01:53 CET";
 
     public static StringBuffer sbAbout = makeAbout();
 
diff --git a/src/main/java/ui/util/IconManager.java b/src/main/java/ui/util/IconManager.java
index b54bb121219ad0ed343b1f21a3ccd9a7f951c15d..d85639588433221e0c71ba60057ee2823edfe669 100755
--- a/src/main/java/ui/util/IconManager.java
+++ b/src/main/java/ui/util/IconManager.java
@@ -183,11 +183,11 @@ public class IconManager {
     public static ImageIcon imgic2111; //New icon created by Solange
     
     // SystemC-AMS
-    public static ImageIcon imgic8000, imgic8001, imgic8002, imgic8003, imgic8004, imgic8005, imgic8006, imgic8007, imgic8008, imgic8009;
+    public static ImageIcon imgic8000, imgic8001, imgic8002, imgic8003, imgic8004, imgic8005, imgic8006;
 
     // ELN
-    public static ImageIcon imgic8020, imgic8021, imgic8022, imgic8023, imgic8024, imgic8025, imgic8026, imgic8027, imgic8028, imgic8029, 
-    						imgic8030, imgic8031, imgic8032, imgic8033, imgic8034;
+    public static ImageIcon imgic8010, imgic8011, imgic8012, imgic8013, imgic8014, imgic8015, imgic8016, imgic8017, imgic8018, imgic8019, 
+    						imgic8020, imgic8021, imgic8022, imgic8023, imgic8024, imgic8025, imgic8026, imgic8027, imgic8028, imgic8029;
     
     //private static String icon7 = "turtle_large.gif";
     private static String ttoolStringIcon = "starting_logo.gif";
@@ -669,31 +669,33 @@ public class IconManager {
     // SystemC-AMS
     private static String icon8000 = "camstdfport.gif";
     private static String icon8001 = "camsdeport.gif";
-    private static String icon8002 = "camsconverterportW.gif";
-    private static String icon8003 = "camsconverterportE.gif";
-    private static String icon8004 = "camsconverterportN.gif";
-    private static String icon8005 = "camsconverterportS.gif";
-    private static String icon8006 = "camsclusterblock.gif";
-    private static String icon8007 = "camstdfblock.gif";
-    private static String icon8008 = "camsdeblock.gif";
-    private static String icon8009 = "camsgpio2vciblock.gif";
+    private static String icon8002 = "camsconverterport.gif";
+    private static String icon8003 = "camsclusterblock.gif";
+    private static String icon8004 = "camstdfblock.gif";
+    private static String icon8005 = "camsdeblock.gif";
+    private static String icon8006 = "camsgpio2vciblock.gif";
     
     // ELN
-    private static String icon8020 = "elnresistor.gif";
-    private static String icon8021 = "elncapacitor.gif";
-    private static String icon8022 = "elninductor.gif";
-    private static String icon8023 = "elnvcvs.gif";
-    private static String icon8024 = "elnvccs.gif";
-    private static String icon8025 = "elnidealtransformer.gif";
-    private static String icon8026 = "elntransmissionline.gif";
-    private static String icon8027 = "elnvsource.gif";
-    private static String icon8028 = "elnisource.gif";
-    private static String icon8029 = "elnground.gif";
-    private static String icon8030 = "elntdfvsink.gif";
-    private static String icon8031 = "elntdfisink.gif";
-    private static String icon8032 = "elnportterminal.gif";
-    private static String icon8033 = "elntdfvsource.gif";
-    private static String icon8034 = "elntdfisource.gif";
+    private static String icon8010 = "elnresistor.gif";
+    private static String icon8011 = "elncapacitor.gif";
+    private static String icon8012 = "elninductor.gif";
+    private static String icon8013 = "elnvcvs.gif";
+    private static String icon8014 = "elnvccs.gif";
+    private static String icon8015 = "elnidealtransformer.gif";
+    private static String icon8016 = "elntransmissionline.gif";
+    private static String icon8017 = "elnvsource.gif";
+    private static String icon8018 = "elnisource.gif";
+    private static String icon8019 = "elnground.gif";
+    private static String icon8020 = "elntdfvsink.gif";
+    private static String icon8021 = "elntdfisink.gif";
+    private static String icon8022 = "elnterminal.gif";
+    private static String icon8023 = "elntdfvsource.gif";
+    private static String icon8024 = "elntdfisource.gif";
+    private static String icon8025 = "elnmodule.gif";
+    private static String icon8026 = "elndeisink.gif";
+    private static String icon8027 = "elndeisource.gif";
+    private static String icon8028 = "elndevsink.gif";
+    private static String icon8029 = "elndevsource.gif";
     
     public IconManager() {
 
@@ -1191,10 +1193,17 @@ public class IconManager {
         imgic8004 = getIcon(icon8004);
         imgic8005 = getIcon(icon8005);
         imgic8006 = getIcon(icon8006);
-        imgic8007 = getIcon(icon8007);
-        imgic8008 = getIcon(icon8008);
-        imgic8009 = getIcon(icon8009);
 
+        imgic8010 = getIcon(icon8010);
+        imgic8011 = getIcon(icon8011);
+        imgic8012 = getIcon(icon8012);
+        imgic8013 = getIcon(icon8013);
+        imgic8014 = getIcon(icon8014);
+        imgic8015 = getIcon(icon8015);
+        imgic8016 = getIcon(icon8016);
+        imgic8017 = getIcon(icon8017);
+        imgic8018 = getIcon(icon8018);
+        imgic8019 = getIcon(icon8019);
         imgic8020 = getIcon(icon8020);
         imgic8021 = getIcon(icon8021);
         imgic8022 = getIcon(icon8022);
@@ -1205,11 +1214,6 @@ public class IconManager {
         imgic8027 = getIcon(icon8027);
         imgic8028 = getIcon(icon8028);
         imgic8029 = getIcon(icon8029);
-        imgic8030 = getIcon(icon8030);
-        imgic8031 = getIcon(icon8031);
-        imgic8032 = getIcon(icon8032);
-        imgic8033 = getIcon(icon8033);
-        imgic8034 = getIcon(icon8034);
     }
 
 } // Class
diff --git a/src/main/java/ui/window/JBirdPanel.java b/src/main/java/ui/window/JBirdPanel.java
index 5b0265f9fc0c8b23399ae44bde72d35b96d65ac4..9c37bc6b7f025968aabfe120cfc7699d3191b919 100644
--- a/src/main/java/ui/window/JBirdPanel.java
+++ b/src/main/java/ui/window/JBirdPanel.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.window;
 
 import ui.ColorManager;
@@ -51,7 +48,6 @@ import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
 
-
 /**
  * Class JbirdPanel
  * Panel for displaying bird'eyes view of panels
@@ -60,7 +56,8 @@ import java.awt.event.MouseMotionListener;
  * @author Ludovic APVRILLE
  */
 public class JBirdPanel extends JPanel implements MouseListener, MouseMotionListener {
-    private MainGUI mgui;
+
+	private MainGUI mgui;
     private int w, h, wc, wh;
     //private Image image, scaledImage;
     //private Graphics graphics;
@@ -84,6 +81,7 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList
         startProcess();
     }
     
+    @Override
     protected void paintComponent(Graphics g) {
         if (isShowing()) {
             super.paintComponent(g);
@@ -109,8 +107,7 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList
         }
     }
     
-    
-    public void centerRectangle(int x, int y) {
+    private void centerRectangle(int x, int y) {
         if (rect != null) {
             x = (int)(x - rect.width*wratio/2);
             y = (int)(y - rect.height*hratio/2);
@@ -127,6 +124,7 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList
         }
     }
     
+    @Override
     public void mousePressed(MouseEvent e) {
         //
         //startX = e.getX();
@@ -145,28 +143,27 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList
         }
     }
     
-    public void mouseReleased(MouseEvent e) {
-        
+    @Override
+   public void mouseReleased(MouseEvent e) {
     }
     
+    @Override
     public void mouseEntered(MouseEvent e) {
-        
     }
     
+    @Override
     public void mouseExited(MouseEvent e) {
-        
     }
     
+    @Override
     public void mouseClicked(MouseEvent e) {
-        
     }
     
-    
+    @Override
     public void mouseMoved(MouseEvent e) {
-        
-        
     }
     
+    @Override
     public void mouseDragged(MouseEvent e) {
         centerRectangle(e.getX(), e.getY());
     }
@@ -183,5 +180,4 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList
     public boolean getGo() {
         return go;
     }
-    
 }
diff --git a/src/main/java/ui/window/JDialogAvatarBlock.java b/src/main/java/ui/window/JDialogAvatarBlock.java
index 1990712faa3069c10c8a83a1d3c92243aceeca70..c3bdb5e3252b86d5d92c10d2d02e5006743acb75 100644
--- a/src/main/java/ui/window/JDialogAvatarBlock.java
+++ b/src/main/java/ui/window/JDialogAvatarBlock.java
@@ -48,10 +48,19 @@ import ui.TAttribute;
 import javax.swing.*;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -64,10 +73,10 @@ import java.util.LinkedList;
  */
 public class JDialogAvatarBlock extends JDialogBase implements ActionListener, ListSelectionListener {
 
-    private LinkedList<TAttribute> attributes, attributesPar, forbidden;
-    private LinkedList<Boolean> initValues;
-    private LinkedList<AvatarMethod> methods, methodsPar;
-    private LinkedList<AvatarSignal> signals, signalsPar;
+    private List<TAttribute> attributes, attributesPar, forbidden;
+    private List<Boolean> initValues;
+    private List<AvatarMethod> methods, methodsPar;
+    private List<AvatarSignal> signals, signalsPar;
     private boolean checkKeyword, checkJavaKeyword;
 
     private boolean cancelled = true;
@@ -122,7 +131,7 @@ public class JDialogAvatarBlock extends JDialogBase implements ActionListener, L
     /**
      * Creates new form
      */
-    public JDialogAvatarBlock(LinkedList<TAttribute> _attributes, LinkedList<AvatarMethod> _methods, LinkedList<AvatarSignal> _signals, LinkedList<TAttribute> _forbidden, Frame f, String title, String attrib, int _tab, String[] _globalCode, boolean _hasGlobalCode, String _mainCode) {
+    public JDialogAvatarBlock( List<TAttribute> _attributes, List<AvatarMethod> _methods, List<AvatarSignal> _signals, List<TAttribute> _forbidden, Frame f, String title, String attrib, int _tab, String[] _globalCode, boolean _hasGlobalCode, String _mainCode) {
         super(f, title, true);
         frame = f;
         attributesPar = _attributes;
diff --git a/src/main/java/ui/window/JDialogAvatarSignal.java b/src/main/java/ui/window/JDialogAvatarSignal.java
index c463100117e717db09c6518b180c254d5dfd0185..611cfe791b2fb3e49bc3f13926492324faa8ad51 100644
--- a/src/main/java/ui/window/JDialogAvatarSignal.java
+++ b/src/main/java/ui/window/JDialogAvatarSignal.java
@@ -38,19 +38,28 @@
 
 package ui.window;
 
-import ui.AvatarSignal;
-import ui.util.IconManager;
-import ui.TGComponent;
-import myutil.TraceManager;
-
-import javax.swing.*;
-import java.awt.*;
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Vector;
 
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import myutil.TraceManager;
+import ui.AvatarSignal;
+import ui.TGComponent;
 
 /**
  * Class JDialogAvatarSignal
@@ -61,8 +70,8 @@ import java.util.Vector;
  */
 public class JDialogAvatarSignal extends JDialogBase implements ActionListener  {
 
-    private LinkedList<AvatarSignal> signals, realSignals;
-    private LinkedList<String> showSignals;
+    private List<AvatarSignal> signals, realSignals;
+    private List<String> showSignals;
     private String currentSignal;
     private boolean isOut;
 	
@@ -81,8 +90,7 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
     private JTextField signal;
 
     /** Creates new form  */
-    public JDialogAvatarSignal(Frame _f, String _title, String _currentSignal, LinkedList<AvatarSignal> _signals, boolean _isOut, TGComponent _reference, Vector<TGComponent> _refs) {
-
+    public JDialogAvatarSignal(Frame _f, String _title, String _currentSignal, List<AvatarSignal> _signals, boolean _isOut, TGComponent _reference, Vector<TGComponent> _refs) {
         super(_f, _title, true);
 
         signals = _signals;
@@ -91,16 +99,14 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
 		reference=_reference;
 		refs=_refs;
 
-
         makeSignals();
 
         initComponents();
-        myInitComponents();
+//        myInitComponents();
 
         pack();
     }
 
-
     private void makeSignals() {
         showSignals = new LinkedList<String> ();
         realSignals = new LinkedList<AvatarSignal> ();
@@ -112,11 +118,8 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
             }
     }
 
-
-
-    private void myInitComponents() {
-    }
-
+//    private void myInitComponents() {
+//    }
 
     private void initComponents() {
         Container c = getContentPane();
@@ -187,6 +190,7 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
         c.add(buttons, BorderLayout.SOUTH);
     }
 
+    @Override
     public void	actionPerformed(ActionEvent evt)  {
         //String command = evt.getActionCommand();
 
@@ -218,7 +222,6 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
 		return (TGComponent) refChecks.getSelectedItem();
 	}
 
-
     public boolean hasValidString() {
         return signal.getText().length() > 0;
     }
diff --git a/src/main/java/ui/window/JDialogAvatarTimer.java b/src/main/java/ui/window/JDialogAvatarTimer.java
index 845172d98b277dfb7457c85edb30ffb0082b84ec..913b268c5aa7a90f37e8792226fcf92f1e282e97 100644
--- a/src/main/java/ui/window/JDialogAvatarTimer.java
+++ b/src/main/java/ui/window/JDialogAvatarTimer.java
@@ -36,18 +36,25 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.window;
 
-import ui.util.IconManager;
-
-import javax.swing.*;
-import java.awt.*;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.LinkedList;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.border.TitledBorder;
 
 /**
  * Class JDialogAvatarTimer
@@ -58,7 +65,7 @@ import java.util.LinkedList;
  */
 public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
 
-    private LinkedList<String> timers;
+    private List<String> timers;
 
     private boolean cancelled = true;
     private JPanel panel1, panel2;
@@ -77,8 +84,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
 
 
     /** Creates new form  */
-    public JDialogAvatarTimer(Frame _f, String _title, String _timer, String _value, LinkedList<String> _timers, boolean _setValue) {
-
+    public JDialogAvatarTimer(Frame _f, String _title, String _timer, String _value, List<String> _timers, boolean _setValue) {
         super(_f, _title, true);
 
         timers = _timers;
@@ -87,13 +93,13 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
         setValue = _setValue;
 
         initComponents();
-        myInitComponents();
+     //   myInitComponents();
         pack();
     }
-
-
-    private void myInitComponents() {
-    }
+//
+//
+//    private void myInitComponents() {
+//    }
 
     private void initComponents() {
         Container c = getContentPane();
@@ -102,7 +108,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
         GridBagLayout gridbag2 = new GridBagLayout();
         GridBagConstraints c0 = new GridBagConstraints();
         GridBagConstraints c1 = new GridBagConstraints();
-        GridBagConstraints c2 = new GridBagConstraints();
+        //GridBagConstraints c2 = new GridBagConstraints();
 
         setFont(new Font("Helvetica", Font.PLAIN, 14));
         c.setLayout(gridbag0);
@@ -112,7 +118,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
         panel1 = new JPanel();
         panel1.setLayout(gridbag1);
 
-        panel1.setBorder(new javax.swing.border.TitledBorder("Timer"));
+        panel1.setBorder(new TitledBorder("Timer"));
 
         panel1.setPreferredSize(new Dimension(300, 150));
 
diff --git a/src/main/java/ui/window/JDialogAvatarTransition.java b/src/main/java/ui/window/JDialogAvatarTransition.java
index fa6a4772183309ec845df40fff2b1dd71a851c19..ff423d54bd155d2ee20b3164a509152cfec139aa 100644
--- a/src/main/java/ui/window/JDialogAvatarTransition.java
+++ b/src/main/java/ui/window/JDialogAvatarTransition.java
@@ -36,24 +36,48 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.window;
 
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Vector;
 
+import javax.swing.DefaultCellEditor;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTable;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.SwingConstants;
+import javax.swing.border.TitledBorder;
+import javax.swing.event.CellEditorListener;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.text.BadLocationException;
 
-package ui.window;
-
-import myutil.Conversion;
 import myutil.GraphicLib;
 import ui.AvatarMethod;
-import ui.util.IconManager;
+import ui.Expression;
 import ui.TAttribute;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.LinkedList;
-import java.util.Vector;
-
 /**
    * Class JDialogAvatarTransition
    * Dialog for managing transitions between states
@@ -63,25 +87,36 @@ import java.util.Vector;
  */
 public class JDialogAvatarTransition extends JDialogBase implements ActionListener  {
 
-    private Vector<String> actions;
-    private String guard, afterMin, afterMax, computeMin, computeMax, probability;
-    private LinkedList<TAttribute> myAttributes;
-    private LinkedList<AvatarMethod> myMethods;
+    private Vector<Vector<Expression>> actionRows;
+    //private Vector<String> actions;
+    private String guard, afterMin, afterMax, /*computeMin, computeMax,*/ probability;
+    private List<TAttribute> myAttributes;
+    private List<AvatarMethod> myMethods;
     private Vector<String> allElements, insertElements;
 
-    protected String [] filesToInclude;
-    protected String [] codeToInclude;
+//    protected String [] filesToInclude;
+//    protected String [] codeToInclude;
 
     private boolean cancelled = true;
 
-    private JPanel panel1;
-    private JPanel panel2;
+    private JPanel pnlTransitionInfo;
+//    private JPanel panel1;
+//    private JPanel panel2;
 
     // Panel1
-    private JTextField guardT, afterMinT, afterMaxT, computeMinT, computeMaxT, probabilityT;
-    private JTextArea actionsT;
-    private JComboBox<String> elements;
-    private JButton insertElement;
+    private JTextField guardT, afterMinT, afterMaxT, /*computeMinT, computeMaxT,*/ probabilityT;
+    
+    private JTable actionsTable;
+//    private JTextArea actionsT;
+	private final Vector<String> actionsListHeader;
+
+	private JComboBox<String> codeElements;
+    //private JButton insertElement;
+    private JButton insertCodeButton;
+    private JButton addButton;
+	private JButton upButton;
+	private JButton downButton;
+	private JButton removeButton;
 
     // Panel of code and files
     protected JTextArea jtaCode, jtaFiles;
@@ -89,26 +124,45 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
 
     /** Creates new form  */
     // arrayDelay: [0] -> minDelay ; [1] -> maxDelay
-    public JDialogAvatarTransition(Frame _f, String _title, String _guard, String _afterMin, String _afterMax,
-								   String _computeMin, String _computeMax, Vector<String> _actions,
-								   LinkedList<TAttribute> _myAttributes, LinkedList<AvatarMethod> _myMethods,
-								   String[] _filesToInclude, String[] _codeToInclude, String _probability) {
+    public JDialogAvatarTransition(	Frame _f, 
+    								String _title, 
+    								String _guard,
+    								String _afterMin,
+    								String _afterMax,
+								  /* String _computeMin, String _computeMax,*/ 
+    								Vector<Expression> _actions,
+    								List<TAttribute> _myAttributes, 
+    								List<AvatarMethod> _myMethods,
+//    								String[] _filesToInclude, 
+//    								String[] _codeToInclude, 
+    								String _probability) {
 
         super(_f, _title, true);
 
         guard = _guard;
         afterMin = _afterMin;
         afterMax = _afterMax;
-        computeMin = _computeMin;
-        computeMax = _computeMax;
-        actions = _actions;
+//        computeMin = _computeMin;
+//        computeMax = _computeMax;
+
+        actionRows = new Vector<Vector<Expression>>();
+        
+        for ( final Expression actionExpr : _actions ) {
+        	final Vector<Expression> row = new Vector<Expression>();
+        	row.add( actionExpr );
+            actionRows.add( row );
+        }
+
+        actionsListHeader = new Vector<String>();
+
+        //actions = _actions;
         probability = _probability;
 
         myAttributes = _myAttributes;
         myMethods = _myMethods;
 
-        filesToInclude = _filesToInclude;
-        codeToInclude = _codeToInclude;
+//        filesToInclude = _filesToInclude;
+//        codeToInclude = _codeToInclude;
 
         makeElements();
 
@@ -139,15 +193,15 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
 //    }
 //
     private void initComponents() {
-    	int i;
+  //  	int i;
 
     	Container c = getContentPane();
-    	GridBagLayout gridbag0 = new GridBagLayout();
-    	GridBagLayout gridbag1 = new GridBagLayout();
-    	GridBagLayout gridbag2 = new GridBagLayout();
-    	GridBagConstraints c0 = new GridBagConstraints();
-    	GridBagConstraints c1 = new GridBagConstraints();
-    	GridBagConstraints c2 = new GridBagConstraints();
+//    	GridBagLayout gridbag0 = new GridBagLayout();
+//    	GridBagLayout gridbag1 = new GridBagLayout();
+//    	GridBagLayout gridbag2 = new GridBagLayout();
+//    	GridBagConstraints c0 = new GridBagConstraints();
+//    	GridBagConstraints c1 = new GridBagConstraints();
+//    	GridBagConstraints c2 = new GridBagConstraints();
 
     	setFont(new Font("Helvetica", Font.PLAIN, 14));
     	//c.setLayout(gridbag0);
@@ -155,38 +209,72 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
 
     	setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
 
-    	panel1 = new JPanel();
-    	panel1.setLayout(gridbag1);
+    	pnlTransitionInfo = new JPanel();
+    	pnlTransitionInfo.setLayout( new GridBagLayout() );
+
+    	pnlTransitionInfo.setBorder(new TitledBorder("Transition parameters"));
+//    	panel1 = new JPanel();
+//    	panel1.setLayout(gridbag1);
 
-    	panel1.setBorder(new javax.swing.border.TitledBorder("Transition parameters"));
+//    	panel1.setBorder(new javax.swing.border.TitledBorder("Transition parameters"));
 
     	//panel1.setPreferredSize(new Dimension(350, 350));
+		final int defaultMargin = 3;
 
     	// guard
-    	c1.weighty = 1.0;
-    	c1.weightx = 1.0;
-    	c1.gridwidth = 1;
-    	c1.gridheight = 1;
-    	c1.fill = GridBagConstraints.BOTH;
-    	c1.gridheight = 1;
-    	panel1.add(new JLabel("guard = "), c1);
-    	c1.gridwidth = GridBagConstraints.REMAINDER; //end row
+    	final GridBagConstraints constraintsLabels = new GridBagConstraints();
+    	constraintsLabels.weighty = 0.0;
+    	constraintsLabels.weightx = 0.0;
+    	constraintsLabels.gridwidth = 1;
+    	constraintsLabels.gridheight = 1;
+    	constraintsLabels.fill = GridBagConstraints.BOTH;
+    	constraintsLabels.insets = new Insets( defaultMargin, defaultMargin, 0, 0 );
+    	pnlTransitionInfo.add( new JLabel( "guard = ", SwingConstants.RIGHT ), constraintsLabels );
+
+//    	c1.weighty = 1.0;
+//    	c1.weightx = 1.0;
+//    	c1.gridwidth = 1;
+//    	c1.gridheight = 1;
+//    	c1.fill = GridBagConstraints.BOTH;
+//    	c1.gridheight = 1;
+//    	panel1.add(new JLabel("guard = "), c1);
+//    	c1.gridwidth = GridBagConstraints.REMAINDER; //end row
     	guardT = new JTextField(guard);
-    	panel1.add(guardT, c1);
+    	final GridBagConstraints constraintsFields = new GridBagConstraints();
+    	constraintsFields.weighty = 0.0;
+    	constraintsFields.weightx = 1.0;
+    	constraintsFields.gridwidth = GridBagConstraints.REMAINDER; //end row;
+    	constraintsFields.gridheight = 1;
+    	constraintsFields.fill = GridBagConstraints.BOTH;
+    	constraintsFields.insets = new Insets( defaultMargin, 0, 0, defaultMargin );
+    	
+    	pnlTransitionInfo.add( guardT, constraintsFields );
+    	//panel1.add(guardT, c1);
 
     	// After
-    	c1.gridwidth = 1;
-    	c1.gridheight = 1;
-    	c1.weighty = 1.0;
-    	c1.weightx = 1.0;
-    	panel1.add(new JLabel("after ("), c1);
+    	pnlTransitionInfo.add(new JLabel("after ( ", SwingConstants.RIGHT ), constraintsLabels );
+//    	c1.gridwidth = 1;
+//    	c1.gridheight = 1;
+//    	c1.weighty = 1.0;
+//    	c1.weightx = 1.0;
+//    	panel1.add(new JLabel("after ("), c1);
     	afterMinT = new JTextField(afterMin, 10);
-    	panel1.add(afterMinT, c1);
-    	panel1.add(new JLabel(","), c1);
+    	constraintsFields.gridwidth = 1;
+    	constraintsFields.insets.right = 0;
+    	pnlTransitionInfo.add(afterMinT, constraintsFields );
+    	constraintsLabels.insets.left = 0;
+    	pnlTransitionInfo.add(new JLabel( ", " ), constraintsLabels );
+//    	panel1.add(afterMinT, c1);
+  // 	panel1.add(new JLabel(","), c1);
     	afterMaxT = new JTextField(afterMax, 10);
-    	panel1.add(afterMaxT, c1);
-    	c1.gridwidth = GridBagConstraints.REMAINDER; //end row
-    	panel1.add(new JLabel(")"), c1);
+    	pnlTransitionInfo.add(afterMaxT, constraintsFields );
+    	constraintsLabels.gridwidth = GridBagConstraints.REMAINDER;
+    	constraintsLabels.insets.right = defaultMargin;
+    	pnlTransitionInfo.add(new JLabel( " )" ), constraintsLabels );
+    	constraintsLabels.gridwidth = 1;
+//    	panel1.add(afterMaxT, c1);
+//    	c1.gridwidth = GridBagConstraints.REMAINDER; //end row
+//    	panel1.add(new JLabel(")"), c1);
 
     	// Compute
     	/*c1.gridwidth = 1;
@@ -203,108 +291,257 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
     	panel1.add(new JLabel(")"), c1);*/
 
 		// probability
-		c1.weighty = 1.0;
-		c1.weightx = 1.0;
-		c1.gridwidth = 1;
-		c1.gridheight = 1;
-		c1.fill = GridBagConstraints.BOTH;
-		c1.gridheight = 1;
-		panel1.add(new JLabel("weight in [0...1000] (default = 1) = "), c1);
-		c1.gridwidth = GridBagConstraints.REMAINDER; //end row
-		probabilityT = new JTextField(probability);
-		panel1.add(probabilityT, c1);
+    	pnlTransitionInfo.add( new JLabel("weight in [0...1000] (default = 1) = "), constraintsLabels );
+//    	c1.weighty = 1.0;
+//		c1.weightx = 1.0;
+//		c1.gridwidth = 1;
+//		c1.gridheight = 1;
+//		c1.fill = GridBagConstraints.BOTH;
+//		c1.gridheight = 1;
+		//panel1.add(new JLabel("weight in [0...1000] (default = 1) = "), c1);
+	//	c1.gridwidth = GridBagConstraints.REMAINDER; //end row
+    	constraintsFields.gridwidth = GridBagConstraints.REMAINDER; //end row;
+    	probabilityT = new JTextField(probability);
+    	pnlTransitionInfo.add( probabilityT, constraintsFields );
+//		panel1.add(probabilityT, c1);
 
     	// actions
+    	constraintsFields.gridwidth = GridBagConstraints.REMAINDER;
+    	
+    	codeElements = new JComboBox<String>(allElements);
+    	pnlTransitionInfo.add(codeElements, constraintsFields );
+
+		insertCodeButton = new JButton( "Insert Code" );
+		insertCodeButton.addActionListener( new ActionListener() {
+			
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				insertCodeAction();
+			}
+		} );
+    	pnlTransitionInfo.add( insertCodeButton, constraintsFields );
+
+    	actionsTable = new JTable( new DefaultTableModel() {
+    		
+    		/**
+			 * 
+			 */
+			private static final long serialVersionUID = 1L;
+
+			@Override
+    	    public Object getValueAt(int row, int column) {
+    	        final Expression expression = (Expression) super.getValueAt( row, column );
+    	        
+    	        return expression.getText();
+    	    }
+
+    		@Override
+    	    public void setValueAt(Object aValue, int row, int column) {
+    	        final Expression expression = (Expression) super.getValueAt( row, column );
+    	        
+    	        expression.setText( String.valueOf( aValue ) );
+    	        
+    	        fireTableCellUpdated(row, column);
+    		}
+    	} );
+    	
+    	actionsTable.setShowGrid( false );
+    	 
+    	final ListSelectionModel selectionModel = actionsTable.getSelectionModel();
+    	selectionModel.addListSelectionListener( new ListSelectionListener() {
+			
+			@Override
+			public void valueChanged( ListSelectionEvent e ) {
+				manageButtonsEnablement();
+			}
+		} );
+    	
+    	actionsTable.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
+    	actionsListHeader.addElement("");
+    	
+    	final DefaultCellEditor defaultCellEditor = (DefaultCellEditor) actionsTable.getDefaultEditor( Object.class );
+    	defaultCellEditor.setClickCountToStart( 1 );
+    	defaultCellEditor.addCellEditorListener( new CellEditorListener() {
+			
+			@Override
+			public void editingStopped(ChangeEvent e) {
+				manageButtonsEnablement();
+			}
+			
+			@Override
+			public void editingCanceled(ChangeEvent e) {
+				manageButtonsEnablement();
+			}
+		});
+    	
+    	( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader );
 
-    	elements = new JComboBox<String>(allElements);
-    	panel1.add(elements, c1);
-
-    	insertElement = new JButton("Insert");
-    	insertElement.setEnabled(allElements.size() > 0);
-    	insertElement.addActionListener(this);
-    	panel1.add(insertElement, c1);
-
-    	c1.gridheight = 10;
-    	c1.weighty = 10.0;
-    	c1.weightx = 10.0;
-    	c1.gridwidth = GridBagConstraints.REMAINDER; //end row
-    	c1.fill = GridBagConstraints.BOTH;
-    	actionsT = new JTextArea();
-    	actionsT.setEditable(true);
-    	actionsT.setMargin(new Insets(10, 10, 10, 10));
-    	actionsT.setTabSize(3);
-    	actionsT.setFont(new Font("times", Font.PLAIN, 12));
+    	//actionsT.getCellRenderer().sEditable(true);
+    	//actionsT.setMargin(new Insets(10, 10, 10, 10)));
+    	//actionsT.setTabSize(3);
+    	//actionsT.setFont(new Font("times", Font.PLAIN, 12));
     	//actionsT.setPreferredSize(new Dimension(350, 250));
-    	JScrollPane jsp = new JScrollPane(actionsT, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
-    	for(i=0; i<actions.size(); i++) {
-    		actionsT.append(actions.get(i) + "\n");
-    	}
-    	panel1.add(jsp, c1);
-
-
-    	panel2 = new JPanel();
-    	panel2.setLayout(gridbag2);
-
-    	panel2.setBorder(new javax.swing.border.TitledBorder("Code"));
-    	// guard
-    	c2.weighty = 1.0;
-    	c2.weightx = 1.0;
-    	c2.gridwidth = 1;
-    	c2.gridheight = 1;
-    	c2.fill = GridBagConstraints.BOTH;
-    	c2.gridwidth = GridBagConstraints.REMAINDER;
-    	c2.gridheight = 1;
-    	panel2.add(new JLabel("Files to include:"), c2);
-    	jtaFiles = new JTextArea();
-    	jtaFiles.setEditable(true);
-    	jtaFiles.setMargin(new Insets(10, 10, 10, 10));
-    	jtaFiles.setTabSize(3);
-    	String files = "";
-    	if (filesToInclude != null) {
-    		for(i=0; i<filesToInclude.length; i++) {
-    			files += filesToInclude[i] + "\n";
-    		}
-    	}
-    	jtaFiles.append(files);
-    	jtaFiles.setFont(new Font("times", Font.PLAIN, 12));
-    	jsp = new JScrollPane(jtaFiles, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
-    	//jsp.setPreferredSize(new Dimension(300, 300));
-    	panel2.add(jsp, c2);
-    	panel2.add(new JLabel("Code to execute at the end of the transition"), c2);
-    	jtaCode = new JTextArea();
-    	jtaCode.setEditable(true);
-    	jtaCode.setMargin(new Insets(10, 10, 10, 10));
-    	jtaCode.setTabSize(3);
-    	String code = "";
-    	if (codeToInclude != null) {
-    		for(i=0; i<codeToInclude.length; i++) {
-    			code += codeToInclude[i] + "\n";
-    		}
-    	}
-    	jtaCode.append(code);
-    	jtaCode.setFont(new Font("times", Font.PLAIN, 12));
-    	jsp = new JScrollPane(jtaCode, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
-    	//jsp.setPreferredSize(new Dimension(300, 300));
-    	panel2.add(jsp, c2);
+    	JScrollPane jsp = new JScrollPane(actionsTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+    	
+//    	for( int i=0; i<actions.size(); i++) {
+//    		actionsT.append(actions.get(i) + "\n");
+//    	}
+    	
+    	final GridBagConstraints constraintsList = new GridBagConstraints();
+    	constraintsList.weighty = 1.0;
+    	constraintsList.weightx = 1.0;
+    	constraintsList.gridwidth = GridBagConstraints.REMAINDER; //end row;
+    	constraintsList.gridheight = 1;
+    	constraintsList.fill = GridBagConstraints.BOTH;
+    	
+    	pnlTransitionInfo.add(jsp, constraintsList );
+
+//    	c1.weighty = 0.0;
+
+    	final GridBagConstraints constraintsButtons = new GridBagConstraints();
+    	constraintsButtons.weighty = 0.0;
+    	constraintsButtons.weightx = 1.0;
+    	constraintsButtons.gridwidth = GridBagConstraints.REMAINDER; //end row;
+    	constraintsButtons.gridheight = 1;
+    	constraintsButtons.fill = GridBagConstraints.BOTH;
+
+    	upButton = new JButton( "Up" );
+		upButton.addActionListener( new ActionListener() {
+			
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				upAction();
+			}
+		});
+		
+		constraintsFields.gridwidth = GridBagConstraints.REMAINDER;
+		constraintsFields.weightx = 1.0;
+		pnlTransitionInfo.add(upButton, constraintsButtons );
+		
+		downButton = new JButton("Down");
+		downButton.addActionListener( new ActionListener() {
+			
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				downAction();
+			}
+		} );
+		
+		pnlTransitionInfo.add( downButton, constraintsButtons );
+		
+		removeButton = new JButton("Remove");
+		removeButton.addActionListener( new ActionListener() {
+			
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				removeAction();
+			}
+		} );
+		
+		pnlTransitionInfo.add( removeButton, constraintsButtons );
+
+		addButton = new JButton( "Add" );
+		addButton.addActionListener( new ActionListener() {
+			
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				addAction();
+			}
+		} );
+    	pnlTransitionInfo.add( addButton, constraintsButtons );
+
+    	manageButtonsEnablement();
+
+//    	elements = new JComboBox<String>(allElements);
+//    	panel1.add(elements, c1);
+//
+//    	insertElement = new JButton("Insert");
+//    	insertElement.setEnabled(allElements.size() > 0);
+//    	insertElement.addActionListener(this);
+//    	panel1.add(insertElement, c1);
+//
+//    	c1.gridheight = 10;
+//    	c1.weighty = 10.0;
+//    	c1.weightx = 10.0;
+//    	c1.gridwidth = GridBagConstraints.REMAINDER; //end row
+//    	c1.fill = GridBagConstraints.BOTH;
+//    	actionsT = new JTextArea();
+//    	actionsT.setEditable(true);
+//    	actionsT.setMargin(new Insets(10, 10, 10, 10));
+//    	actionsT.setTabSize(3);
+//    	actionsT.setFont(new Font("times", Font.PLAIN, 12));
+//    	//actionsT.setPreferredSize(new Dimension(350, 250));
+//    	JScrollPane jsp = new JScrollPane(actionsT, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+//    	for(i=0; i<actions.size(); i++) {
+//    		actionsT.append(actions.get(i) + "\n");
+//    	}
+//    	panel1.add(jsp, c1);
+
+
+//    	panel2 = new JPanel();
+//    	panel2.setLayout(gridbag2);
+//
+//    	panel2.setBorder(new javax.swing.border.TitledBorder("Code"));
+//    	// guard
+//    	c2.weighty = 1.0;
+//    	c2.weightx = 1.0;
+//    	c2.gridwidth = 1;
+//    	c2.gridheight = 1;
+//    	c2.fill = GridBagConstraints.BOTH;
+//    	c2.gridwidth = GridBagConstraints.REMAINDER;
+//    	c2.gridheight = 1;
+//    	panel2.add(new JLabel("Files to include:"), c2);
+//    	jtaFiles = new JTextArea();
+//    	jtaFiles.setEditable(true);
+//    	jtaFiles.setMargin(new Insets(10, 10, 10, 10));
+//    	jtaFiles.setTabSize(3);
+//    	String files = "";
+//    	if (filesToInclude != null) {
+//    		for(i=0; i<filesToInclude.length; i++) {
+//    			files += filesToInclude[i] + "\n";
+//    		}
+//    	}
+//    	jtaFiles.append(files);
+//    	jtaFiles.setFont(new Font("times", Font.PLAIN, 12));
+//    	jsp = new JScrollPane(jtaFiles, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+//    	//jsp.setPreferredSize(new Dimension(300, 300));
+//    	panel2.add(jsp, c2);
+//    	panel2.add(new JLabel("Code to execute at the end of the transition"), c2);
+//    	jtaCode = new JTextArea();
+//    	jtaCode.setEditable(true);
+//    	jtaCode.setMargin(new Insets(10, 10, 10, 10));
+//    	jtaCode.setTabSize(3);
+//    	String code = "";
+//    	if (codeToInclude != null) {
+//    		for(i=0; i<codeToInclude.length; i++) {
+//    			code += codeToInclude[i] + "\n";
+//    		}
+//    	}
+//    	jtaCode.append(code);
+//    	jtaCode.setFont(new Font("times", Font.PLAIN, 12));
+//    	jsp = new JScrollPane(jtaCode, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+//    	//jsp.setPreferredSize(new Dimension(300, 300));
+//    	panel2.add(jsp, c2);
 
 
     	// button panel;
-    	c0.gridwidth = 1;
-    	c0.gridheight = 10;
-    	c0.weighty = 1.0;
-    	c0.weightx = 1.0;
-    	c0.gridwidth = GridBagConstraints.REMAINDER; //end row
+//    	c0.gridwidth = 1;
+//    	c0.gridheight = 10;
+//    	c0.weighty = 1.0;
+//    	c0.weightx = 1.0;
+//    	c0.gridwidth = GridBagConstraints.REMAINDER; //end row
 
     	// Issue #41 Ordering of tabbed panes 
     	JTabbedPane jtp = GraphicLib.createTabbedPane();//new JTabbedPane();
-    	jtp.add("General", panel1);
+    	jtp.add( "General", pnlTransitionInfo );
     	//jtp.add("Prototyping", panel2);
     	//c.add(jtp, c0);
     	c.add(jtp, BorderLayout.CENTER);
 
     	JPanel buttons = new JPanel();
-    	buttons.setLayout(gridbag0);
+    	buttons.setLayout( new GridBagLayout() );
 
+    	final GridBagConstraints c0 = new GridBagConstraints();
     	c0.gridwidth = 1;
     	c0.gridheight = 1;
     	c0.fill = GridBagConstraints.HORIZONTAL;
@@ -313,6 +550,53 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
 
     	c.add(buttons, BorderLayout.SOUTH);
     }
+	
+	private void downAction() {
+		final int selectedActionIndex = actionsTable.getSelectedRow();
+
+		if ( selectedActionIndex > -1 ) {
+	    	saveCurrentActionEditing();
+
+	    	final int newIndex = selectedActionIndex + 1;
+			Collections.swap( actionRows, selectedActionIndex, newIndex );
+	    	( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader );
+	    	actionsTable.getSelectionModel().setSelectionInterval( newIndex, newIndex );
+			
+			manageButtonsEnablement();
+		}
+	}
+	
+	private void upAction()	{
+		final int selectedActionIndex = actionsTable.getSelectedRow();
+
+		if ( selectedActionIndex > 0 )	{
+	    	saveCurrentActionEditing();
+
+	    	final int newIndex = selectedActionIndex - 1;
+			Collections.swap( actionRows, selectedActionIndex, newIndex );
+	    	( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader );
+	    	actionsTable.setRowSelectionInterval( newIndex, newIndex );
+
+			manageButtonsEnablement();
+		}
+	}
+	
+	private void manageButtonsEnablement() {
+		final int selectedActionIndex = actionsTable.getSelectedRow();
+		
+		if ( selectedActionIndex < 0 ) {
+			insertCodeButton.setEnabled( false );
+			upButton.setEnabled( false );
+			downButton.setEnabled( false );
+			removeButton.setEnabled( false );
+		}
+		else {
+			insertCodeButton.setEnabled( codeElements.getSelectedIndex() > -1 );
+			removeButton.setEnabled( true );
+			upButton.setEnabled( selectedActionIndex > 0 );
+			downButton.setEnabled( selectedActionIndex < actionsTable.getRowCount() - 1 );
+		}
+	}
 
     @Override
     public void actionPerformed(ActionEvent evt)  {
@@ -323,37 +607,114 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
             closeDialog();
         } else if (evt.getSource() == cancelButton)  {
             cancelDialog();
-        } else if (evt.getSource() == insertElement)  {
-            insertElements();
+//        } else if (evt.getSource() == insertElement)  {
+//            insertElements();
         }
     }
+    
+    private JTextField getEditingField() {
+    	// TODO: Generalize for other fields so that code completion also works for them
+    	
+        if ( actionsTable.getSelectedRow() > -1 ) {
+	    	DefaultCellEditor cellEditor = (DefaultCellEditor) actionsTable.getCellEditor();
+	    	
+	    	if ( cellEditor == null ) {
+	    		actionsTable.editCellAt( actionsTable.getSelectedRow(), 0 );
+	    		cellEditor = (DefaultCellEditor) actionsTable.getCellEditor();
+	    	}
+
+	    	return (JTextField) cellEditor.getComponent();
+        }
+        
+        return null;
+    }
+
+    private void insertCodeAction() {
+        int selectedCodeIndex = codeElements.getSelectedIndex();
+        
+        if ( selectedCodeIndex > -1 ) {
+        	final JTextField editingField = getEditingField();
+
+        	if ( editingField != null ) {
+        		final int caretPos = editingField.getCaretPosition();
+                final String elementName = insertElements.get( codeElements.getSelectedIndex() );
+
+                try {
+					editingField.getDocument().insertString( caretPos, elementName, null );
+				}
+                catch (BadLocationException e) {
+					e.printStackTrace();
+				}
+        	}
+    	}
+    }
+    
+    private void saveCurrentActionEditing() {
+    	if ( actionsTable.isEditing() ) {
+    		actionsTable.getCellEditor().stopCellEditing();
+    	}
+    }
+    
+    private void addAction() {
+    	saveCurrentActionEditing();
+
+    	final int addingIndex = actionsTable.getSelectedRow() >= 0 ? actionsTable.getSelectedRow() + 1 : actionRows.size();
+        final Expression newAction = new Expression( "" );
+        final Vector<Expression> newActionRow = new Vector<Expression>();
+        newActionRow.add( newAction );
+        actionRows.add( addingIndex, newActionRow );
+        ( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader );
+        actionsTable.setRowSelectionInterval( addingIndex, addingIndex );
+        
+        manageButtonsEnablement();
+    }
 
-    public void insertElements() {
-        int index = elements.getSelectedIndex();
-        int caretPos = actionsT.getCaretPosition ();
-        String str = insertElements.get(index);
-        String text = actionsT.getText ();
-        if (caretPos > 0 && text.charAt (caretPos-1) != ' ' && text.charAt (caretPos-1) != '(')
-            str = " " + str;
-        if (caretPos == text.length () || (text.charAt (caretPos) != ' ' && text.charAt (caretPos) != ')'))
-            str = str + " ";
-        actionsT.insert (str, caretPos);
-        actionsT.setCaretPosition (caretPos + str.length ());
-        actionsT.requestFocusInWindow ();
+    private void removeAction() {
+    	int selectedIndex = actionsTable.getSelectedRow();
+    	
+    	if ( selectedIndex > -1 ) {
+	    	actionRows.remove( selectedIndex );
+	    	( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader );
+	    	
+	    	selectedIndex = Math.min( selectedIndex, actionRows.size() - 1 );
+	    	
+	    	if ( selectedIndex > -1 ) {
+	    		actionsTable.setRowSelectionInterval( selectedIndex, selectedIndex );
+	    	}
+
+	    	manageButtonsEnablement();
+    	}
     }
+//
+//    public void insertElements() {
+//        int index = elements.getSelectedIndex();
+//        int caretPos = actionsT.getCaretPosition ();
+//        String str = insertElements.get(index);
+//        String text = actionsT.getText ();
+//        if (caretPos > 0 && text.charAt (caretPos-1) != ' ' && text.charAt (caretPos-1) != '(')
+//            str = " " + str;
+//        if (caretPos == text.length () || (text.charAt (caretPos) != ' ' && text.charAt (caretPos) != ')'))
+//            str = str + " ";
+//        actionsT.insert (str, caretPos);
+//        actionsT.setCaretPosition (caretPos + str.length ());
+//        actionsT.requestFocusInWindow ();
+//    }
 
     public void closeDialog() {
-        actions.removeAllElements();
-        String[] act = actionsT.getText().split("\n");
-        for(int i=0; i<act.length; i++) {
-            if (act[0].length() > 0) {
-                actions.add(act[i]);
-            }
-        }
-        filesToInclude =  Conversion.wrapText(jtaFiles.getText());
-        codeToInclude =  Conversion.wrapText(jtaCode.getText());
+//        actions.removeAllElements();
+//        String[] act = actionsT.getText().split("\n");
+//        for(int i=0; i<act.length; i++) {
+//            if (act[0].length() > 0) {
+//                actions.add(act[i]);
+//            }
+//        }
+//        filesToInclude =  Conversion.wrapText(jtaFiles.getText());
+//        codeToInclude =  Conversion.wrapText(jtaCode.getText());
 
         cancelled = false;
+        
+    	saveCurrentActionEditing();
+
         dispose();
     }
 
@@ -373,19 +734,29 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
         return afterMaxT.getText();
     }
 
-    public String getComputeMin() {
-        if (computeMinT == null) {
-        	return "";
-		}
-
-    	return computeMinT.getText();
-    }
-
-    public String getComputeMax() {
-		if (computeMaxT == null) {
-			return "";
-		}
-    	return computeMaxT.getText();
+//    public String getComputeMin() {
+//        if (computeMinT == null) {
+//        	return "";
+//		}
+//
+//    	return computeMinT.getText();
+//    }
+//
+//    public String getComputeMax() {
+//		if (computeMaxT == null) {
+//			return "";
+//		}
+//    	return computeMaxT.getText();
+//    }
+    
+    public List<Expression> getActions() {
+    	final List<Expression> actions = new ArrayList<Expression>();
+    	
+    	for ( final Vector<Expression> actionVect : actionRows ) {
+    		actions.add( actionVect.get( 0 ) );
+    	}
+    	
+    	return actions;
     }
 
 	public String getProbability() {
@@ -399,13 +770,12 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
     public void cancelDialog() {
         dispose();
     }
-
-    public String[] getFilesToInclude() {
-        return filesToInclude;
-    }
-
-    public String[] getCodeToInclude() {
-        return codeToInclude;
-    }
-
+//
+//    public String[] getFilesToInclude() {
+//        return filesToInclude;
+//    }
+//
+//    public String[] getCodeToInclude() {
+//        return codeToInclude;
+//    }
 }
diff --git a/src/main/java/ui/window/JDialogELNClusterPortDE.java b/src/main/java/ui/window/JDialogELNClusterPortDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..b5037a55d83b0b9969da06320f7cd08488c36a02
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNClusterPortDE.java
@@ -0,0 +1,207 @@
+/* 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 ui.window;
+
+import ui.eln.ELNClusterPortDE;
+import ui.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNClusterPortDE 
+ * Dialog for managing of ELN cluster port DE
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+@SuppressWarnings("serial")
+
+public class JDialogELNClusterPortDE extends JDialog implements ActionListener {
+
+	private JTextField nameTextField;
+	private ArrayList<String> listArrayTypeString;
+	private JComboBox<String> typeComboBoxString;
+	private ArrayList<String> listOriginString;
+	private JComboBox<String> originComboBoxString;
+
+	private ELNClusterPortDE term;
+
+	public JDialogELNClusterPortDE(ELNClusterPortDE term) {
+		this.setTitle("Setting Cluster Port DE Attributes");
+		this.setLocationRelativeTo(null);
+		this.setVisible(true);
+		this.setAlwaysOnTop(true);
+		this.setResizable(false);
+
+		this.term = term;
+
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+		getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+				dispose();
+			}
+		});
+
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+
+		JPanel attributesMainPanel = new JPanel();
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH); 
+
+		attributesMainPanel.setLayout(new BorderLayout());
+
+		Box attributesBox = Box.createVerticalBox();
+		attributesBox.setBorder(BorderFactory.createTitledBorder("Setting cluster port DE attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel attributesBoxPanel = new JPanel();
+		attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		attributesBoxPanel.setLayout(gridBag);
+
+		JLabel labelName = new JLabel("Name : ");
+		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(labelName, constraints);
+		attributesBoxPanel.add(labelName);
+
+		nameTextField = new JTextField(term.getValue().toString(), 10);
+		nameTextField.setEditable(false);
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(nameTextField, constraints);
+		attributesBoxPanel.add(nameTextField);
+
+		JLabel typeLabel = new JLabel("Type : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeLabel, constraints);
+		attributesBoxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		listArrayTypeString.add("int");
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
+		}
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (term.getPortType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
+		}
+		typeComboBoxString.addActionListener(this);
+		typeComboBoxString.setEnabled(false);
+		constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeComboBoxString, constraints);
+		attributesBoxPanel.add(typeComboBoxString); 
+
+		JLabel orginLabel = new JLabel("In / Out : ");
+		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(orginLabel, constraints);
+		attributesBoxPanel.add(orginLabel);
+
+		listOriginString = new ArrayList<String>();
+		listOriginString.add("in");
+		listOriginString.add("out");
+		originComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listOriginString.size(); i++) {
+			originComboBoxString.addItem(listOriginString.get(i));
+		}
+		for (int i = 0; i < listOriginString.size(); i++) {
+			if (term.getOrigin().equals(listOriginString.get(i))) {
+				originComboBoxString.setSelectedIndex(i);
+			}
+		}
+		originComboBoxString.addActionListener(this);
+		originComboBoxString.setEnabled(false);
+		constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(originComboBoxString, constraints);
+		attributesBoxPanel.add(originComboBoxString);
+		
+		attributesBox.add(attributesBoxPanel);
+
+		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			term.setValue(new String(nameTextField.getText()));
+			
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogELNClusterPortTDF.java b/src/main/java/ui/window/JDialogELNClusterPortTDF.java
new file mode 100644
index 0000000000000000000000000000000000000000..9012f40e21a5853659290861703f219c829e1cc9
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNClusterPortTDF.java
@@ -0,0 +1,207 @@
+/* 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 ui.window;
+
+import ui.eln.ELNClusterPortTDF;
+import ui.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNClusterPortTDF 
+ * Dialog for managing of ELN cluster port TDF
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+@SuppressWarnings("serial")
+
+public class JDialogELNClusterPortTDF extends JDialog implements ActionListener {
+
+	private JTextField nameTextField;
+	private ArrayList<String> listArrayTypeString;
+	private JComboBox<String> typeComboBoxString;
+	private ArrayList<String> listOriginString;
+	private JComboBox<String> originComboBoxString;
+
+	private ELNClusterPortTDF term;
+
+	public JDialogELNClusterPortTDF(ELNClusterPortTDF term) {
+		this.setTitle("Setting Cluster Port TDF Attributes");
+		this.setLocationRelativeTo(null);
+		this.setVisible(true);
+		this.setAlwaysOnTop(true);
+		this.setResizable(false);
+
+		this.term = term;
+
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+		getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+				dispose();
+			}
+		});
+
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+
+		JPanel attributesMainPanel = new JPanel();
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH); 
+
+		attributesMainPanel.setLayout(new BorderLayout());
+
+		Box attributesBox = Box.createVerticalBox();
+		attributesBox.setBorder(BorderFactory.createTitledBorder("Setting cluster port TDF attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel attributesBoxPanel = new JPanel();
+		attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		attributesBoxPanel.setLayout(gridBag);
+
+		JLabel labelName = new JLabel("Name : ");
+		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(labelName, constraints);
+		attributesBoxPanel.add(labelName);
+
+		nameTextField = new JTextField(term.getValue().toString(), 10); 
+		nameTextField.setEditable(false);
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(nameTextField, constraints);
+		attributesBoxPanel.add(nameTextField);
+
+		JLabel typeLabel = new JLabel("Type : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeLabel, constraints);
+		attributesBoxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		listArrayTypeString.add("int");
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
+		}
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (term.getPortType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
+		}
+		typeComboBoxString.addActionListener(this);
+		typeComboBoxString.setEnabled(false);
+		constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeComboBoxString, constraints);
+		attributesBoxPanel.add(typeComboBoxString); 
+
+		JLabel orginLabel = new JLabel("In / Out : ");
+		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(orginLabel, constraints);
+		attributesBoxPanel.add(orginLabel);
+
+		listOriginString = new ArrayList<String>();
+		listOriginString.add("in");
+		listOriginString.add("out");
+		originComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listOriginString.size(); i++) {
+			originComboBoxString.addItem(listOriginString.get(i));
+		}
+		for (int i = 0; i < listOriginString.size(); i++) {
+			if (term.getOrigin().equals(listOriginString.get(i))) {
+				originComboBoxString.setSelectedIndex(i);
+			}
+		}
+		originComboBoxString.addActionListener(this);
+		originComboBoxString.setEnabled(false);
+		constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(originComboBoxString, constraints);
+		attributesBoxPanel.add(originComboBoxString);
+		
+		attributesBox.add(attributesBoxPanel);
+
+		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			term.setValue(new String(nameTextField.getText()));
+			
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogELNClusterTerminal.java b/src/main/java/ui/window/JDialogELNClusterTerminal.java
new file mode 100644
index 0000000000000000000000000000000000000000..af8c9b7ebf63cb704aa25106fe15b172be2f55e4
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNClusterTerminal.java
@@ -0,0 +1,151 @@
+/* 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 ui.window;
+
+import ui.eln.ELNClusterTerminal;
+import ui.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNClusterTerminal 
+ * Dialog for managing of ELN cluster terminal
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+@SuppressWarnings("serial")
+
+public class JDialogELNClusterTerminal extends JDialog implements ActionListener {
+
+	private JTextField nameTextField;
+
+	private ELNClusterTerminal term;
+
+	public JDialogELNClusterTerminal(ELNClusterTerminal term) {
+		this.setTitle("Setting Cluster Terminal Attributes");
+		this.setLocationRelativeTo(null);
+		this.setVisible(true);
+		this.setAlwaysOnTop(true);
+		this.setResizable(false);
+
+		this.term = term;
+
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+		getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+				dispose();
+			}
+		});
+
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+
+		JPanel attributesMainPanel = new JPanel();
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH); 
+
+		attributesMainPanel.setLayout(new BorderLayout());
+
+		Box attributesBox = Box.createVerticalBox();
+		attributesBox.setBorder(BorderFactory.createTitledBorder("Setting cluster terminal attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel attributesBoxPanel = new JPanel();
+		attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		attributesBoxPanel.setLayout(gridBag);
+
+		JLabel labelName = new JLabel("Name : ");
+		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(labelName, constraints);
+		attributesBoxPanel.add(labelName);
+
+		if (term.getValue().toString().equals("")) {
+			nameTextField = new JTextField(10);
+		} else {
+			nameTextField = new JTextField(term.getValue().toString(), 10); 
+		}
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(nameTextField, constraints);
+		attributesBoxPanel.add(nameTextField);
+
+		attributesBox.add(attributesBoxPanel);
+
+		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			term.setValue(new String(nameTextField.getText()));
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogELNComponentCurrentSinkDE.java b/src/main/java/ui/window/JDialogELNComponentCurrentSinkDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..84ec08d6629ab6ec2eb5000a67b367c3036170e6
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNComponentCurrentSinkDE.java
@@ -0,0 +1,183 @@
+/* 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 ui.window;
+
+import ui.eln.sca_eln_sca_de.ELNComponentCurrentSinkDE;
+import ui.util.IconManager;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNComponentCurrentSinkDE
+ * Dialog for managing the conversion of a ELN current to a DE output signal
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+@SuppressWarnings("serial")
+
+public class JDialogELNComponentCurrentSinkDE extends JDialog implements ActionListener {
+	private JTextField nameTextField;
+	private JTextField valueTextField;
+
+	private ELNComponentCurrentSinkDE isink;
+
+	public JDialogELNComponentCurrentSinkDE(ELNComponentCurrentSinkDE _isink) {
+		setTitle("Setting the conversion of current to DE output signal");
+		setLocationRelativeTo(null);
+		setVisible(true);
+		setAlwaysOnTop(true);
+		setResizable(false);
+
+		isink = _isink;
+		
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+		getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+		        dispose();
+			}
+		});
+		
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+		
+		JPanel attributesMainPanel = new JPanel(new GridLayout());
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH);
+		
+		Box box = Box.createVerticalBox();
+		box.setBorder(BorderFactory.createTitledBorder("Setting eln_de_isink attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel boxPanel = new JPanel();
+		boxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		boxPanel.setLayout(gridBag); 
+
+		JLabel labelName = new JLabel("nm : ");
+		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(labelName, constraints);
+	   	boxPanel.add(labelName);
+
+		nameTextField = new JTextField(isink.getValue().toString(), 10);
+	    	constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+	    	gridBag.setConstraints(nameTextField, constraints);
+	    	boxPanel.add(nameTextField);
+	   
+		JLabel valueLabel = new JLabel("scale : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(valueLabel, constraints);
+	   	boxPanel.add(valueLabel);
+
+		valueTextField = new JTextField("" + isink.getScale(), 10);
+	    	constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+	    	gridBag.setConstraints(valueTextField, constraints);
+	    	boxPanel.add(valueTextField);
+	    
+		box.add(boxPanel);
+		attributesMainPanel.add(box); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			isink.setValue(new String(nameTextField.getText()));
+
+			if (!(valueTextField.getText().isEmpty())) {
+				Boolean valValueDouble = false;
+				try {
+					Double.parseDouble(valueTextField.getText());
+				} catch (NumberFormatException e1) {
+					JDialog msg = new JDialog(this);
+					msg.setLocationRelativeTo(null);
+					JOptionPane.showMessageDialog(msg, "The scale coefficient is not a Double", "Warning !",
+							JOptionPane.WARNING_MESSAGE);
+					valValueDouble = true;
+				}
+				if (valValueDouble == false) {
+					isink.setScale(Double.parseDouble(valueTextField.getText()));
+				}
+			} else {
+				isink.setScale(1.0);
+			}
+			
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
diff --git a/src/main/java/ui/window/JDialogELNComponentCurrentSourceDE.java b/src/main/java/ui/window/JDialogELNComponentCurrentSourceDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..c9c8623f02d508bfad918b374f6a256e0c23cc54
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNComponentCurrentSourceDE.java
@@ -0,0 +1,183 @@
+/* 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 ui.window;
+
+import ui.eln.sca_eln_sca_de.ELNComponentCurrentSourceDE;
+import ui.util.IconManager;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNComponentCurrentSourceDE
+ * Dialog for managing the ELN current driven by a DE input signal
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+@SuppressWarnings("serial")
+
+public class JDialogELNComponentCurrentSourceDE extends JDialog implements ActionListener {
+	private JTextField nameTextField;
+	private JTextField valueTextField;
+
+	private ELNComponentCurrentSourceDE isource;
+
+	public JDialogELNComponentCurrentSourceDE(ELNComponentCurrentSourceDE _isource) {
+		setTitle("Setting the current driven by a DE output signal");
+		setLocationRelativeTo(null);
+		setVisible(true);
+		setAlwaysOnTop(true);
+		setResizable(false);
+
+		isource = _isource;
+		
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+		getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+		        dispose();
+			}
+		});
+		
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+		
+		JPanel attributesMainPanel = new JPanel(new GridLayout());
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH);
+		
+		Box box = Box.createVerticalBox();
+		box.setBorder(BorderFactory.createTitledBorder("Setting eln_de_isource attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel boxPanel = new JPanel();
+		boxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		boxPanel.setLayout(gridBag); 
+
+		JLabel labelName = new JLabel("nm : ");
+	    	constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+        	gridBag.setConstraints(labelName, constraints);
+	    	boxPanel.add(labelName);
+
+		nameTextField = new JTextField(isource.getValue().toString(), 10);
+    		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+	    	gridBag.setConstraints(nameTextField, constraints);
+	    	boxPanel.add(nameTextField);
+	   
+		JLabel valueLabel = new JLabel("scale : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(valueLabel, constraints);
+	    	boxPanel.add(valueLabel);
+
+		valueTextField = new JTextField("" + isource.getScale(), 10);
+	    	constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+	    	gridBag.setConstraints(valueTextField, constraints);
+	  	boxPanel.add(valueTextField);
+	    
+		box.add(boxPanel);
+		attributesMainPanel.add(box); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			isource.setValue(new String(nameTextField.getText()));
+
+			if (!(valueTextField.getText().isEmpty())) {
+				Boolean valValueDouble = false;
+				try {
+					Double.parseDouble(valueTextField.getText());
+				} catch (NumberFormatException e1) {
+					JDialog msg = new JDialog(this);
+					msg.setLocationRelativeTo(null);
+					JOptionPane.showMessageDialog(msg, "The scale coefficient is not a Double", "Warning !",
+							JOptionPane.WARNING_MESSAGE);
+					valValueDouble = true;
+				}
+				if (valValueDouble == false) {
+					isource.setScale(Double.parseDouble(valueTextField.getText()));
+				}
+			} else {
+				isource.setScale(1.0);
+			}
+			
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
diff --git a/src/main/java/ui/window/JDialogELNComponentTransmissionLine.java b/src/main/java/ui/window/JDialogELNComponentTransmissionLine.java
index 8ec0bbac777229d24376914016e058c19c102f69..35eb7c1c1cc84b6d3d794098e6ad99f4fbe696a0 100644
--- a/src/main/java/ui/window/JDialogELNComponentTransmissionLine.java
+++ b/src/main/java/ui/window/JDialogELNComponentTransmissionLine.java
@@ -319,11 +319,14 @@ public class JDialogELNComponentTransmissionLine extends JDialog implements Acti
 			}
 			transmission_line.setUnit0((String) z0ComboBoxString.getSelectedItem());
 			
-			String a = delayTextField.getText().split(Pattern.quote("("))[1].split(",")[0];
-			String b = delayTextField.getText().split(Pattern.quote("("))[1].split(",")[1].split(Pattern.quote(")"))[0].split(" ")[1];
-			
-			if (delayTextField.getText() == "sc_core::SC_ZERO_TIME" || (Double.parseDouble(a) >= 1.0) && b.equals("sc_core::SC_SEC")) {
+			if (delayTextField.getText().equals("sc_core::SC_ZERO_TIME")) {
 				transmission_line.setDelay(delayTextField.getText());
+			} else if (!delayTextField.getText().equals("sc_core::SC_ZERO_TIME")) {
+				String a = delayTextField.getText().split(Pattern.quote("("))[1].split(",")[0];
+				String b = delayTextField.getText().split(Pattern.quote("("))[1].split(",")[1].split(Pattern.quote(")"))[0].split(" ")[1];
+				if ((Double.parseDouble(a) >= 1.0) && (b.equals("sc_core::SC_SEC"))) {
+					transmission_line.setDelay(delayTextField.getText());
+				}
 			}
 			
 			if (!(delta0TextField.getText().isEmpty())) {
diff --git a/src/main/java/ui/window/JDialogELNComponentVoltageSinkDE.java b/src/main/java/ui/window/JDialogELNComponentVoltageSinkDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..1fb4aae08df3f4968ad0da169f6bc8910639cf53
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNComponentVoltageSinkDE.java
@@ -0,0 +1,183 @@
+/* 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 ui.window;
+
+import ui.eln.sca_eln_sca_de.ELNComponentVoltageSinkDE;
+import ui.util.IconManager;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNComponentVoltageSinkDE
+ * Dialog for managing the conversion of a ELN voltage to a DE output signal
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+@SuppressWarnings("serial")
+
+public class JDialogELNComponentVoltageSinkDE extends JDialog implements ActionListener {
+	private JTextField nameTextField;
+	private JTextField valueTextField;
+
+	private ELNComponentVoltageSinkDE vsink;
+
+	public JDialogELNComponentVoltageSinkDE(ELNComponentVoltageSinkDE _vsink) {
+		setTitle("Setting the conversion of voltage to DE output signal");
+		setLocationRelativeTo(null);
+		setVisible(true);
+		setAlwaysOnTop(true);
+		setResizable(false);
+
+		vsink = _vsink;
+		
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+        	getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+		        dispose();
+			}
+        	});
+		
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+		
+		JPanel attributesMainPanel = new JPanel(new GridLayout());
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH);
+		
+		Box box = Box.createVerticalBox();
+		box.setBorder(BorderFactory.createTitledBorder("Setting eln_de_vsink attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel boxPanel = new JPanel();
+		boxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		boxPanel.setLayout(gridBag); 
+
+		JLabel labelName = new JLabel("nm : ");
+		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+        	gridBag.setConstraints(labelName, constraints);
+	    	boxPanel.add(labelName);
+
+		nameTextField = new JTextField(vsink.getValue().toString(), 10);
+	    	constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+	    	gridBag.setConstraints(nameTextField, constraints);
+	    	boxPanel.add(nameTextField);
+	   
+		JLabel valueLabel = new JLabel("scale : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(valueLabel, constraints);
+	    	boxPanel.add(valueLabel);
+
+		valueTextField = new JTextField("" + vsink.getScale(), 10);
+	    	constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+	   	gridBag.setConstraints(valueTextField, constraints);
+	   	boxPanel.add(valueTextField);
+	    
+		box.add(boxPanel);
+		attributesMainPanel.add(box); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			vsink.setValue(new String(nameTextField.getText()));
+
+			if (!(valueTextField.getText().isEmpty())) {
+				Boolean valValueDouble = false;
+				try {
+					Double.parseDouble(valueTextField.getText());
+				} catch (NumberFormatException e1) {
+					JDialog msg = new JDialog(this);
+					msg.setLocationRelativeTo(null);
+					JOptionPane.showMessageDialog(msg, "The scale coefficient is not a Double", "Warning !",
+							JOptionPane.WARNING_MESSAGE);
+					valValueDouble = true;
+				}
+				if (valValueDouble == false) {
+					vsink.setScale(Double.parseDouble(valueTextField.getText()));
+				}
+			} else {
+				vsink.setScale(1.0);
+			}
+			
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
diff --git a/src/main/java/ui/window/JDialogELNComponentVoltageSourceDE.java b/src/main/java/ui/window/JDialogELNComponentVoltageSourceDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..1ee3494d5dbedd15f9af07ea1431e27972dfd50c
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNComponentVoltageSourceDE.java
@@ -0,0 +1,183 @@
+/* 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 ui.window;
+
+import ui.eln.sca_eln_sca_de.ELNComponentVoltageSourceDE;
+import ui.util.IconManager;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNComponentVoltageSourceDE
+ * Dialog for managing the ELN voltage driven by a DE input signal
+ * Creation: 07/08/2018
+ * @version 1.0 07/08/2018
+ * @author Irina Kit Yan LEE
+*/
+
+@SuppressWarnings("serial")
+
+public class JDialogELNComponentVoltageSourceDE extends JDialog implements ActionListener {
+	private JTextField nameTextField;
+	private JTextField valueTextField;
+
+	private ELNComponentVoltageSourceDE vsource;
+
+	public JDialogELNComponentVoltageSourceDE(ELNComponentVoltageSourceDE _vsource) {
+		setTitle("Setting the voltage driven by a DE output signal");
+		setLocationRelativeTo(null);
+		setVisible(true);
+		setAlwaysOnTop(true);
+		setResizable(false);
+
+		vsource = _vsource;
+		
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+		getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+		        dispose();
+			}
+		});
+		
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+		
+		JPanel attributesMainPanel = new JPanel(new GridLayout());
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH);
+		
+		Box box = Box.createVerticalBox();
+		box.setBorder(BorderFactory.createTitledBorder("Setting eln_de_vsource attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel boxPanel = new JPanel();
+		boxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		boxPanel.setLayout(gridBag); 
+
+		JLabel labelName = new JLabel("nm : ");
+		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+        	gridBag.setConstraints(labelName, constraints);
+	    	boxPanel.add(labelName);
+
+		nameTextField = new JTextField(vsource.getValue().toString(), 10);
+	    	constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+	    	gridBag.setConstraints(nameTextField, constraints);
+	    	boxPanel.add(nameTextField);
+	   
+		JLabel valueLabel = new JLabel("scale : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(valueLabel, constraints);
+	    	boxPanel.add(valueLabel);
+
+		valueTextField = new JTextField("" + vsource.getScale(), 10);
+	    	constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
+                GridBagConstraints.CENTER,
+                GridBagConstraints.BOTH,
+                new Insets(5, 10, 5, 10), 0, 0);
+	    	gridBag.setConstraints(valueTextField, constraints);
+	    	boxPanel.add(valueTextField);
+	    
+		box.add(boxPanel);
+		attributesMainPanel.add(box); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			vsource.setValue(new String(nameTextField.getText()));
+
+			if (!(valueTextField.getText().isEmpty())) {
+				Boolean valValueDouble = false;
+				try {
+					Double.parseDouble(valueTextField.getText());
+				} catch (NumberFormatException e1) {
+					JDialog msg = new JDialog(this);
+					msg.setLocationRelativeTo(null);
+					JOptionPane.showMessageDialog(msg, "The scale coefficient is not a Double", "Warning !",
+							JOptionPane.WARNING_MESSAGE);
+					valValueDouble = true;
+				}
+				if (valValueDouble == false) {
+					vsource.setScale(Double.parseDouble(valueTextField.getText()));
+				}
+			} else {
+				vsource.setScale(1.0);
+			}
+			
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
diff --git a/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java b/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ef7014b1da3efc007f14429f13a417bfddf491f
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java
@@ -0,0 +1,772 @@
+/* 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 ui.window;
+
+import elntranslator.toELN.MakefileCode;
+import elntranslator.toELN.TopCellGenerator;
+import launcher.LauncherException;
+import launcher.RshClient;
+import myutil.*;
+import elntranslator.ELNSpecification;
+import elntranslator.ELNTCluster;
+import ui.util.IconManager;
+import ui.MainGUI;
+import ui.ELNPanelTranslator;
+import ui.eln.ELNDiagramPanel;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.FileWriter;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.LinkedList;
+import java.util.Vector;
+
+/**
+ * Class JDialogELNExecutableCodeGeneration
+ * Dialog for managing the generation and compilation of ELN executable code
+ * Creation: 31/07/2018
+ * @version 1.0 31/07/2018
+ * @author Irina Kit Yan LEE
+ */
+
+@SuppressWarnings("serial")
+
+public class JDialogELNExecutableCodeGeneration extends javax.swing.JFrame implements ActionListener, Runnable, MasterProcessInterface {
+
+    protected Frame f;
+    protected MainGUI mgui;
+
+    private String textSysC1 = "Base directory of code generation:";
+    private String textSysC7 = "Base directory of topcell generation:";
+    private String textSysC8 = "Base directory of Makefile:";
+//    private String textSysC2 = "Compile SystemC-AMS executable with"; // compile
+//    private String textSysC4 = "Run code in soclib / mutekh:";
+//    private String textSysC5 = "Show AVATAR trace from file w/o hardware:";
+//    private String textSysC6 = "Show cycle accurate trace from MPSoC file:";
+
+//    private static String[] codes = {"AVATAR SOCLIB"};
+
+//    private static int selectedRun = 1;
+//    private static int selectedCompile = 0;
+//    private static int selectedViewTrace = 0;
+//    private static boolean static_putUserCode = true;
+
+    protected static String pathCode;
+    protected static String pathSoclibTraceFile;
+    protected static String pathCompileMPSoC;
+    protected static String pathExecuteMPSoC;
+    protected static boolean optimizeModeSelected = true;
+
+    protected final static int NOT_STARTED = 1;
+    protected final static int STARTED = 2;
+    protected final static int STOPPED = 3;
+
+    private static
+
+    int mode;
+
+    //components
+    protected JTextArea jta;
+    protected JButton start;
+    protected JButton stop;
+    protected JButton close;
+
+    protected JRadioButton exe, exeint, exetrace, exesoclib, compile, compilesoclib, viewtrace, viewtracesoclib;
+    protected ButtonGroup compilegroup, exegroup, viewgroup;
+    protected JLabel gen;
+    protected JTextField code1, code2, code3, compiler, exe1, exe2, exe3, exe4, exe2int, simulationTraceFile, simulationsoclibTraceFile;
+    protected JTabbedPane jp1;
+    protected JScrollPane jsp;
+    protected JCheckBox removeCFiles, removeXFiles, debugmode, tracemode, optimizemode, putUserCode;
+    protected JComboBox<String> versionCodeGenerator, units;
+    protected JButton showSimulationTrace, showOverflowStatus;
+
+//    private static int selectedUnit = 2;
+//    private static boolean removeCFilesValue = true;
+//    private static boolean removeXFilesValue = true;
+//    private static boolean debugValue = false;
+//    private static boolean tracingValue = false;
+//    private static boolean optimizeValue = true;
+
+    private Thread t;
+    private boolean go = false;
+//    private boolean hasError = false;
+    protected boolean startProcess = false;
+
+//    private String hostExecute;
+
+    protected RshClient rshc;
+
+    public JDialogELNExecutableCodeGeneration(Frame _f, MainGUI _mgui, String title, String _pathCode) {
+        super(title);
+        f = _f;
+        mgui = _mgui;
+
+        if (pathCode == null) {
+            pathCode = _pathCode;
+        }
+
+//        if (pathCompileMPSoC == null) {
+//            pathCompileMPSoC = _pathCompileMPSoC;
+//        }
+//
+//        if (pathExecuteMPSoC == null) {
+//            pathExecuteMPSoC = _pathExecuteMPSoC;
+//        }
+//
+//        hostExecute = _hostExecute;
+
+        initComponents();
+        myInitComponents();
+        pack();
+
+        getGlassPane().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+    }
+
+    protected void myInitComponents() {
+        mode = NOT_STARTED;
+        setButtons();
+//        makeSelectionCompile();
+//        makeSelectionExecute();
+//        makeSelectionViewTrace();
+    }
+
+    protected void initComponents() {
+        Container c = getContentPane();
+        setFont(new Font("Helvetica", Font.PLAIN, 14));
+        c.setLayout(new BorderLayout());
+
+        // Issue #41 Ordering of tabbed panes 
+        jp1 = GraphicLib.createTabbedPane();//new JTabbedPane();
+
+        JPanel jp01 = new JPanel();
+        GridBagLayout gridbag01 = new GridBagLayout();
+        GridBagConstraints c01 = new GridBagConstraints();
+        jp01.setLayout(gridbag01);
+        jp01.setBorder(new javax.swing.border.TitledBorder("Code generation"));
+
+//        JPanel jp02 = new JPanel();
+//        GridBagLayout gridbag02 = new GridBagLayout();
+//        GridBagConstraints c02 = new GridBagConstraints();
+//        jp02.setLayout(gridbag02);
+//        jp02.setBorder(new javax.swing.border.TitledBorder("Compilation"));
+//
+//        JPanel jp03 = new JPanel();
+//        GridBagLayout gridbag03 = new GridBagLayout();
+//        GridBagConstraints c03 = new GridBagConstraints();
+//        jp03.setLayout(gridbag03);
+//        jp03.setBorder(new javax.swing.border.TitledBorder("Execution"));
+//
+//        JPanel jp04 = new JPanel();
+//        GridBagLayout gridbag04 = new GridBagLayout();
+//        GridBagConstraints c04 = new GridBagConstraints();
+//        jp04.setLayout(gridbag04);
+//        jp04.setBorder(new javax.swing.border.TitledBorder("Simulation trace"));
+
+        c01.gridheight = 1;
+        c01.weighty = 1.0;
+        c01.weightx = 1.0;
+        c01.gridwidth = GridBagConstraints.REMAINDER; //end row
+        c01.fill = GridBagConstraints.BOTH;
+        c01.gridheight = 1;
+
+        gen = new JLabel(textSysC1);
+        jp01.add(gen, c01);
+
+        code1 = new JTextField(pathCode, 100);
+        jp01.add(code1, c01);
+
+        gen = new JLabel(textSysC7);
+        jp01.add(gen, c01);
+
+        code2 = new JTextField(pathCode, 100);
+        jp01.add(code2, c01);
+        
+        gen = new JLabel(textSysC8);
+        jp01.add(gen, c01);
+        
+        code3 = new JTextField(pathCode, 100);
+        jp01.add(code3, c01);
+
+        jp01.add(new JLabel(" "), c01);
+        c01.gridwidth = GridBagConstraints.REMAINDER; //end row
+
+//        removeCFiles = new JCheckBox("Remove .c / .h files");
+//        removeCFiles.setSelected(removeCFilesValue);
+//        jp01.add(removeCFiles, c01);
+
+//        removeXFiles = new JCheckBox("Remove .x files");
+//        removeXFiles.setSelected(removeXFilesValue);
+//        jp01.add(removeXFiles, c01);
+
+//        debugmode = new JCheckBox("Put debug information in generated code");
+//        debugmode.setSelected(debugValue);
+//        jp01.add(debugmode, c01);
+//
+//        tracemode = new JCheckBox("Put tracing capabilities in generated code");
+//        tracemode.setSelected(tracingValue);
+//        jp01.add(tracemode, c01);
+//
+//        optimizemode = new JCheckBox("Optimize code");
+//        optimizemode.setSelected(optimizeModeSelected);
+//        jp01.add(optimizemode, c01);
+//
+//        putUserCode = new JCheckBox("Include user code");
+//        putUserCode.setSelected(static_putUserCode);
+//        jp01.add(putUserCode, c01);
+
+//        jp01.add(new JLabel("1 time unit ="), c01);
+//
+//        units = new JComboBox<String>(unitTab);
+//        units.setSelectedIndex(selectedUnit);
+//        units.addActionListener(this);
+//        jp01.add(units, c01);
+
+//        jp01.add(new JLabel("Code generator used:"), c01);
+
+//        versionCodeGenerator = new JComboBox<String>(codes);
+        // versionCodeGenerator.setSelectedIndex(selectedItem);
+//        versionCodeGenerator.addActionListener(this);
+//        jp01.add(versionCodeGenerator, c01);
+
+        jp01.add(new JLabel(" "), c01);
+        jp1.add("Generate code", jp01);
+
+        // Panel 02 -> compile
+//        c02.gridheight = 1;
+//        c02.weighty = 1.0;
+//        c02.weightx = 1.0;
+//        c02.gridwidth = GridBagConstraints.REMAINDER; //end row
+//        c02.fill = GridBagConstraints.BOTH;
+//        c02.gridheight = 1;
+
+//        compilegroup = new ButtonGroup();
+//
+//        compilesoclib = new JRadioButton(textSysC2, false);
+//        compilesoclib.addActionListener(this);
+//        jp02.add(compilesoclib, c02);
+//        compilegroup.add(compilesoclib);
+//        compiler = new JTextField(pathCompileMPSoC, 100);
+//        jp02.add(compiler, c02);
+
+        //compile.setSelected(selectedCompile == 0);
+//        compilesoclib.setSelected(selectedCompile == 1);
+//
+//        jp1.add("Compile", jp02);
+
+        // Panel 03 -> Execute
+//        c03.gridheight = 1;
+//        c03.weighty = 1.0;
+//        c03.weightx = 1.0;
+//        c03.gridwidth = GridBagConstraints.REMAINDER; //end row
+//        c03.fill = GridBagConstraints.BOTH;
+//        c03.gridheight = 1;
+
+//        exegroup = new ButtonGroup();
+
+        /*exetrace = new JRadioButton(textSysC3, false);
+        exetrace.addActionListener(this);
+        exegroup.add(exetrace);
+        jp03.add(exetrace, c03);
+        exe3 = new JTextField(pathExecuteMPSoC+"-trace", 100);
+        jp03.add(exe3, c03);*/
+//
+//        exesoclib = new JRadioButton(textSysC4, false);
+//        exesoclib.addActionListener(this);
+//        exegroup.add(exesoclib);
+//        jp03.add(exesoclib, c03);
+//        exe4 = new JTextField(pathExecuteMPSoC, 100);
+//        jp03.add(exe4, c03);
+
+        //exe.setSelected(selectedRun == 0);
+        //exetrace.setSelected(selectedRun == 1);
+      //  exesoclib.setSelected(selectedRun == 2);
+
+//        jp03.add(new JLabel(" "), c03);
+
+//        jp1.add("Execute", jp03);
+
+        // Panel 04 -> View trace
+//        c04.gridheight = 1;
+//        c04.weighty = 1.0;
+//        c04.weightx = 1.0;
+//        c04.gridwidth = GridBagConstraints.REMAINDER; //end row
+//        c04.fill = GridBagConstraints.HORIZONTAL;
+//        c04.gridheight = 1;
+
+//        viewgroup = new ButtonGroup();
+//        viewtrace = new JRadioButton(textSysC5, false);
+//        viewgroup.add(viewtrace);
+//        viewtrace.addActionListener(this);
+//        jp04.add(viewtrace, c04);
+//        simulationTraceFile = new JTextField(pathCode + "trace.txt", 100);
+//        jp04.add(simulationTraceFile, c04);
+//        viewtracesoclib = new JRadioButton(textSysC6, false);
+//        viewgroup.add(viewtracesoclib);
+//        viewtracesoclib.addActionListener(this);
+//        jp04.add(viewtracesoclib, c04);
+//        simulationsoclibTraceFile = new JTextField(pathSoclibTraceFile, 100);
+//        jp04.add(simulationsoclibTraceFile, c04);
+//
+//        showSimulationTrace = new JButton("Show simulation trace");
+//        showSimulationTrace.addActionListener(this);
+//        jp04.add(showSimulationTrace, c04);
+
+        //-------------Ajout C.Demarigny---------------
+
+//        showOverflowStatus = new JButton("Show overflow status");
+//        showOverflowStatus.addActionListener(this);
+//        jp04.add(showOverflowStatus, c04);
+
+        //----------------Fin ajout--------------------
+
+//        viewtrace.setSelected(selectedViewTrace == 0);
+//        viewtracesoclib.setSelected(selectedViewTrace == 1);
+
+//        jp1.add("Results", jp04);
+
+        c.add(jp1, BorderLayout.NORTH);
+
+        jta = new ScrolledJTextArea();
+        jta.setEditable(false);
+        jta.setMargin(new Insets(10, 10, 10, 10));
+        jta.setTabSize(3);
+        jta.append("Select options and then, click on 'start' to launch code generation\n"); // / compilation / execution
+        Font f = new Font("Courrier", Font.BOLD, 12);
+        jta.setFont(f);
+        jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+
+        c.add(jsp, BorderLayout.CENTER);
+
+        start = new JButton("Start", IconManager.imgic53);
+        stop = new JButton("Stop", IconManager.imgic55);
+        close = new JButton("Close", IconManager.imgic27);
+
+        start.setPreferredSize(new Dimension(100, 30));
+        stop.setPreferredSize(new Dimension(100, 30));
+        close.setPreferredSize(new Dimension(100, 30));
+
+        start.addActionListener(this);
+        stop.addActionListener(this);
+        close.addActionListener(this);
+
+        JPanel jp2 = new JPanel();
+        jp2.add(start);
+        jp2.add(stop);
+        jp2.add(close);
+
+        c.add(jp2, BorderLayout.SOUTH);
+    }
+
+    public void actionPerformed(ActionEvent evt) {
+        String command = evt.getActionCommand();
+
+        // Compare the action command to the known actions.
+        if (command.equals("Start")) {
+            startProcess();
+        } else if (command.equals("Stop")) {
+            stopProcess();
+        } else if (command.equals("Close")) {
+            closeDialog();
+        } else if (evt.getSource() == versionCodeGenerator) {
+            // selectedItem = versionCodeGenerator.getSelectedIndex();
+//        } else if (evt.getSource() == units) {
+//            selectedUnit = units.getSelectedIndex();
+//        } else if (evt.getSource() == showSimulationTrace) {
+//            showSimulationTrace();
+        //} else if ((evt.getSource() == exe) || (evt.getSource() == exetrace)|| (evt.getSource() == exesoclib)) {
+//        else if ((evt.getSource() == exetrace) || (evt.getSource() == exesoclib)) {
+//            makeSelectionExecute();
+//            // } else if ((evt.getSource() == compile) || (evt.getSource() == compilesoclib)) {
+//        } else if ((evt.getSource() == compilesoclib)) {
+//            makeSelectionCompile();
+//        } else if ((evt.getSource() == viewtrace) || (evt.getSource() == viewtracesoclib)) {
+//            makeSelectionViewTrace();
+//        } else if ((evt.getSource() == showOverflowStatus)) { //ajout CD
+//            showOverflowStatus();
+        }
+    }
+
+    public void closeDialog() {
+        if (mode == STARTED) {
+            stopProcess();
+        }
+//        optimizeModeSelected = optimizemode.isSelected();
+//        removeCFilesValue = removeCFiles.isSelected();
+//        removeXFilesValue = removeXFiles.isSelected();
+//        debugValue = debugmode.isSelected();
+//        tracingValue = tracemode.isSelected();
+//        static_putUserCode = putUserCode.isSelected();
+        dispose();
+    }
+//
+//    public void makeSelectionExecute() {
+//
+//        //if (exetrace.isSelected()) {
+//        //    selectedRun = 1;
+//        //} else {
+//        selectedRun = 2;
+//        //}
+//
+//        // exe2.setEnabled(selectedRun == 0);
+//        //exe3.setEnabled(selectedRun == 1);
+//        exe4.setEnabled(selectedRun == 2);
+//    }
+
+//    public void makeSelectionCompile() {
+//
+//        selectedCompile = 1;
+//        compiler.setEnabled(selectedCompile == 1);
+//
+//    }
+
+//    public void makeSelectionViewTrace() {
+//        if (viewtrace.isSelected()) {
+//            selectedViewTrace = 0;
+//        } else {
+//            selectedViewTrace = 1;
+//        }
+//        simulationTraceFile.setEnabled(selectedViewTrace == 0);
+//        // simulationsoclibTraceFile.setEnabled(selectedViewTrace == 1);
+//    }
+
+    public void stopProcess() {
+        try {
+            rshc.stopCommand();
+        } catch (LauncherException le) {
+
+        }
+        rshc = null;
+        mode = STOPPED;
+        setButtons();
+        go = false;
+    }
+
+    public void startProcess() {
+        startProcess = false;
+        t = new Thread(this);
+        mode = STARTED;
+        setButtons();
+        go = true;
+        t.start();
+    }
+
+    private void testGo() throws InterruptedException {
+        if (go == false) {
+            throw new InterruptedException("Stopped by user");
+        }
+    }
+
+    public void run() {
+//        String cmd;
+//        String list;//, data;
+//        hasError = false;
+
+        try {
+            if (jp1.getSelectedIndex() == 0) {
+                jta.append("Generating executable code (ELN version)\n");
+
+                Vector<ELNDiagramPanel> elnDiagramPanels = mgui.getListELNPanel();
+                LinkedList<ELNTCluster> clusters = new LinkedList<ELNTCluster>();
+                for (ELNDiagramPanel elnDiagramPanel : elnDiagramPanels) {
+                	ELNPanelTranslator elnPanelTranslator = new ELNPanelTranslator(elnDiagramPanel);
+                	ELNSpecification elnSpec = elnPanelTranslator.getELNSpecification();
+                	clusters.add(elnSpec.getCluster());
+                }
+                for (ELNDiagramPanel elnDiagramPanel : elnDiagramPanels) {
+                	ELNPanelTranslator elnPanelTranslator = new ELNPanelTranslator(elnDiagramPanel);
+                	ELNSpecification elnSpec = elnPanelTranslator.getELNSpecification();
+
+                	// Generating code
+                	if (elnSpec == null) {
+                		jta.append("Error: No ELN specification\n");
+                	} else {
+                		System.err.println("**ELN TOPCELL found");
+
+                		TopCellGenerator topCellGenerator = new TopCellGenerator(elnSpec);
+                		testGo();
+                		jta.append("Generation of TopCell \"" + elnSpec.getCluster().getName() + "\" executable code: done\n");
+
+                		try {
+                			jta.append("Saving ELN code in files\n");
+                			System.err.println("Saving ELN code in files\n");
+                			pathCode = code2.getText();
+
+                			System.err.println("ELN TOPCELL : " + elnSpec.getCluster().getName() + "saved in " + code2.getText());
+                			topCellGenerator.saveFile(pathCode);
+
+                			jta.append("Code saved\n");
+                		} catch (Exception e) {
+                			jta.append("Could not generate files\n");
+                			System.err.println("Could not generate ELN files\n");
+                			e.printStackTrace();
+                		}
+                	}
+                	testGo();
+                }
+                try {
+        			String makefile;
+        			System.err.println(pathCode + "Makefile");
+        			FileWriter fw = new FileWriter(pathCode + "/" + "Makefile");
+        			makefile = MakefileCode.getMakefileCode(clusters);
+        			fw.write(makefile);
+        			fw.close();
+        		} catch (Exception ex) {
+        			ex.printStackTrace();
+        		}
+                testGo();
+            }
+//                if (removeCFiles.isSelected()) {
+//
+//                    jta.append("Removing all .h files\n");
+//
+//                    list = FileUtils.deleteFiles(code1.getText() + TasksAndMainGenerator.getGeneratedPath(), ".h");
+//                    if (list.length() == 0) {
+//                        jta.append("No files were deleted\n");
+//                    } else {
+//                        jta.append("Files deleted:\n" + list + "\n");
+//                    }
+//                    jta.append("Removing all  .c files\n");
+//                    list = FileUtils.deleteFiles(code1.getText() + TasksAndMainGenerator.getGeneratedPath(), ".c");
+//                    if (list.length() == 0) {
+//                        jta.append("No files were deleted\n");
+//                    } else {
+//                        jta.append("Files deleted:\n" + list + "\n");
+//                    }
+//                }
+
+//                if (removeXFiles.isSelected()) {
+//                    jta.append("Removing all .x files\n");
+//                    list = FileUtils.deleteFiles(code1.getText(), ".x");
+//                    if (list.length() == 0) {
+//                        jta.append("No files were deleted\n");
+//                    } else {
+//                        jta.append("Files deleted:\n" + list + "\n");
+//                    }
+//                }
+
+//                testGo();
+
+//                selectedUnit = units.getSelectedIndex();
+
+                // Generating code
+//                if (avspec == null) {
+//                    jta.append("Error: No AVATAR specification\n");
+//                } else {
+//
+//                    TasksAndMainGenerator gene = new TasksAndMainGenerator(syscalsspec, avspec);
+//                    gene.includeUserCode(putUserCode.isSelected());
+//                    gene.setTimeUnit(selectedUnit);
+//                    gene.generateSoclib(debugmode.isSelected(), tracemode.isSelected());
+//
+//                    if (syscalsspec == null) {
+//                        jta.append("Error: No AVATAR Deployment specification\n");
+//                    } else {
+//                        System.err.println("AVATAR TOPCELL found");
+//                    }
+//
+//                    TopCellGenerator topCellGenerator = new TopCellGenerator(syscalsspec, tracemode.isSelected(), avspec);
+//                    testGo();
+//                    jta.append("Generation of TopCell executable code: done\n");
+//
+//                    try {
+//                        jta.append("Saving code in files\n");
+//                        pathCode = code2.getText();
+//                        topCellGenerator.saveFile(pathCode);
+//
+//                        jta.append("Code saved\n");
+//                    } catch (Exception e) {
+//                        jta.append("Could not generate files\n");
+//                    }
+//
+//                    testGo();
+//                    jta.append("Generation of C-SOCLIB executable code: done\n");
+//                    try {
+//                        jta.append("Saving code in files\n");
+//                        pathCode = code1.getText();
+//                        gene.saveInFiles(pathCode);
+//
+//                        jta.append("Code saved\n");
+//                    } catch (Exception e) {
+//                        jta.append("Could not generate files\n");
+//                    }
+//                }
+//            }
+
+//            testGo();
+
+//            if (jp1.getSelectedIndex() == 1) {
+//                cmd = compiler.getText();
+//                jta.append("Compiling executable code with command: \n" + cmd + "\n");
+//
+//                rshc = new RshClient(hostExecute);
+//                try {
+//                    processCmd(cmd, jta);
+//                    jta.append("Compilation done\n");
+//                } catch (LauncherException le) {
+//                    jta.append("Error: " + le.getMessage() + "\n");
+//                    mode = STOPPED;
+//                    setButtons();
+//                    return;
+//                } catch (Exception e) {
+//                    mode = STOPPED;
+//                    setButtons();
+//                    return;
+//                }
+//            }
+//
+//            if (jp1.getSelectedIndex() == 2) {
+//                try {
+//                    cmd = exe4.getText();
+//                    jta.append("Executing code with command: \n" + cmd + "\n");
+//                    rshc = new RshClient(hostExecute);
+//                    processCmd(cmd, jta);
+//                    jta.append("Execution done\n");
+//                } catch (LauncherException le) {
+//                    jta.append("Error: " + le.getMessage() + "\n");
+//                    mode = STOPPED;
+//                    setButtons();
+//                    return;
+//                } catch (Exception e) {
+//                    mode = STOPPED;
+//                    setButtons();
+//                    return;
+//                }
+//            }
+//            if ((hasError == false) && (jp1.getSelectedIndex() < 2)) {
+//                jp1.setSelectedIndex(jp1.getSelectedIndex() + 1);
+//            }
+        } catch (InterruptedException ie) {
+            jta.append("Interrupted\n");
+        }
+
+        jta.append("\n\nReady to process next command\n");
+
+        checkMode();
+        setButtons();
+    }
+
+    protected void processCmd(String cmd, JTextArea _jta) throws LauncherException {
+        rshc.setCmd(cmd);
+        rshc.sendExecuteCommandRequest();
+        final Writer output = new StringWriter();
+        rshc.writeCommandMessages(output);
+        _jta.append(output.toString());
+
+        return;
+    }
+
+    protected void checkMode() {
+        mode = NOT_STARTED;
+    }
+
+    protected void setButtons() {
+        switch (mode) {
+            case NOT_STARTED:
+                start.setEnabled(true);
+                stop.setEnabled(false);
+                close.setEnabled(true);
+                getGlassPane().setVisible(false);
+                break;
+            case STARTED:
+                start.setEnabled(false);
+                stop.setEnabled(true);
+                close.setEnabled(false);
+                getGlassPane().setVisible(true);
+                break;
+            case STOPPED:
+            default:
+                start.setEnabled(false);
+                stop.setEnabled(false);
+                close.setEnabled(true);
+                getGlassPane().setVisible(false);
+                break;
+        }
+    }
+
+    public boolean hasToContinue() {
+        return (go == true);
+    }
+
+    public void appendOut(String s) {
+        jta.append(s);
+    }
+
+
+    public void setError() {
+//        hasError = true;
+    }
+
+//    public void showSimulationTrace() {
+//        JFrameSimulationSDPanel jfssdp = new JFrameSimulationSDPanel(f, mgui, "Simulation trace of " + simulationTraceFile.getText());
+//        jfssdp.setIconImage(IconManager.img8);
+//        GraphicLib.centerOnParent(jfssdp, 600, 600);
+//        if (selectedViewTrace == 0) {
+//            jfssdp.setFileReference(simulationTraceFile.getText());
+//        } else {
+//            jfssdp.setFileReference(simulationsoclibTraceFile.getText());
+//        }
+//        jfssdp.setVisible(true);
+//        TraceManager.addDev("Ok JFrame");
+//    }
+
+//    public void showOverflowStatus() {
+//        try {
+//            String path = ConfigurationTTool.AVATARMPSoCPerformanceEvaluationDirectory;
+//            String taille = "0";
+//
+//            String log = "mwmr0.log";
+//
+//            String[] commande = {"sh", path + "callingOverflow.sh", taille, path, log};
+//
+//            ProcessBuilder pb = new ProcessBuilder(commande);
+//            pb.redirectError(ProcessBuilder.Redirect.INHERIT);
+//            Process p = pb.start();
+//
+//            int exitStatus = p.waitFor();
+//
+//        } catch (InterruptedException e) {
+//            e.printStackTrace();
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//    }
+}
diff --git a/src/main/java/ui/window/JDialogELNModulePortDE.java b/src/main/java/ui/window/JDialogELNModulePortDE.java
new file mode 100644
index 0000000000000000000000000000000000000000..ddb7e5a7a98be635ababf3534d3d7036ca82c701
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNModulePortDE.java
@@ -0,0 +1,206 @@
+/* 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 ui.window;
+
+import ui.eln.ELNModulePortDE;
+import ui.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNModulePortDE 
+ * Dialog for managing of ELN module port DE
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+@SuppressWarnings("serial")
+
+public class JDialogELNModulePortDE extends JDialog implements ActionListener {
+
+	private JTextField nameTextField;
+	private ArrayList<String> listArrayTypeString;
+	private JComboBox<String> typeComboBoxString;
+	private ArrayList<String> listOriginString;
+	private JComboBox<String> originComboBoxString;
+
+	private ELNModulePortDE term;
+
+	public JDialogELNModulePortDE(ELNModulePortDE term) {
+		this.setTitle("Setting Module Port DE Attributes");
+		this.setLocationRelativeTo(null);
+		this.setVisible(true);
+		this.setAlwaysOnTop(true);
+		this.setResizable(false);
+
+		this.term = term;
+
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+		getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+				dispose();
+			}
+		});
+
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+
+		JPanel attributesMainPanel = new JPanel();
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH); 
+
+		attributesMainPanel.setLayout(new BorderLayout());
+
+		Box attributesBox = Box.createVerticalBox();
+		attributesBox.setBorder(BorderFactory.createTitledBorder("Setting module port DE attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel attributesBoxPanel = new JPanel();
+		attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		attributesBoxPanel.setLayout(gridBag);
+
+		JLabel labelName = new JLabel("Name : ");
+		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(labelName, constraints);
+		attributesBoxPanel.add(labelName);
+
+		nameTextField = new JTextField(term.getValue().toString(), 10); 
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(nameTextField, constraints);
+		attributesBoxPanel.add(nameTextField);
+
+		JLabel typeLabel = new JLabel("Type : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeLabel, constraints);
+		attributesBoxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		listArrayTypeString.add("int");
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
+		}
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (term.getPortType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
+		}
+		typeComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeComboBoxString, constraints);
+		attributesBoxPanel.add(typeComboBoxString); 
+
+		JLabel orginLabel = new JLabel("In / Out : ");
+		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(orginLabel, constraints);
+		attributesBoxPanel.add(orginLabel);
+
+		listOriginString = new ArrayList<String>();
+		listOriginString.add("in");
+		listOriginString.add("out");
+		originComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listOriginString.size(); i++) {
+			originComboBoxString.addItem(listOriginString.get(i));
+		}
+		for (int i = 0; i < listOriginString.size(); i++) {
+			if (term.getOrigin().equals(listOriginString.get(i))) {
+				originComboBoxString.setSelectedIndex(i);
+			}
+		}
+		originComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(originComboBoxString, constraints);
+		attributesBoxPanel.add(originComboBoxString);
+
+		attributesBox.add(attributesBoxPanel);
+
+		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			term.setValue(new String(nameTextField.getText()));
+			term.setPortType((String) typeComboBoxString.getSelectedItem());
+			term.setOrigin((String) originComboBoxString.getSelectedItem());
+			
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogELNModulePortTDF.java b/src/main/java/ui/window/JDialogELNModulePortTDF.java
new file mode 100644
index 0000000000000000000000000000000000000000..202c576b8280dd75b72d9c59ea9ea0ae4169c3ed
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNModulePortTDF.java
@@ -0,0 +1,206 @@
+/* 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 ui.window;
+
+import ui.eln.ELNModulePortTDF;
+import ui.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNModulePortTDF 
+ * Dialog for managing of ELN module port TDF
+ * Creation: 03/08/2018
+ * @version 1.0 03/08/2018
+ * @author Irina Kit Yan LEE
+ */
+
+@SuppressWarnings("serial")
+
+public class JDialogELNModulePortTDF extends JDialog implements ActionListener {
+
+	private JTextField nameTextField;
+	private ArrayList<String> listArrayTypeString;
+	private JComboBox<String> typeComboBoxString;
+	private ArrayList<String> listOriginString;
+	private JComboBox<String> originComboBoxString;
+
+	private ELNModulePortTDF term;
+
+	public JDialogELNModulePortTDF(ELNModulePortTDF term) {
+		this.setTitle("Setting Module Port TDF Attributes");
+		this.setLocationRelativeTo(null);
+		this.setVisible(true);
+		this.setAlwaysOnTop(true);
+		this.setResizable(false);
+
+		this.term = term;
+
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+		getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+				dispose();
+			}
+		});
+
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+
+		JPanel attributesMainPanel = new JPanel();
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH); 
+
+		attributesMainPanel.setLayout(new BorderLayout());
+
+		Box attributesBox = Box.createVerticalBox();
+		attributesBox.setBorder(BorderFactory.createTitledBorder("Setting module port TDF attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel attributesBoxPanel = new JPanel();
+		attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		attributesBoxPanel.setLayout(gridBag);
+
+		JLabel labelName = new JLabel("Name : ");
+		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(labelName, constraints);
+		attributesBoxPanel.add(labelName);
+
+		nameTextField = new JTextField(term.getValue().toString(), 10); 
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(nameTextField, constraints);
+		attributesBoxPanel.add(nameTextField);
+
+		JLabel typeLabel = new JLabel("Type : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeLabel, constraints);
+		attributesBoxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		listArrayTypeString.add("int");
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
+		}
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (term.getPortType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
+		}
+		typeComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeComboBoxString, constraints);
+		attributesBoxPanel.add(typeComboBoxString); 
+
+		JLabel orginLabel = new JLabel("In / Out : ");
+		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(orginLabel, constraints);
+		attributesBoxPanel.add(orginLabel);
+
+		listOriginString = new ArrayList<String>();
+		listOriginString.add("in");
+		listOriginString.add("out");
+		originComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listOriginString.size(); i++) {
+			originComboBoxString.addItem(listOriginString.get(i));
+		}
+		for (int i = 0; i < listOriginString.size(); i++) {
+			if (term.getOrigin().equals(listOriginString.get(i))) {
+				originComboBoxString.setSelectedIndex(i);
+			}
+		}
+		originComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(originComboBoxString, constraints);
+		attributesBoxPanel.add(originComboBoxString);
+		
+		attributesBox.add(attributesBoxPanel);
+
+		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			term.setValue(new String(nameTextField.getText()));
+			term.setPortType((String) typeComboBoxString.getSelectedItem());
+			term.setOrigin((String) originComboBoxString.getSelectedItem());
+			
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogELNComponentNodeRef.java b/src/main/java/ui/window/JDialogELNNodeRef.java
similarity index 85%
rename from src/main/java/ui/window/JDialogELNComponentNodeRef.java
rename to src/main/java/ui/window/JDialogELNNodeRef.java
index 85e4380b1eb814d8e6b8e55de794b7576caa2f5b..20b3279e7e602ef37c45c4ddd1af7f54fbfeb661 100644
--- a/src/main/java/ui/window/JDialogELNComponentNodeRef.java
+++ b/src/main/java/ui/window/JDialogELNNodeRef.java
@@ -38,32 +38,13 @@
 
 package ui.window;
 
-import ui.eln.sca_eln.ELNComponentNodeRef;
+import ui.TGComponent;
+import ui.eln.ELNModule;
+import ui.eln.ELNNodeRef;
 import ui.util.IconManager;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.AbstractAction;
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import javax.swing.KeyStroke;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
 
 /**
  * Class JDialogELNComponentNodeRef
@@ -75,16 +56,16 @@ import javax.swing.KeyStroke;
 
 @SuppressWarnings("serial")
 
-public class JDialogELNComponentNodeRef extends JDialog implements ActionListener {
+public class JDialogELNNodeRef extends JDialog implements ActionListener {
 
 	/** Access to ActionPerformed **/
 	private JTextField nameTextField;
 
 	/** Parameters **/
-	private ELNComponentNodeRef gnd;
+	private ELNNodeRef gnd;
 
 	/** Constructor **/
-	public JDialogELNComponentNodeRef(ELNComponentNodeRef _gnd) {
+	public JDialogELNNodeRef(ELNNodeRef _gnd) {
 		/** Set JDialog **/
 		setTitle("Setting the reference node");
 		setLocationRelativeTo(null);
@@ -168,6 +149,18 @@ public class JDialogELNComponentNodeRef extends JDialog implements ActionListene
 		if ("Save_Close".equals(e.getActionCommand())) {
 			gnd.setValue(new String(nameTextField.getText()));
 			
+			for (TGComponent tgc : gnd.getTDiagramPanel().getComponentList()) {
+				if (tgc instanceof ELNModule) {
+					if (gnd.getFather() != null) {
+						if (gnd.getFather().equals(tgc)) {
+							for (ELNNodeRef t : ((ELNModule) tgc).getAllComponentNodeRef()) {
+								t.setValue(gnd.getValue());
+							}
+						}
+					}
+				}
+			}
+			
 			this.dispose();
 		}
 
diff --git a/src/main/java/ui/window/JDialogModelChecking.java b/src/main/java/ui/window/JDialogModelChecking.java
index 93fb37d7bb7f70746e6a739e717050895e5ebfe7..c6978e3a9030df76deb3dbdf9d500f2db7036fee 100644
--- a/src/main/java/ui/window/JDialogModelChecking.java
+++ b/src/main/java/ui/window/JDialogModelChecking.java
@@ -46,11 +46,20 @@ import ui.util.IconManager;
 import javax.swing.*;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
 
 /**
  * Class JDialogModelChecking
@@ -61,10 +70,10 @@ import java.util.LinkedList;
  * @version 1.0 13/12/2003
  */
 public class JDialogModelChecking extends JDialogBase implements ActionListener, ListSelectionListener {
-    public static java.util.List<TClassInterface> validated, ignored;
+    public static List<TClassInterface> validated, ignored;
     private static boolean overideSyntaxChecking = false;
 
-    private java.util.List<TClassInterface> val, ign, back;
+    private List<TClassInterface> val, ign, back;
 
     //subpanels
     private JPanel panel1, panel2, panel3, panel4, panel5, panel6;
@@ -79,7 +88,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener,
     /**
      * Creates new form
      */
-    public JDialogModelChecking(Frame f, LinkedList<TClassInterface> _back, java.util.List<TGComponent> componentList, String title) {
+    public JDialogModelChecking(Frame f, List<TClassInterface> _back, List<TGComponent> componentList, String title) {
         super(f, title, true);
 
         back = _back;
@@ -101,8 +110,8 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener,
         pack();
     }
 
-    private java.util.List<TClassInterface> makeNewVal(java.util.List<TGComponent> list) {
-        java.util.List<TClassInterface> v = new LinkedList<TClassInterface>();
+    private List<TClassInterface> makeNewVal(List<TGComponent> list) {
+        List<TClassInterface> v = new LinkedList<TClassInterface>();
 
         for (TGComponent tgc : list)
             if (tgc instanceof TClassInterface)
@@ -111,7 +120,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener,
         return v;
     }
 
-    private void checkTClasses(java.util.List<TClassInterface> tobeChecked, java.util.List<TGComponent> source) {
+    private void checkTClasses( List<TClassInterface> tobeChecked, List<TGComponent> source) {
         Iterator<TClassInterface> iter = tobeChecked.iterator();
         while (iter.hasNext()) {
             TClassInterface t = iter.next();
@@ -120,7 +129,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener,
         }
     }
 
-    public void addNewTclasses(java.util.List<TClassInterface> added, java.util.List<TGComponent> source, java.util.List<TClassInterface> notSource) {
+    public void addNewTclasses(List<TClassInterface> added, List<TGComponent> source, List<TClassInterface> notSource) {
         for (TGComponent tgc : source)
             if ((tgc instanceof TClassInterface) && (!added.contains(tgc)) && (!notSource.contains(tgc)))
                 added.add((TClassInterface) tgc);
diff --git a/src/main/java/ui/window/JDialogMultiString.java b/src/main/java/ui/window/JDialogMultiString.java
index 102f2ca04785379cbba524979335d39bb13f71e8..b69246503d610d332e813e07e879f8feb0e072dd 100644
--- a/src/main/java/ui/window/JDialogMultiString.java
+++ b/src/main/java/ui/window/JDialogMultiString.java
@@ -36,15 +36,25 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.window;
 
-import javax.swing.*;
-import java.awt.*;
+import java.awt.Container;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
 
 /**
  * Class JDialogMultiString
@@ -68,9 +78,9 @@ public class JDialogMultiString extends JDialogBase implements ActionListener {
     // Panel1
     private JTextField[] texts;
     private JButton inserts[];
-    private HashMap<Integer, JComboBox<String>> helps;
+    private Map<Integer, JComboBox<String>> helps;
 
-    private ArrayList<String[]> possibleValues = null;
+    private List<String[]> possibleValues = null;
 
 
     /**
@@ -89,11 +99,11 @@ public class JDialogMultiString extends JDialogBase implements ActionListener {
         texts = new JTextField[nbString];
 
         initComponents();
-        myInitComponents();
+     //   myInitComponents();
         pack();
     }
 
-    public JDialogMultiString(Frame f, String title, int _nbString, String[] _labels, String[] _values, ArrayList<String[]> _possibleValues) {
+    public JDialogMultiString(Frame f, String title, int _nbString, String[] _labels, String[] _values, List<String[]> _possibleValues) {
 
         super(f, title, true);
 
@@ -105,13 +115,12 @@ public class JDialogMultiString extends JDialogBase implements ActionListener {
         texts = new JTextField[nbString];
 
         initComponents();
-        myInitComponents();
+    //    myInitComponents();
         pack();
     }
 
-
-    private void myInitComponents() {
-    }
+//    private void myInitComponents() {
+//    }
 
     private void initComponents() {
         inserts = new JButton[labels.length];
@@ -192,6 +201,7 @@ public class JDialogMultiString extends JDialogBase implements ActionListener {
         initButtons(c0, c, this);
     }
 
+    @Override
     public void actionPerformed(ActionEvent evt) {
         String command = evt.getActionCommand();
 
@@ -209,7 +219,6 @@ public class JDialogMultiString extends JDialogBase implements ActionListener {
         }
     }
 
-
     public void closeDialog() {
         set = true;
         dispose();
diff --git a/src/main/java/ui/window/JDialogMultiStringAndTabs.java b/src/main/java/ui/window/JDialogMultiStringAndTabs.java
index 33bc0d40ee46ad4e9e4b111cb11e5a2362275fa4..c7b59926e6e96fee28efadf7adb0709d5428d703 100644
--- a/src/main/java/ui/window/JDialogMultiStringAndTabs.java
+++ b/src/main/java/ui/window/JDialogMultiStringAndTabs.java
@@ -36,15 +36,26 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.window;
 
-import javax.swing.*;
-import java.awt.*;
+import java.awt.Container;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextField;
 
 /**
  * Class JDialogMultiStringAndTabs
@@ -56,7 +67,7 @@ import java.util.HashMap;
  */
 public class JDialogMultiStringAndTabs extends JDialogBase implements ActionListener {
 
-    private ArrayList<TabInfo> tabs;
+    private List<TabInfo> tabs;
     private int totalNbOfStrings;
 
     private boolean set = false;
@@ -64,16 +75,16 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList
     // Panel1
     private JTextField[] texts;
     private JButton inserts[];
-    private HashMap<Integer, JComboBox<String>> helps;
+    private Map<Integer, JComboBox<String>> helps;
 
-    private ArrayList<String[]> possibleValues = null;
+   // private List<String[]> possibleValues = null;
 
 
     /**
      * Creates new form
      */
     // arrayDelay: [0] -> minDelay ; [1] -> maxDelay
-    public JDialogMultiStringAndTabs(Frame f, String title, ArrayList<TabInfo> _tabs) {
+    public JDialogMultiStringAndTabs(Frame f, String title, List<TabInfo> _tabs) {
 
         super(f, title, true);
 
@@ -87,13 +98,13 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList
         texts = new JTextField[totalNbOfStrings];
 
         initComponents();
-        myInitComponents();
+        //myInitComponents();
         pack();
     }
 
 
-    private void myInitComponents() {
-    }
+//    private void myInitComponents() {
+//    }
 
     private void initComponents() {
         inserts = new JButton[totalNbOfStrings];
@@ -161,15 +172,10 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList
 
         }
 
-
-
         //panel1.setBorder(new javax.swing.border.TitledBorder("Properties"));
 
         //panel1.setPreferredSize(new Dimension(600, 300));
 
-
-
-
         // main panel;
         c0.gridwidth = 1;
         c0.gridheight = 10;
@@ -186,6 +192,7 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList
         initButtons(c0, c, this);
     }
 
+    @Override
     public void actionPerformed(ActionEvent evt) {
         String command = evt.getActionCommand();
 
@@ -203,7 +210,6 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList
         }
     }
 
-
     public void closeDialog() {
         set = true;
         dispose();
@@ -232,7 +238,6 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList
         return texts[i].getText().length() > 0;
     }
 
-
     public boolean hasBeenSet() {
         return set;
     }
diff --git a/src/main/java/ui/window/JDialogNCRoute.java b/src/main/java/ui/window/JDialogNCRoute.java
index abea3c8950400b26f32276ea2a7302bb1a4976cf..cdeca43774ed399994e2ee6f95f59fd9ef2825aa 100644
--- a/src/main/java/ui/window/JDialogNCRoute.java
+++ b/src/main/java/ui/window/JDialogNCRoute.java
@@ -36,23 +36,33 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.window;
 
-import ui.util.IconManager;
-import ui.ncdd.NCRoute;
-
-import javax.swing.*;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import java.awt.*;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.ArrayList;
+import java.util.List;
 import java.util.Vector;
 
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import ui.ncdd.NCRoute;
+
 
 /**
  * Class JDialogNCRoute
@@ -63,7 +73,7 @@ import java.util.Vector;
  */
 public class JDialogNCRoute extends JDialogBase implements ActionListener, ListSelectionListener  {
     private Vector<NCRoute> routes;
-	private ArrayList<String> inputInterfaces, traffics, outputInterfaces;
+	private List<String> inputInterfaces, traffics, outputInterfaces;
 
 	protected String value;
 	
@@ -82,7 +92,7 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS
 	private JTextField valueText;
 
     /** Creates new form  */
-    public JDialogNCRoute(Frame _f, String _title, String _value, Vector<NCRoute> _routes, ArrayList<String> _inputInterfaces, ArrayList<String> _traffics, ArrayList<String> _outputInterfaces) {
+    public JDialogNCRoute(Frame _f, String _title, String _value, Vector<NCRoute> _routes, List<String> _inputInterfaces, List<String> _traffics, List<String> _outputInterfaces) {
         super(_f, _title, true);
 
 		value = _value;
@@ -276,8 +286,8 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS
         initButtons(c0, c, this);
     }
     
+    @Override
     public void	actionPerformed(ActionEvent evt)  {
-        
         String command = evt.getActionCommand();
         
         // Compare the action command to the known actions.
@@ -320,7 +330,6 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS
 		}
 	}
     
-    
     private void addRoute() {
         String s0 = (String)(inputInterfaceBox.getSelectedItem());
 		String s1 = (String)(trafficBox.getSelectedItem());
@@ -386,6 +395,7 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS
 		return hasBeenCancelled;
 	}
     
+	@Override
     public void valueChanged(ListSelectionEvent e) {
         int i = listRoute.getSelectedIndex() ;
         if (i == -1) {
@@ -410,6 +420,4 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS
 	public String getValue() {
 		return valueText.getText();
 	}
-    
-    
 }
diff --git a/src/main/java/ui/window/JDialogPerformancePragma.java b/src/main/java/ui/window/JDialogPerformancePragma.java
index ab990ef7b29119639f6a49adc47bab2a43b86b98..ba2dc8421e29308eeea7cdc4d6a38d64ab1f3d76 100644
--- a/src/main/java/ui/window/JDialogPerformancePragma.java
+++ b/src/main/java/ui/window/JDialogPerformancePragma.java
@@ -36,17 +36,27 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.window;
 
 import ui.util.IconManager;
 
 import javax.swing.*;
 import javax.swing.text.BadLocationException;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Insets;
+import java.awt.Point;
 import java.awt.event.*;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Class JDialogPragma
@@ -67,7 +77,7 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
     protected JMenuBar menuBar;
     protected JMenu help;
     protected JPopupMenu helpPopup;
-    public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>();
+    public Map<String, List<String>> blockAttributeMap = new HashMap<String, List<String>>();
 
     /**
      * Creates new form
@@ -85,7 +95,7 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
         //Form list of all blocks
         //For each block, create a list of all states and signals
 
-        private JList list;
+        private JList<String> list;
         private JPopupMenu popupMenu;
         private String subWord;
         private final int insertionPosition;
@@ -112,8 +122,8 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
             }
         }
 
-        private JList createSuggestionList(int linePosition, final int position, final String subWord) {
-            ArrayList<String> matches = new ArrayList<String>();
+        private JList<String> createSuggestionList(int linePosition, final int position, final String subWord) {
+            List<String> matches = new ArrayList<String>();
             if (linePosition < 6) {
                 matches.add("Latency(");
             } else if (!subWord.contains(".")) {
@@ -150,7 +160,6 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
             return list;
         }
 
-
         public boolean insertSelection() {
             //Note that it will not add if the selection will not fit on the current line
             if (!popupMenu.isVisible()) {
@@ -257,7 +266,6 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
     }
 
     protected void initComponents() {
-
         Container c = getContentPane();
         Font f = new Font("Helvetica", Font.PLAIN, 14);
         setFont(f);
@@ -394,7 +402,6 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
         } else if (evt.getSource() == close) {
             close();
         }
-
     }
 
     public void cancel() {
@@ -417,6 +424,4 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
     public String getText() {
         return text;
     }
-
-
 }
diff --git a/src/main/java/ui/window/JDialogPragma.java b/src/main/java/ui/window/JDialogPragma.java
index b9918ad98d08d9b96524b2d39571c68958e77e25..04d1b1fd37477f8bb5205460969104891e85b809 100644
--- a/src/main/java/ui/window/JDialogPragma.java
+++ b/src/main/java/ui/window/JDialogPragma.java
@@ -36,17 +36,27 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.window;
 
 import ui.util.IconManager;
 
 import javax.swing.*;
 import javax.swing.text.BadLocationException;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Insets;
+import java.awt.Point;
 import java.awt.event.*;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -68,8 +78,8 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
     protected JButton cancel;
     protected JMenu help;
     private JPopupMenu helpPopup;
-    public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<>();
-    public HashMap<String, java.util.List<String>> blockStateMap = new HashMap<>();
+    public Map<String, List<String>> blockAttributeMap = new HashMap<>();
+    public Map<String, List<String>> blockStateMap = new HashMap<>();
 
     /**
      * Creates new form
@@ -85,7 +95,7 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
 
     public class SuggestionPanel {
         private final String[] pragma = {"#Authenticity", "#Confidentiality", "#PublicConstant", "#PrivateConstant", "#InitialSessionKnowledge", "#InitialSystemKnowledge", "#PrivatePublicKeys", "#Public", "#SecrecyAssumption", "#Secret"};
-        private JList list;
+        private JList<String> list;
         private JPopupMenu popupMenu;
         private String subWord;
         private final int insertionPosition;
@@ -111,8 +121,8 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
             }
         }
 
-        private JList createSuggestionList(final int position, final String subWord, String header) {
-            ArrayList<String> matches = new ArrayList<>();
+        private JList<String> createSuggestionList(final int position, final String subWord, String header) {
+            List<String> matches = new ArrayList<>();
             if (subWord.startsWith("#")) {
                 for (String p : pragma) {
                     if (p.startsWith(subWord)) {
@@ -291,7 +301,6 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
     }
 
     protected void initComponents() {
-
         Container c = getContentPane();
         Font f = new Font("Helvetica", Font.PLAIN, 14);
         setFont(f);
@@ -358,12 +367,10 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
             }
         });
 
-
         JScrollPane jsp = new JScrollPane(textarea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
         jsp.setPreferredSize(new Dimension(300, 300));
         c.add(jsp, BorderLayout.CENTER);
 
-
         close = new JButton("Ok", IconManager.imgic25);
         cancel = new JButton("Cancel", IconManager.imgic27);
 
@@ -388,6 +395,7 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
 
     }
 
+    @Override
     public void actionPerformed(ActionEvent evt) {
         String command = evt.getActionCommand();
 
@@ -397,7 +405,6 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
         } else if (command.equals("Ok")) {
             close();
         }
-
     }
 
     public void cancel() {
@@ -420,6 +427,4 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
     public String getText() {
         return text;
     }
-
-
 }
diff --git a/src/main/java/ui/window/JDialogSafetyPragma.java b/src/main/java/ui/window/JDialogSafetyPragma.java
index 8e8f0fb24216dfe185da47962f87a0d704e152e9..6bb6c760e31f1101c3d23fd23b87893a7ced55ce 100644
--- a/src/main/java/ui/window/JDialogSafetyPragma.java
+++ b/src/main/java/ui/window/JDialogSafetyPragma.java
@@ -36,17 +36,27 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.window;
 
 import ui.util.IconManager;
 
 import javax.swing.*;
 import javax.swing.text.BadLocationException;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Insets;
+import java.awt.Point;
 import java.awt.event.*;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Class JDialogPragma
@@ -67,7 +77,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
     protected JMenuBar menuBar;
     protected JMenu help;
     protected JPopupMenu helpPopup;
-    public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>();
+    public Map<String, List<String>> blockAttributeMap = new HashMap<String, List<String>>();
 
     /**
      * Creates new form
@@ -86,7 +96,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
         //Form list of all blocks
         //For each block, create a list of all attribute strings and states
 
-        private JList list;
+        private JList<String> list;
         private JPopupMenu popupMenu;
         private String subWord;
         private final int insertionPosition;
@@ -113,8 +123,8 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
             }
         }
 
-        private JList createSuggestionList(int linePosition, final int position, final String subWord) {
-            ArrayList<String> matches = new ArrayList<String>();
+        private JList<String> createSuggestionList(int linePosition, final int position, final String subWord) {
+            List<String> matches = new ArrayList<String>();
             if (linePosition < 3) {
                 for (String p : pragma) {
                     if (p.startsWith(subWord)) {
@@ -264,8 +274,6 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
     }
 
     protected void initComponents() {
-
-
         Container c = getContentPane();
         Font f = new Font("Helvetica", Font.PLAIN, 14);
         setFont(f);
@@ -284,7 +292,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
         textarea.setTabSize(3);
         textarea.append(text);
         textarea.setFont(new Font("times", Font.PLAIN, 12));
-        JMenuBar menuBar = new JMenuBar();
+        menuBar = new JMenuBar();
         menuBar.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
         help = new JMenu("?");
         menuBar.add(help);
@@ -364,6 +372,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
         c.add(jp, BorderLayout.SOUTH);
     }
 
+    @Override
     public void actionPerformed(ActionEvent evt) {
         String command = evt.getActionCommand();
 
@@ -373,7 +382,6 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
         } else if (command.equals("Ok")) {
             close();
         }
-
     }
 
     public void cancel() {
@@ -396,6 +404,4 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
     public String getText() {
         return text;
     }
-
-
 }
diff --git a/src/main/java/ui/window/JDialogSelectAvatarBlock.java b/src/main/java/ui/window/JDialogSelectAvatarBlock.java
index 98cb245ad0c2c9b4160466aa957dd07d45fa0e4b..6881282a33243cf095d191822a6b705956217b8a 100644
--- a/src/main/java/ui/window/JDialogSelectAvatarBlock.java
+++ b/src/main/java/ui/window/JDialogSelectAvatarBlock.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.window;
 
 import ui.avatarbd.AvatarBDStateMachineOwner;
@@ -45,11 +44,19 @@ import ui.util.IconManager;
 import javax.swing.*;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -61,10 +68,11 @@ import java.util.LinkedList;
  * @version 1.0 18/05/2010
  */
 public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListener, ListSelectionListener {
-    public LinkedList<AvatarBDStateMachineOwner> validated, ignored;
+    
+	public List<AvatarBDStateMachineOwner> validated, ignored;
     private boolean optimized = true;
 
-    private LinkedList<AvatarBDStateMachineOwner> val, ign, back;
+    private List<AvatarBDStateMachineOwner> val, ign, back;
 
     private JList<AvatarBDStateMachineOwner> listIgnored;
     private JList<AvatarBDStateMachineOwner> listValidated;
@@ -79,7 +87,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
     /**
      * Creates new form
      */
-    public JDialogSelectAvatarBlock(Frame f, LinkedList<AvatarBDStateMachineOwner> _back, LinkedList<AvatarBDStateMachineOwner> componentList, String title, LinkedList<AvatarBDStateMachineOwner> _validated, LinkedList<AvatarBDStateMachineOwner> _ignored, boolean _optimized) {
+    public JDialogSelectAvatarBlock(Frame f, List<AvatarBDStateMachineOwner> _back, List<AvatarBDStateMachineOwner> componentList, String title, List<AvatarBDStateMachineOwner> _validated, List<AvatarBDStateMachineOwner> _ignored, boolean _optimized) {
         super(f, title, true);
 
         back = _back;
@@ -103,7 +111,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
         pack();
     }
 
-    private void checkTask(LinkedList<AvatarBDStateMachineOwner> tobeChecked, LinkedList<AvatarBDStateMachineOwner> source) {
+    private void checkTask( List<AvatarBDStateMachineOwner> tobeChecked, List<AvatarBDStateMachineOwner> source) {
         Iterator<AvatarBDStateMachineOwner> iterator = tobeChecked.iterator();
 
         while (iterator.hasNext()) {
@@ -113,7 +121,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
         }
     }
 
-    private void addNewTask(LinkedList<AvatarBDStateMachineOwner> added, LinkedList<AvatarBDStateMachineOwner> source, LinkedList<AvatarBDStateMachineOwner> notSource) {
+    private void addNewTask( List<AvatarBDStateMachineOwner> added, List<AvatarBDStateMachineOwner> source, List<AvatarBDStateMachineOwner> notSource) {
         for (AvatarBDStateMachineOwner tgc : source)
             if (!added.contains(tgc) && !notSource.contains(tgc))
                 added.add(tgc);
@@ -262,6 +270,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
 
     }
 
+    @Override
     public void actionPerformed(ActionEvent evt) {
         String command = evt.getActionCommand();
 
@@ -273,8 +282,6 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
             return;
         }
 
-
-
         // Compare the action command to the known actions.
         switch (command) {
             case "addOneIgnored":
@@ -292,7 +299,6 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
         }
     }
 
-
     private void addOneIgnored() {
         for (AvatarBDStateMachineOwner o : this.listValidated.getSelectedValuesList()) {
             ign.add(o);
@@ -380,7 +386,6 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
         }
     }
 
-
     public void valueChanged(ListSelectionEvent e) {
         setButtons();
     }
@@ -393,11 +398,11 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
         return hasBeenCancelled;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getValidated() {
+    public List<AvatarBDStateMachineOwner> getValidated() {
         return validated;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getIgnored() {
+    public List<AvatarBDStateMachineOwner> getIgnored() {
         return ignored;
     }
 }
diff --git a/src/main/java/ui/window/JDialogSignalAssociation.java b/src/main/java/ui/window/JDialogSignalAssociation.java
index 084e1046c1c41e2b63e128c69b64dd8f05b436a8..b87fd0fe74de31ec119cf2b8b18f46aafe26fc21 100644
--- a/src/main/java/ui/window/JDialogSignalAssociation.java
+++ b/src/main/java/ui/window/JDialogSignalAssociation.java
@@ -36,27 +36,39 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.window;
 
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.List;
+import java.util.Vector;
 
-
-package ui.window;
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
 
 import myutil.TraceManager;
 import ui.AvatarSignal;
-import ui.util.IconManager;
 import ui.avatarbd.AvatarBDBlock;
 import ui.avatarbd.AvatarBDPortConnector;
 
-import javax.swing.*;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.LinkedList;
-import java.util.Vector;
-
-
 /**
    * Class JDialogSignalAssociation
    * Dialog for managing associations between signals (AVATAR profile)
@@ -67,7 +79,7 @@ import java.util.Vector;
 public class JDialogSignalAssociation extends JDialogBase implements ActionListener, ListSelectionListener  {
     private Vector<String> signalAssociation, localSignalAssociations;
     private AvatarBDBlock block1, block2;
-    private LinkedList<AvatarSignal> available1, available2;
+    private List<AvatarSignal> available1, available2;
     private AvatarBDPortConnector connector;
 
     private JRadioButton synchronous, asynchronous;
@@ -88,7 +100,6 @@ public class JDialogSignalAssociation extends JDialogBase implements ActionListe
     private JButton downButton;
     private JButton removeButton;
 
-
     /** Creates new form  */
     public JDialogSignalAssociation(Frame _f, AvatarBDBlock _block1, AvatarBDBlock _block2, Vector<String> _signalAssociation, AvatarBDPortConnector _connector, String _title) {
         super(_f, _title, true);
@@ -100,13 +111,13 @@ public class JDialogSignalAssociation extends JDialogBase implements ActionListe
         localSignalAssociations.addAll(signalAssociation);
 
         // Available signals
-	if (block1 != block2) {
-	    available1 = block1.getListOfAvailableSignals();
-	    available2 = block2.getListOfAvailableSignals();
-	} else {
-	    available1 = block1.getListOfAvailableOutSignals();
-	    available2 = block2.getListOfAvailableInSignals();
-	}
+		if (block1 != block2) {
+		    available1 = block1.getListOfAvailableSignals();
+		    available2 = block2.getListOfAvailableSignals();
+		} else {
+		    available1 = block1.getListOfAvailableOutSignals();
+		    available2 = block2.getListOfAvailableInSignals();
+		}
 
         initComponents();
         myInitComponents();
diff --git a/src/main/java/ui/window/JDialogSystemCGeneration.java b/src/main/java/ui/window/JDialogSystemCGeneration.java
index 2da61d2d75eb55da2c4fee5a5b206c6ae0bc5f1f..3a4c9f2056e10a3f8487de5c3ce8f475f4609bbb 100644
--- a/src/main/java/ui/window/JDialogSystemCGeneration.java
+++ b/src/main/java/ui/window/JDialogSystemCGeneration.java
@@ -59,9 +59,9 @@ import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
+import javax.swing.text.BadLocationException;
 import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
+import java.awt.event.*;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
@@ -73,10 +73,22 @@ import java.util.Vector;
  * Creation: 01/12/2005
  *
  * @author Ludovic APVRILLE, Andrea ENRICI
- * @version 1.2 02/06/2014
+ * @version 1.3 24/07/2018
  */
 public class JDialogSystemCGeneration extends JDialog implements ActionListener, Runnable, MasterProcessInterface, ListSelectionListener {
 
+    protected static final String HELP = "Penalties of components:\n" +
+            "*CPUs*: \n" +
+            "\tTask switching time \n" +
+            "\tPipeline\n" +
+            "\tCache miss\n" +
+            "\tMiss branching prediction\n" +
+            "\tCycles before being idle\n" +
+            "\tcycles for mode switch to/from idle\n\n" +
+            "*Buses*:\n" +
+            "\tPipeline\n";
+
+
     protected MainGUI mgui;
 
     private static String textSysC1 = "Generate C++ simulator code in";
@@ -123,6 +135,11 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener,
     protected JCheckBox removeCppFiles, removeXFiles, debugmode, optimizemode, activatePenalties;
     protected JComboBox<String> versionSimulator;
 
+    protected JMenu help;
+    protected JPopupMenu helpPopup;
+    protected JTextArea textarea;
+    protected JMenuBar menuBar;
+
     //TEPE Diagram
     private static Vector<AvatarPDPanel> validatedTepe, ignoredTepe;
     private Vector<AvatarPDPanel> valTepe, ignTepe;
@@ -312,7 +329,24 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener,
         optimizemode.setSelected(optimizeModeSelected);
         jp01.add(optimizemode, c01);
 
-        activatePenalties = new JCheckBox("Activate penalties");
+
+        helpPopup = new JPopupMenu();
+        helpPopup.add(new JTextArea(HELP));
+        //helpPopup.setPreferredSize(new Dimension(400, 500));
+        menuBar = new JMenuBar();
+        menuBar.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
+        help = new JMenu("?");
+        help.addMouseListener(new MouseAdapter() {
+            @Override
+            public void mousePressed(MouseEvent e) {
+               help();
+            }
+        });
+        menuBar.add(help);
+        setJMenuBar(menuBar);
+        help.setPreferredSize(new Dimension(30, 30));
+
+        activatePenalties = new JCheckBox("Activate penalties (task switching time, cache miss, miss branching prediction)");
         activatePenalties.setSelected(activatePenaltiesSelected);
         jp01.add(activatePenalties, c01);
 
@@ -1147,4 +1181,12 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener,
             validatedTepe.add(valTepe.get(i));
         }
     }
+
+    public void help() {
+        if (!helpPopup.isVisible()) {
+            helpPopup.show(help, 20, 20);
+        } else {
+            helpPopup.setVisible(false);
+        }
+    }
 }
diff --git a/src/main/java/ui/window/JDialogUPPAALValidation.java b/src/main/java/ui/window/JDialogUPPAALValidation.java
index ba0199cdd454e899df7b58f521b13d34379a813e..7acaf31c0d55969bf344ae46dbf86bf73f6a5f2d 100644
--- a/src/main/java/ui/window/JDialogUPPAALValidation.java
+++ b/src/main/java/ui/window/JDialogUPPAALValidation.java
@@ -757,7 +757,7 @@ public class JDialogUPPAALValidation extends javax.swing.JDialog implements Acti
         UPPAALSpec spec = mgui.gtm.getLastUPPAALSpecification();
         AVATAR2UPPAAL avatar2uppaal = mgui.gtm.getAvatar2Uppaal();
         AvatarSpecification avspec = mgui.gtm.getAvatarSpecification();
-        Hashtable<String, String> hash = avatar2uppaal.getHash();
+        Map<String, String> hash = avatar2uppaal.getHash();
         String finQuery = query + " ";
         /*      String[] split = query.split("[\\s-()=]+");
                 for (String s: split){
diff --git a/src/main/java/ui/window/TabInfo.java b/src/main/java/ui/window/TabInfo.java
index e2cfa09b8bbe1bcdc73615efda9cd0850608645c..c2f65e93c7425a0e8661ec01527c2ff89b97d030 100644
--- a/src/main/java/ui/window/TabInfo.java
+++ b/src/main/java/ui/window/TabInfo.java
@@ -36,15 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.window;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.List;
 
 /**
  * Class TabInfo
@@ -59,7 +53,7 @@ public class TabInfo  {
     public String identifier;
     public String[] labels;
     public String[] values;
-    public ArrayList<String[]> help;
+    public List<String[]> help;
 
     public TabInfo(String _identifier) {
         identifier = _identifier;
diff --git a/src/main/resources/ui/util/camsclusterblock.gif b/src/main/resources/ui/util/camsclusterblock.gif
index cc63c8caa4965eef406319fbee858c2c4bdbacde..ced246028109f6312b0ceb2cba689d99954a2fa3 100644
Binary files a/src/main/resources/ui/util/camsclusterblock.gif and b/src/main/resources/ui/util/camsclusterblock.gif differ
diff --git a/src/main/resources/ui/util/camsconverterport.gif b/src/main/resources/ui/util/camsconverterport.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fa581e567f10b8d71372b038207609fb41f37205
Binary files /dev/null and b/src/main/resources/ui/util/camsconverterport.gif differ
diff --git a/src/main/resources/ui/util/camsconverterportE.gif b/src/main/resources/ui/util/camsconverterportE.gif
deleted file mode 100644
index 23bd471b725ef22cdb122f9b0afb143c0a7aee68..0000000000000000000000000000000000000000
Binary files a/src/main/resources/ui/util/camsconverterportE.gif and /dev/null differ
diff --git a/src/main/resources/ui/util/camsconverterportN.gif b/src/main/resources/ui/util/camsconverterportN.gif
deleted file mode 100644
index c9b41b638f030edd9dae93debf68ca7461c97410..0000000000000000000000000000000000000000
Binary files a/src/main/resources/ui/util/camsconverterportN.gif and /dev/null differ
diff --git a/src/main/resources/ui/util/camsconverterportS.gif b/src/main/resources/ui/util/camsconverterportS.gif
deleted file mode 100644
index 373aa91832bc9029b2b7a1365e512ae7739c793b..0000000000000000000000000000000000000000
Binary files a/src/main/resources/ui/util/camsconverterportS.gif and /dev/null differ
diff --git a/src/main/resources/ui/util/camsconverterportW.gif b/src/main/resources/ui/util/camsconverterportW.gif
deleted file mode 100644
index 5d0764a89068c6661d3b5937346d299a75d4d891..0000000000000000000000000000000000000000
Binary files a/src/main/resources/ui/util/camsconverterportW.gif and /dev/null differ
diff --git a/src/main/resources/ui/util/camsdeblock.gif b/src/main/resources/ui/util/camsdeblock.gif
index 333cf72b58b5054abe0c5d3c0cbd07fa345b075a..24ea4cb4e03069267f264c43421bef25d1e40216 100644
Binary files a/src/main/resources/ui/util/camsdeblock.gif and b/src/main/resources/ui/util/camsdeblock.gif differ
diff --git a/src/main/resources/ui/util/camsdeport.gif b/src/main/resources/ui/util/camsdeport.gif
index 960af0633abd6b6a3d64bdbd309c0d17622afd6a..61508b28da4a0afdce18f09c85079bec9d93ac2e 100644
Binary files a/src/main/resources/ui/util/camsdeport.gif and b/src/main/resources/ui/util/camsdeport.gif differ
diff --git a/src/main/resources/ui/util/camsgpio2vciblock.gif b/src/main/resources/ui/util/camsgpio2vciblock.gif
index 8b89e5b76aa23de07f822dd49ffca18991735321..065b69e1ae9a9ca0fa16bdfcd692c18a5e4851af 100644
Binary files a/src/main/resources/ui/util/camsgpio2vciblock.gif and b/src/main/resources/ui/util/camsgpio2vciblock.gif differ
diff --git a/src/main/resources/ui/util/camstdfblock.gif b/src/main/resources/ui/util/camstdfblock.gif
index 7a27c4d4558c3a554144a9088346fcfc9b021900..97e72b596393d2001efec4f1eb02cbed4aa80ee3 100644
Binary files a/src/main/resources/ui/util/camstdfblock.gif and b/src/main/resources/ui/util/camstdfblock.gif differ
diff --git a/src/main/resources/ui/util/camstdfport.gif b/src/main/resources/ui/util/camstdfport.gif
index f3cf58a7c94a0e051224909ee00496d072433013..03b10587c06ff9d6ddc728e565d76aa950f30ca9 100644
Binary files a/src/main/resources/ui/util/camstdfport.gif and b/src/main/resources/ui/util/camstdfport.gif differ
diff --git a/src/main/resources/ui/util/elncapacitor.gif b/src/main/resources/ui/util/elncapacitor.gif
index 70173e0a0f69a68365728184e652a79fb19697a7..6df70d62943b41b6611312450bf195af280d8703 100644
Binary files a/src/main/resources/ui/util/elncapacitor.gif and b/src/main/resources/ui/util/elncapacitor.gif differ
diff --git a/src/main/resources/ui/util/elndeisink.gif b/src/main/resources/ui/util/elndeisink.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4dad84b3c3debef835b68c15debe0a4dafb59a34
Binary files /dev/null and b/src/main/resources/ui/util/elndeisink.gif differ
diff --git a/src/main/resources/ui/util/elndeisource.gif b/src/main/resources/ui/util/elndeisource.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4335e19f0cfc160d9428d6fadce4f23e7f996da2
Binary files /dev/null and b/src/main/resources/ui/util/elndeisource.gif differ
diff --git a/src/main/resources/ui/util/elndevsink.gif b/src/main/resources/ui/util/elndevsink.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9a4df7b867152b74d187ffbeb1e216990bbba16f
Binary files /dev/null and b/src/main/resources/ui/util/elndevsink.gif differ
diff --git a/src/main/resources/ui/util/elndevsource.gif b/src/main/resources/ui/util/elndevsource.gif
new file mode 100644
index 0000000000000000000000000000000000000000..884a7be95b5eb07d03fc9cbca8155e838c1337a0
Binary files /dev/null and b/src/main/resources/ui/util/elndevsource.gif differ
diff --git a/src/main/resources/ui/util/elnground.gif b/src/main/resources/ui/util/elnground.gif
index 0c8df1962468c06409e45128b3ca5d3d3fb6222c..df54674a767e66fc16701de8c583c54a44806bfb 100644
Binary files a/src/main/resources/ui/util/elnground.gif and b/src/main/resources/ui/util/elnground.gif differ
diff --git a/src/main/resources/ui/util/elnidealtransformer.gif b/src/main/resources/ui/util/elnidealtransformer.gif
index b5c551d05e3c502ee30bd514b5d3b94918498606..61b578dff9160cb0f8187e107f586f76a5bf42b1 100644
Binary files a/src/main/resources/ui/util/elnidealtransformer.gif and b/src/main/resources/ui/util/elnidealtransformer.gif differ
diff --git a/src/main/resources/ui/util/elninductor.gif b/src/main/resources/ui/util/elninductor.gif
index 9baf5d1151cfa7d05fef0b4b2e1ddb2bfce47270..7503272afe90204b6f2a536597534471356f9a09 100644
Binary files a/src/main/resources/ui/util/elninductor.gif and b/src/main/resources/ui/util/elninductor.gif differ
diff --git a/src/main/resources/ui/util/elnisource.gif b/src/main/resources/ui/util/elnisource.gif
index 346c6222e6c9ae7c6ddf202eca15efc874c5749c..30258464bf0b700a068f2ad62fbfcf542ba1a8bc 100644
Binary files a/src/main/resources/ui/util/elnisource.gif and b/src/main/resources/ui/util/elnisource.gif differ
diff --git a/src/main/resources/ui/util/elnmodule.gif b/src/main/resources/ui/util/elnmodule.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b4aa4be82365b76611a066722e7d32ce377f3f3f
Binary files /dev/null and b/src/main/resources/ui/util/elnmodule.gif differ
diff --git a/src/main/resources/ui/util/elnportterminal.gif b/src/main/resources/ui/util/elnportterminal.gif
deleted file mode 100644
index cd4918e69c88c620c53e794faf778768493a2417..0000000000000000000000000000000000000000
Binary files a/src/main/resources/ui/util/elnportterminal.gif and /dev/null differ
diff --git a/src/main/resources/ui/util/elnresistor.gif b/src/main/resources/ui/util/elnresistor.gif
index 13085d4edd56241c3c450aed095e9eb37812e9bd..53f363826df2d301d1b5f2cc3991aed036e76088 100644
Binary files a/src/main/resources/ui/util/elnresistor.gif and b/src/main/resources/ui/util/elnresistor.gif differ
diff --git a/src/main/resources/ui/util/elntdfisink.gif b/src/main/resources/ui/util/elntdfisink.gif
index 52215961d6fd3cd031d62073fe0e70d163b3bae2..e5c72cde613554eb351c39f8907a5dfbd3abf41d 100644
Binary files a/src/main/resources/ui/util/elntdfisink.gif and b/src/main/resources/ui/util/elntdfisink.gif differ
diff --git a/src/main/resources/ui/util/elntdfisource.gif b/src/main/resources/ui/util/elntdfisource.gif
index a21f0ec320d9004845b7dce508cf43f15835dbae..cc5c8d8526f1a9c87dc0fb037e1b6b029bc2c6b5 100644
Binary files a/src/main/resources/ui/util/elntdfisource.gif and b/src/main/resources/ui/util/elntdfisource.gif differ
diff --git a/src/main/resources/ui/util/elntdfvsink.gif b/src/main/resources/ui/util/elntdfvsink.gif
index b6e05f57a8764f47f822444bbe397ead434cb89c..c5f6d2b27d129773fc9fdae0c524c56e6a4938cb 100644
Binary files a/src/main/resources/ui/util/elntdfvsink.gif and b/src/main/resources/ui/util/elntdfvsink.gif differ
diff --git a/src/main/resources/ui/util/elntdfvsource.gif b/src/main/resources/ui/util/elntdfvsource.gif
index 3d24958f33002f9c6e847c9e2064be07da2d2a0d..98110d7d7a94b03a657abf700ab5e59e64a23af1 100644
Binary files a/src/main/resources/ui/util/elntdfvsource.gif and b/src/main/resources/ui/util/elntdfvsource.gif differ
diff --git a/src/main/resources/ui/util/elnterminal.gif b/src/main/resources/ui/util/elnterminal.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ed74497b99141fa2a1c74c29afd796991793c257
Binary files /dev/null and b/src/main/resources/ui/util/elnterminal.gif differ
diff --git a/src/main/resources/ui/util/elntransmissionline.gif b/src/main/resources/ui/util/elntransmissionline.gif
index 6a076290bfa37fbf383b542be83c8af6a5a48d2b..d6b75a07bee993934b0fcbf47cd874379069ce57 100644
Binary files a/src/main/resources/ui/util/elntransmissionline.gif and b/src/main/resources/ui/util/elntransmissionline.gif differ
diff --git a/src/main/resources/ui/util/elnvccs.gif b/src/main/resources/ui/util/elnvccs.gif
index 4b5e82b7e67f5e57f931f0ff035c8c8537101a88..df5be06b8b4eb0a8af9f2c7f60953569dc76d8e6 100644
Binary files a/src/main/resources/ui/util/elnvccs.gif and b/src/main/resources/ui/util/elnvccs.gif differ
diff --git a/src/main/resources/ui/util/elnvcvs.gif b/src/main/resources/ui/util/elnvcvs.gif
index 18c0b47797d1d303e8ecfb444815775ef3a802e6..cce3464f6b46104de26ee8acab1b36d1cc7f4787 100644
Binary files a/src/main/resources/ui/util/elnvcvs.gif and b/src/main/resources/ui/util/elnvcvs.gif differ
diff --git a/src/main/resources/ui/util/elnvsource.gif b/src/main/resources/ui/util/elnvsource.gif
index 6df65765bdd7acc9556b5dff4668c6e62600e50b..3b93c4658126de0a23fc6e99a0cf025836d04141 100644
Binary files a/src/main/resources/ui/util/elnvsource.gif and b/src/main/resources/ui/util/elnvsource.gif differ
diff --git a/ttool/launch_configurations/test/TestAvatarADComponentsDisabling.launch b/ttool/launch_configurations/test/TestAvatarADComponentsDisabling.launch
new file mode 100644
index 0000000000000000000000000000000000000000..a8b6b650fa26aec1f71de85314f81d202f2de616
--- /dev/null
+++ b/ttool/launch_configurations/test/TestAvatarADComponentsDisabling.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/ttool/src/test/java/ui/avatarad/TestAvatarADComponentsDisabling.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.avatarad.TestAvatarADComponentsDisabling"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+</launchConfiguration>
diff --git a/ttool/launch_configurations/test/TestAvatarDesignPanelTranslator.launch b/ttool/launch_configurations/test/TestAvatarDesignPanelTranslator.launch
new file mode 100644
index 0000000000000000000000000000000000000000..c5f4c28dcadbf986ddc9bdbbf95c13a06ea9ef27
--- /dev/null
+++ b/ttool/launch_configurations/test/TestAvatarDesignPanelTranslator.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/ttool/src/test/java/ui/TestAvatarDesignPanelTranslator.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.TestAvatarDesignPanelTranslator"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dresources_dir=&quot;src/test/resources/&quot;"/>
+</launchConfiguration>
diff --git a/ttool/launch_configurations/test/TestAvatarSMDComponentsDisabling.launch b/ttool/launch_configurations/test/TestAvatarSMDComponentsDisabling.launch
new file mode 100644
index 0000000000000000000000000000000000000000..05a1e746555eb72d8bd721491abc6479d83ebd53
--- /dev/null
+++ b/ttool/launch_configurations/test/TestAvatarSMDComponentsDisabling.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/ttool/src/test/java/ui/avatarsmd/TestAvatarSMDComponentsDisabling.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.avatarsmd.TestAvatarSMDComponentsDisabling"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+</launchConfiguration>
diff --git a/ttool/launch_configurations/test/TestGTMLModeling.launch b/ttool/launch_configurations/test/TestGTMLModeling.launch
new file mode 100644
index 0000000000000000000000000000000000000000..b6904cd2013430aac80890ddcb9134870f43afae
--- /dev/null
+++ b/ttool/launch_configurations/test/TestGTMLModeling.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/ttool/src/test/java/ui/TestGTMLModeling.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.TestGTMLModeling"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dresources_dir=&quot;src/test/resources/&quot;"/>
+</launchConfiguration>
diff --git a/ttool/launch_configurations/test/TestTDiagramPanel.launch b/ttool/launch_configurations/test/TestTDiagramPanel.launch
index 6f00f9fc6bc7bc897dcaed3f548f715c03fd9d76..658c682e2f6940564ece29726adb335359bdd2b7 100644
--- a/ttool/launch_configurations/test/TestTDiagramPanel.launch
+++ b/ttool/launch_configurations/test/TestTDiagramPanel.launch
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/ttool/src/test/java/ui/tmldd/TestTDiagramPanel.java"/>
+<listEntry value="/ttool/src/test/java/ui/TestTDiagramPanel.java"/>
 </listAttribute>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
 <listEntry value="1"/>
@@ -10,6 +10,6 @@
 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
 <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.tmldd.TestTDiagramPanel"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.TestTDiagramPanel"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/>
 </launchConfiguration>
diff --git a/ttool/launch_configurations/test/TestTMLADComponentsDisabling.launch b/ttool/launch_configurations/test/TestTMLADComponentsDisabling.launch
new file mode 100644
index 0000000000000000000000000000000000000000..db2d3b773a244a71d9073cb346c999a488571d41
--- /dev/null
+++ b/ttool/launch_configurations/test/TestTMLADComponentsDisabling.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/ttool/src/test/java/ui/tmlad/TestTMLADComponentsDisabling.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.tmlad.TestTMLADComponentsDisabling"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/>
+</launchConfiguration>
diff --git a/ttool/launch_configurations/test/TestTMLCPComponentsDisabling.launch b/ttool/launch_configurations/test/TestTMLCPComponentsDisabling.launch
new file mode 100644
index 0000000000000000000000000000000000000000..2eff4393502d39e7be70cd65da41e23d25fcb881
--- /dev/null
+++ b/ttool/launch_configurations/test/TestTMLCPComponentsDisabling.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/ttool/src/test/java/ui/tmlcp/TestTMLCPComponentsDisabling.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.tmlcp.TestTMLCPComponentsDisabling"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/>
+</launchConfiguration>
diff --git a/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java b/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java
index b9b7c0e8e3d05ea225d585f9dfdb4160c31dfc2d..3e47f9cfbf079a214f74529451b26fea1e369f34 100644
--- a/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java
+++ b/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java
@@ -45,47 +45,30 @@
 
 package avatartranslator;
 
-import org.junit.Test;
-import org.junit.*;
-
-import static org.junit.Assert.*;
-import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-
-import java.util.LinkedList;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
+import org.junit.Before;
+import org.junit.Test;
 
 import ui.TAttribute;
-import ui.avatarbd.AvatarBDPragma;
 import ui.avatarbd.AvatarBDPanel;
-
-import avatartranslator.ErrorAccumulator;
-import avatartranslator.AvatarStateMachine;
-import avatartranslator.AvatarState;
-import avatartranslator.AvatarAttribute;
-import avatartranslator.AvatarType;
-import avatartranslator.AvatarBlock;
-import avatartranslator.AvatarPragma;
-import avatartranslator.AvatarPragmaSecret;
-import avatartranslator.AvatarPragmaSecrecyAssumption;
-import avatartranslator.AvatarPragmaInitialKnowledge;
-import avatartranslator.AvatarPragmaPrivatePublicKey;
-import avatartranslator.AvatarPragmaPublic;
-import avatartranslator.AvatarPragmaAuthenticity;
-import avatartranslator.AvatarPragmaConstant;
+import ui.avatarbd.AvatarBDPragma;
 
 public class AvatarPragmaTests {	
 	List<AvatarPragma> res;
 	ErrorAccumulator errorAcc;
-	HashMap<String, List<TAttribute>> typeAttributesMap = new HashMap<>();  
-	HashMap<String, String> nameTypeMap = new HashMap<String, String>();
-	LinkedList<AvatarBlock> blocks; 
+	Map<String, List<TAttribute>> typeAttributesMap = new HashMap<>();  
+	Map<String, String> nameTypeMap = new HashMap<String, String>();
+	List<AvatarBlock> blocks; 
 	AvatarBDPragma bdpragma;
-	public AvatarPragmaTests () {
+	
+	public AvatarPragmaTests() {
        //
     }
 	
@@ -127,8 +110,8 @@ public class AvatarPragmaTests {
 		this.nameTypeMap.put("C.m", "T1");
 		this.nameTypeMap.put("B.m", "T1");
 		this.nameTypeMap.put("C.d", "T2");
-		LinkedList<TAttribute> t1s = new LinkedList<TAttribute>();
-		LinkedList<TAttribute> t2s = new LinkedList<TAttribute>();
+		List<TAttribute> t1s = new LinkedList<TAttribute>();
+		List<TAttribute> t2s = new LinkedList<TAttribute>();
 		t1s.add(attr_a);
 		t1s.add(attr_b);
 		t2s.add(attr_c);
@@ -142,9 +125,6 @@ public class AvatarPragmaTests {
 	}
     //protected void test () {
 	
-
-
-
 	@Test
 	public void testBadKeywordNoPragmaCreated(){
 		//Test Bad keyword
diff --git a/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java b/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java
index 57848483234a02f60e4e75fd75a678c07d1f77db..1a7af105021ece6d3a50606ea9465b6c9bf0e31e 100644
--- a/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java
+++ b/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java
@@ -48,7 +48,7 @@ package avatartranslator;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import java.util.LinkedList;
+import java.util.List;
 
 import javax.swing.JFrame;
 import javax.swing.JPanel;
@@ -92,7 +92,7 @@ public class AvatarSecurityTranslationTests {
  		mgui.dtree = new JDiagramTree(mgui);
         mgui.dtree.setCellRenderer(new DiagramTreeRenderer());
         ToolTipManager.sharedInstance().registerComponent(mgui.dtree);
-        JScrollPane scrollPane = new JScrollPane(mgui.dtree);
+        /*JScrollPane scrollPane =*/ new JScrollPane(mgui.dtree);
 		mgui.newTurtleModeling();
 //		mgui.tabs = new Vector<TURTLEPanel>();
 		TMLComponentDesignPanel tmlcdp = new TMLComponentDesignPanel(mgui);
@@ -151,7 +151,7 @@ public class AvatarSecurityTranslationTests {
 		assertTrue(avspec!=null);
 		AvatarBlock block1 = avspec.getBlockWithName("task1");
 		AvatarStateMachine sm =	block1.getStateMachine();
-		LinkedList<AvatarStateMachineElement> elems=  sm.getListOfElements();
+		List<AvatarStateMachineElement> elems=  sm.getListOfElements();
 		//First state is start state
 		assertTrue(elems.get(0) instanceof AvatarStartState);
 		//state is avatartransition
@@ -186,7 +186,7 @@ public class AvatarSecurityTranslationTests {
 		assertTrue(avspec!=null);
 		AvatarBlock block1 = avspec.getBlockWithName("task1");
 		AvatarStateMachine sm =	block1.getStateMachine();
-		LinkedList<AvatarStateMachineElement> elems=  sm.getListOfElements();
+		List<AvatarStateMachineElement> elems=  sm.getListOfElements();
 		
 		AvatarTransition at = (AvatarTransition) elems.get(3);
 		//Check that action is encryption
@@ -212,7 +212,7 @@ public class AvatarSecurityTranslationTests {
 		assertTrue(avspec!=null);
 		AvatarBlock block1 = avspec.getBlockWithName("task1");
 		AvatarStateMachine sm =	block1.getStateMachine();
-		LinkedList<AvatarStateMachineElement> elems=  sm.getListOfElements();
+		List<AvatarStateMachineElement> elems=  sm.getListOfElements();
 		
 		AvatarTransition at = (AvatarTransition) elems.get(3);
 		//Check that action is empty
@@ -242,15 +242,13 @@ public class AvatarSecurityTranslationTests {
 		assertTrue(avspec!=null);
 		AvatarBlock block1 = avspec.getBlockWithName("task1");
 		AvatarStateMachine sm =	block1.getStateMachine();
-		LinkedList<AvatarStateMachineElement> elems=  sm.getListOfElements();
+		List<AvatarStateMachineElement> elems=  sm.getListOfElements();
 		
 		AvatarTransition at = (AvatarTransition) elems.get(3);
 		//Check that action is encryption
 		assertEquals(at.getActions().get(0).getName().replaceAll(" ",""),"mac_mac=MAC(mac,key_mac)");
 	}
 
-
-
     public static void main(String[] args){
         AvatarSecurityTranslationTests apt = new AvatarSecurityTranslationTests ();
         //apt.runTest ();
diff --git a/ttool/src/test/java/launcher/TestRshClient.java b/ttool/src/test/java/launcher/TestRshClient.java
index 0ac94f9481f6e54f999187a416d464264e54daf2..c2ba833c4d86e73614d29acda93ad4fa92abef98 100644
--- a/ttool/src/test/java/launcher/TestRshClient.java
+++ b/ttool/src/test/java/launcher/TestRshClient.java
@@ -2,7 +2,6 @@ package launcher;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 import java.io.File;
 import java.io.StringWriter;
@@ -14,9 +13,6 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import launcher.LauncherException;
-import launcher.RshClient;
-import launcher.RshServer;
 import myutil.FileException;
 import myutil.FileUtils;
 import test.AbstractTest;
@@ -74,11 +70,11 @@ public class TestRshClient extends AbstractTest {
         throws Exception {
         SERVER_THREAD.interrupt();
     }
-
-    private void handleException( final Throwable th ) {
-        th.printStackTrace();
-        fail( th.getLocalizedMessage() );
-    }
+//
+//    private void handleException( final Throwable th ) {
+//        th.printStackTrace();
+//        fail( th.getLocalizedMessage() );
+//    }
 
     @Test
     public void testStopCommand() {
diff --git a/ttool/src/test/java/test/AbstractTest.java b/ttool/src/test/java/test/AbstractTest.java
index 394ca6ac61e026109222e80135003b7e1e9f8e54..9d650f92d8efd3340e7c32cb18aa35259673cf1d 100644
--- a/ttool/src/test/java/test/AbstractTest.java
+++ b/ttool/src/test/java/test/AbstractTest.java
@@ -1,8 +1,29 @@
 package test;
 
+import static org.junit.Assert.fail;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+import myutil.FileException;
+import myutil.FileUtils;
+
 public abstract class AbstractTest {
 	
 	protected static String RESOURCES_DIR = "";
+	protected static String INPUT_DIR;
+	protected static String EXPECTED_CODE_DIR;
+	protected static String ACTUAL_CODE_DIR;
+	protected static final String TXT_EXT = ".txt";
+	protected static final String XML_EXT = ".xml";
 
 	protected static String getBaseResourcesDir() {
     	final String systemPropResDir = System.getProperty( "resources_dir" );
@@ -13,4 +34,75 @@ public abstract class AbstractTest {
 
    		return systemPropResDir;
 	}
+	
+	protected void checkResult( final String actualCode,
+								final String fileName ) {
+		try {
+			final String expectedCode = FileUtils.loadFile( EXPECTED_CODE_DIR + fileName + TXT_EXT );
+
+			if ( !expectedCode.equals( actualCode ) ) {
+				saveActualResults( fileName + TXT_EXT, actualCode );
+			}
+		}
+		catch ( FileException ex ) {
+			handleException( ex );
+		}
+	}
+	
+	protected void checkResultXml( 	final String actualCode,
+									final String fileName ) {
+		try {
+			final String expectedCode = FileUtils.loadFile( EXPECTED_CODE_DIR + fileName + XML_EXT );
+			
+			if ( !compareXml( actualCode, expectedCode ) ) {
+				saveActualResults( fileName + XML_EXT, actualCode );
+			}
+		}
+		catch ( ParserConfigurationException | SAXException | IOException | FileException ex ) {
+			handleException( ex );
+		}
+	}
+	
+	private void saveActualResults( final String fileName,
+									final String actualCode ) {
+		final String filePath = ACTUAL_CODE_DIR + fileName;
+		final File fileToSave = new File( filePath );
+		final File dir = fileToSave.getParentFile();
+		
+		if (!dir.exists() ) {
+			dir.mkdirs();
+		}
+
+		try {
+			FileUtils.saveFile( filePath, actualCode );
+			fail( "Differences were found between actual and expected code!!" );
+		}
+		catch( final FileException ex ) {
+			handleException( ex );
+		}
+	}
+	
+	protected boolean compareXml( 	final String result,
+									final String expected ) 
+	throws ParserConfigurationException, SAXException, IOException {
+		DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
+		documentFactory.setNamespaceAware( true );
+		documentFactory.setCoalescing( true );
+		documentFactory.setIgnoringElementContentWhitespace( true );
+		documentFactory.setIgnoringComments( true );
+		DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder();
+		
+		final Document doc1 = documentBuilder.parse( new ByteArrayInputStream( result.getBytes() ) );
+		doc1.normalizeDocument();
+
+		final Document doc2 = documentBuilder.parse( new ByteArrayInputStream( expected.getBytes() ) );
+		doc2.normalizeDocument();
+		
+		return doc1.isEqualNode( doc2 );
+	}
+
+	protected void handleException( final Throwable th ) {
+        th.printStackTrace();
+        fail( th.getLocalizedMessage() );
+    }
 }
diff --git a/ttool/src/test/java/ui/AbstractUITest.java b/ttool/src/test/java/ui/AbstractUITest.java
index 1d2a1c6ba9a781097d0923a1691141a0a40eb1eb..a18e2dcf87ba97f23f0154a072a6993b7cb9d768 100644
--- a/ttool/src/test/java/ui/AbstractUITest.java
+++ b/ttool/src/test/java/ui/AbstractUITest.java
@@ -1,24 +1,70 @@
 package ui;
 
-import static org.junit.Assert.fail;
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
 
 import myutil.PluginManager;
 import test.AbstractTest;
-import ui.util.IconManager;
 
 public abstract class AbstractUITest extends AbstractTest {
 	
-	protected final MainGUI mainGui;
+	protected final MainGUI mainGUI;
 	
 	protected AbstractUITest() {
-		IconManager.loadImg();
-		mainGui = new MainGUI(false,false, false, false, false, false, false, false, false, false, true, false, false);
-		mainGui.build();
+		
+		// DB: Not needed for tests (causes NPE)
+		//IconManager.loadImg();
+		mainGUI = new MainGUI(false,false, false, false, false, false, false, false, false, false, true, false, false);
+		mainGUI.build();
 		PluginManager.pluginManager = new PluginManager();
 	}
 
-	protected void handleException( final Throwable th ) {
-        th.printStackTrace();
-        fail( th.getLocalizedMessage() );
+	protected void openModel( final String fileName ) {
+		final String fullFileName = fileName + XML_EXT;
+		mainGUI.openProjectFromFile( new File( INPUT_DIR + fullFileName ) );
+	}
+    
+	protected TMLArchiPanel findArchiPanel( final String name ) {
+    	for ( final TMLArchiPanel panel : mainGUI.getTMLArchiDiagramPanels() ) {
+    		if ( name.equals( mainGUI.getTitleAt( panel ) ) ) {
+    			return panel;
+    		}
+    	}
+    	
+    	return null;
     }
+	
+	protected TDiagramPanel findDiagramPanel( 	final TDiagramPanel parentPanel,
+												final String diagramName ) {
+		for ( final TDiagramPanel subPanel : parentPanel.tp.getPanels() ) {
+			if ( diagramName.equals( subPanel.getName() ) ) {
+				return subPanel;
+			}
+		}
+	
+		return null;
+	}
+	
+	protected TGComponent findDiagComponent( 	final int compoId,
+												final TDiagramPanel diagPanel ) {
+        return findDiagComponent( compoId, diagPanel.componentList );
+	}
+	
+	protected TGComponent findDiagComponent( 	final int compoId,
+												final Collection<TGComponent> components ) {
+        for ( final TGComponent compo : components ) {
+        	if ( compoId == compo.getId() ) {
+        		return compo;
+        	}
+        	
+        	final TGComponent subCompo = findDiagComponent( compoId, Arrays.asList( compo.tgcomponent ) );
+        	
+        	if ( subCompo != null ) {
+        		return subCompo;
+        	}
+        }
+        
+        return null;
+	}
 }
diff --git a/ttool/src/test/java/ui/TestAvatarDesignPanelTranslator.java b/ttool/src/test/java/ui/TestAvatarDesignPanelTranslator.java
new file mode 100644
index 0000000000000000000000000000000000000000..782b3814a9e00b7a3594f8d3d411a7d65a2934ed
--- /dev/null
+++ b/ttool/src/test/java/ui/TestAvatarDesignPanelTranslator.java
@@ -0,0 +1,256 @@
+package ui; 
+
+import java.io.File;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import avatartranslator.AvatarBlock;
+import avatartranslator.AvatarConstant;
+import avatartranslator.AvatarElement;
+import avatartranslator.AvatarSpecification;
+
+public class TestAvatarDesignPanelTranslator extends AbstractUITest {
+	
+	private static final String TAB_MAIN_DESIGN = "MainDesign";
+
+	private static final String DIAG_WALLET = "Wallet";
+	private static final String DIAG_COFFEE_MACHINE = "CoffeeMachine";
+	private static final String DIAG_TEA_BUTTON = "TeaButton";
+	private static final String DIAG_COFFEE_BUTTON = "CoffeeButton";
+
+	private static final String TAB_AVATAR_DESIGN = "AVATAR Design";
+	
+	private static final String DIAG_PAGE_LOADER = "PageLoader";
+	
+	private static final String TAB_DESIGN_LOSSY = "Design_lossy";
+	
+	private static final String DIAG_ON_BOARD_COMMUNICATION = "OnBoardCommunication";
+	
+	private static final String TAB_DESIGN = "Design";
+	
+	private static final String DIAG_ALICE= "Alice";
+
+	@BeforeClass
+    public static void setUpBeforeClass()
+    throws Exception {
+    	RESOURCES_DIR = getBaseResourcesDir() + "ui/diagram2avatar/";
+    	INPUT_DIR = RESOURCES_DIR + "input/";
+    	EXPECTED_CODE_DIR = RESOURCES_DIR + "expected/";
+    	ACTUAL_CODE_DIR = RESOURCES_DIR + "actual/";
+    }
+	
+	public TestAvatarDesignPanelTranslator() {
+		super();
+	}
+
+	private AvatarSpecification translateDiagramToAvatar( final String diagramName )
+	throws MalformedModelingException {
+		final AvatarDesignPanel panel = (AvatarDesignPanel) mainGUI.getTURTLEPanel( diagramName );
+		
+		// Ensure the two static boolean constants are always instantiated before resetting the static ID counter 
+		final Object dummy = AvatarConstant.TRUE;
+		
+		// Reset the ID to ensure IDs are the same as those of the expected specifications
+		AvatarElement.resetID();
+
+		final AvatarDesignPanelTranslator translator = new AvatarDesignPanelTranslator( panel );
+        
+        final AvatarSpecification spec = translator.generateAvatarSpecification( panel.getAvatarBDPanel().getFullStateMachineOwnerList() );
+
+        if ( !translator.getErrors().isEmpty() ) {
+        	throw new MalformedModelingException();
+        }
+        
+        return spec;
+	}
+	
+	private void checkResult( 	final AvatarElement avatarElement,
+								final String fileName ) {
+		checkResult( avatarElement.toString(), fileName );
+	}
+	
+	private void testTranslateStateMachineDiagramToAvatarDisable( 	final String modelName,
+																	final String tabName,
+																	final String blockName,
+																	final String testName,
+																	final int... composToDisable )
+	throws MalformedModelingException {
+		openModel( modelName );
+		
+		final AvatarDesignPanel panel = (AvatarDesignPanel) mainGUI.getTURTLEPanel( tabName );
+		
+		final TDiagramPanel stateMachineDiagramPanel = findDiagramPanel( panel.getAvatarBDPanel(), blockName );
+		
+		for ( final int compoId : composToDisable ) {
+			final TGComponent compoToDisable = findDiagComponent( compoId, stateMachineDiagramPanel );
+			compoToDisable.setEnabled( false );
+		}
+
+		final AvatarSpecification spec = translateDiagramToAvatar( tabName );
+		final AvatarBlock block = spec.getBlockWithName( blockName );
+		
+		final String expectedSubDirName = composToDisable.length == 0 ? "" : "components_disabling";
+		
+		final String fileNameSuffix = composToDisable.length == 0 ? "" : "_Disable_";
+		
+		checkResult( block.getStateMachine(), expectedSubDirName + File.separatorChar + blockName + fileNameSuffix + testName );
+	}
+
+	private void testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( 	final String tabName,
+																				final String blockName,
+																				final String testName,
+																				final int... composToDisable )
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarDisable( "CoffeeMachine_Avatar", tabName, blockName, testName, composToDisable );
+	}
+	
+	private void testTranslateStateMachineDiagramToAvatarCoffeeMachine( final String tabName,
+																		final String blockName )
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( tabName, blockName, "", new int[ 0 ] );
+	}
+
+	private void testTranslateStateMachineDiagramToAvatarEbookReaderDisable( 	final String tabName,
+																				final String blockName,
+																				final String testName,
+																				final int... composToDisable )
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarDisable( "ebook_reader_01", tabName, blockName, testName, composToDisable );
+	}
+
+	private void testTranslateStateMachineDiagramToAvatarFutureAirNavigationSystemDisable( 	final String tabName,
+																							final String blockName,
+																							final String testName,
+																							final int... composToDisable )
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarDisable( "FutureAirNavigationSystem", tabName, blockName, testName, composToDisable );
+	}
+
+	private void testTranslateStateMachineDiagramToAvatarExampleFunctionCall( 	final String tabName,
+																				final String blockName,
+																				final String testName,
+																				final int... composToDisable )
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarDisable( "exampleFunctionCall", tabName, blockName, testName, composToDisable );
+	}
+
+	// Translation from diagram to Avatar
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarCoffeeMachineWallet()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachine( TAB_MAIN_DESIGN, DIAG_WALLET );
+	}
+
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarCoffeeMachineCoffeeMachine()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachine( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE );
+	}
+
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarCoffeeMachineTeaButton()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachine( TAB_MAIN_DESIGN, DIAG_TEA_BUTTON );
+	}
+
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarCoffeeMachineCoffeeButton()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachine( TAB_MAIN_DESIGN, DIAG_COFFEE_BUTTON );
+	}
+
+	// Components disabling tests
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableExpireTimer()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarFutureAirNavigationSystemDisable( TAB_DESIGN_LOSSY, DIAG_ON_BOARD_COMMUNICATION, "ExpireTimer", 3802 );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableLibraryFunctionCall()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarExampleFunctionCall( TAB_DESIGN, DIAG_ALICE, "LibraryFunctionCall", 218 );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableRandom()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarEbookReaderDisable( TAB_AVATAR_DESIGN, DIAG_PAGE_LOADER, "Random", 794 );
+	}
+	
+	@Test
+	public void testTranslateToAvatarCoffeeMachineDisableReceiveSignal()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "ReceiveSignal", 820 );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableResetTimer()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarFutureAirNavigationSystemDisable( TAB_DESIGN_LOSSY, DIAG_ON_BOARD_COMMUNICATION, "ResetTimer", 3780 );
+	}
+	
+	@Test
+	public void testTranslateToAvatarCoffeeMachineDisableSendSignal()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "SendSignal", 809 );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableSetTimer()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarFutureAirNavigationSystemDisable( TAB_DESIGN_LOSSY, DIAG_ON_BOARD_COMMUNICATION, "SetTimer", 3791 );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableState()
+	throws MalformedModelingException {
+		
+		// Testing disabling of states with the same name
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "State", 943 );
+
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "State", 902 );
+		
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "State", 861 );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableCompositeState()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE, "CompositeState", 1407 );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableTransitionInfoGuard()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "TransitionInfoGuard", 789 );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableTransitionInfoAfterActions()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "TransitionInfoAfterActions", 782 );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableTransitionInfoComputeFor()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE, "TransitionInfoComputeFor", 985 );
+	}
+	
+	// Tests for disabling several elements
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableCompoInOutTransitions()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE, "CompoInOutTransitions", new int[]{ 1366, 964, 957 } );
+	}
+	
+	@Test
+	public void testTranslateStateMachineDiagramToAvatarDisableComponentBranch()
+	throws MalformedModelingException {
+		testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE, "ComponentBranch", new int[]{ 1072, 1124, 1165, 1061 } );
+	}
+}
diff --git a/ttool/src/test/java/ui/TestGTMLModeling.java b/ttool/src/test/java/ui/TestGTMLModeling.java
new file mode 100644
index 0000000000000000000000000000000000000000..523cc1817f886857761813d965ddf0e1e7eb7566
--- /dev/null
+++ b/ttool/src/test/java/ui/TestGTMLModeling.java
@@ -0,0 +1,257 @@
+package ui;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import tmltranslator.TMLMapping;
+import tmltranslator.TMLModeling;
+import tmltranslator.TMLTask;
+
+public class TestGTMLModeling extends AbstractUITest {
+	
+	private static final String MODEL_ZIGBEE_TUTORIAL = "ZigBeeTutorial";
+	private static final String DIAG_ZIGBEE_TX = "Zigbee_TX";
+	private static final String DIAG_F_SOURCE = "F_Source";
+	private static final String DIAG_X_SOURCE = "X_Source";
+
+    @BeforeClass
+    public static void setUpBeforeClass() throws Exception {
+    	RESOURCES_DIR = getBaseResourcesDir() + "ui/diagram2tml/";
+    	INPUT_DIR = RESOURCES_DIR + "input/";
+    	EXPECTED_CODE_DIR = RESOURCES_DIR + "expected/";
+    	ACTUAL_CODE_DIR = RESOURCES_DIR + "actual/";
+    }
+	
+	public TestGTMLModeling() {
+		super();
+	}
+
+	private TMLModeling<TGComponent> translateToTMLModeling( final String tabName )
+	throws MalformedTMLDesignException {
+		final TMLComponentDesignPanel panel = (TMLComponentDesignPanel) mainGUI.getTURTLEPanel( tabName );
+        final GTMLModeling gtmlm = new GTMLModeling( panel, true );
+        gtmlm.putPrefixName( true );
+
+        final TMLModeling<TGComponent> model = gtmlm.translateToTMLModeling( false );
+
+        if ( !gtmlm.getCheckingErrors().isEmpty() ) {
+        	throw new MalformedTMLDesignException( "Errors were found when generating TML model.", gtmlm.getCheckingErrors() );
+        }
+        
+        return model;
+	}
+
+	private String translateToTMLModelingXMLZigBeeTutorial( final String diagramName )
+	throws MalformedTMLDesignException {
+		openModel( MODEL_ZIGBEE_TUTORIAL );
+
+		return translateToTMLModeling( diagramName ).toXML();
+	}
+
+	private TMLMapping<TGComponent> translateToTMLMapping( final String diagramName )
+	throws MalformedTMLDesignException {
+		final TMLArchiPanel panel = findArchiPanel( diagramName );
+        final GTMLModeling gtmlm = new GTMLModeling( panel, true);
+        gtmlm.putPrefixName( true );
+        
+        final TMLMapping<TGComponent> model = gtmlm.translateToTMLMapping();
+
+        if ( !gtmlm.getCheckingErrors().isEmpty() ) {
+        	throw new MalformedTMLDesignException( "Errors were found when generating TML model.", gtmlm.getCheckingErrors() );
+        }
+        
+        return model;
+	}
+
+	private String translateToTMLMappingXMLZigBeeTutorial( final String diagramName )
+	throws MalformedTMLDesignException {
+		openModel( MODEL_ZIGBEE_TUTORIAL );
+
+        return translateToTMLMapping( diagramName ).toXML();
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingZigbeeTX()
+	throws MalformedTMLDesignException {
+		final String actualCode = translateToTMLModelingXMLZigBeeTutorial( DIAG_ZIGBEE_TX );
+	
+		checkResultXml( actualCode, DIAG_ZIGBEE_TX );
+	}
+	
+	@Test
+	public void testTranslateToTMLMappingMapping0()
+	throws MalformedTMLDesignException {
+		final String diagramName = "Mapping_0";
+		final String actualCode = translateToTMLMappingXMLZigBeeTutorial( diagramName );
+		
+		checkResultXml( actualCode, diagramName );
+	}
+	
+	protected void testTranslateToTMLModelingDisable( 	final String modelName,
+														final String tabName,
+														final String taskName,
+														final String testName,
+														final int... compoIds )
+	throws MalformedTMLDesignException {
+		openModel( modelName );
+		
+		final TURTLEPanel panel = mainGUI.getTURTLEPanel( tabName );
+		final TDiagramPanel parentPanel = panel.tdp;
+		
+		final TDiagramPanel activityDiagramPanel = findDiagramPanel( parentPanel, taskName );
+		
+		for ( final int compoId : compoIds ) {
+			final TGComponent compoToDisable = findDiagComponent( compoId, activityDiagramPanel );
+			compoToDisable.setEnabled( false );
+		}
+
+		final TMLModeling<TGComponent> tmlModel = translateToTMLModeling( tabName );
+		final String prefixedTaskName = tabName + "__" + taskName;
+		final TMLTask task = tmlModel.getTMLTaskByName( prefixedTaskName );
+			
+		checkResultXml( task.getActivityDiagram().toXML(), "components_disabling/" + taskName + "_Disable_" + testName );
+	}
+
+	protected void testTranslateToTMLModelingDisableZigBeeTutorial( final String taskName,
+																	final String testName,
+																	final int... compoIds )
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisable( MODEL_ZIGBEE_TUTORIAL, DIAG_ZIGBEE_TX, taskName, testName, compoIds );
+	}
+
+	protected void testTranslateToTMLModelingDisableSmartCardProtocol( 	final String taskName,
+																		final String testName,
+																		final int... compoIds )
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisable( "SmartCardProtocol", "AppC", taskName, testName, compoIds );
+	}
+
+	// Tests for disabling every element type
+	
+	@Test
+	public void testTranslateToTMLModelingDisableActionState()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "ActionState", 925 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableSendRequest()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "SendRequest", 922 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingSendEvent()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "SendEvent", 919 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableExecC()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( "X_Chip2Octet", "ExecC", 1009 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableExecI()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_X_SOURCE, "ExecI", 935 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableReadRequestArg()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_X_SOURCE, "ReadRequestArg", 943 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableWriteChannel()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_X_SOURCE, "WriteChannel", 940 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableWaitEvent()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( "F_Symbol2ChipSeq", "WaitEvent", 952 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableReadChannel()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( "X_Symbol2ChipSeq", "ReadChannel", 973 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableActionStateSendRequest()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "ActionStateSendRequest", new int[]{ 925, 922 } );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableForLoop()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableSmartCardProtocol( "InterfaceDevice", "ForLoop", 302 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableForLoopAfterStart()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableSmartCardProtocol( "TCPIP", "ForLoopAfterStart", 610 );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableChoiceLeft() {
+		try {
+			testTranslateToTMLModelingDisableSmartCardProtocol( "InterfaceDevice", "ChoiceLeft", 236 );
+		}
+		catch ( final MalformedTMLDesignException ex ) {
+			assertTrue( "TML modeling translation did not generate the expected '" + UICheckingError.MESSAGE_CHOICE_BOTH_STOCHASTIC_DETERMINISTIC + "' error!", ex.getErrors().size() == 1 );
+			
+			assertEquals( UICheckingError.MESSAGE_CHOICE_BOTH_STOCHASTIC_DETERMINISTIC, ex.getErrors().get( 0 ).toString() );
+		}
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableChoiceLeftBottom()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableSmartCardProtocol( "TCPIP", "ChoiceLeftBottom", new int[]{ 564, 566 } );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableChoiceLeftBottomRight()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableSmartCardProtocol( "TCPIP", "ChoiceLeftBottomRight", new int[]{ 572, 573, 574 } );
+	}
+
+	// Tests for disabling connectors
+	
+	@Test
+	public void testTranslateToTMLModelingDisableConnector()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableSmartCardProtocol( "InterfaceDevice", "ConnectorChoice", 319 );
+	}
+	
+	// Tests for disabling several elements
+	
+	@Test
+	public void testTranslateToTMLModelingDisableActionStateSendEvent()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "ActionStateSendEvent", new int[]{ 925, 919 } );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableSendRequestSendEvent()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "SendRequestSendEvent", new int[]{ 922, 919 } );
+	}
+	
+	@Test
+	public void testTranslateToTMLModelingDisableActionStateSendRequestSendEvent()
+	throws MalformedTMLDesignException {
+		testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "ActionStateSendRequestSendEvent", new int[]{ 925, 922, 919 } );
+	}
+}
diff --git a/ttool/src/test/java/ui/TestGTURTLEModeling.java b/ttool/src/test/java/ui/TestGTURTLEModeling.java
index 47814a365f8af99213762259dcab72d11aa8dd2d..1b2c2d8b0450c46b6dfdbc6359cc6de16f724b0e 100644
--- a/ttool/src/test/java/ui/TestGTURTLEModeling.java
+++ b/ttool/src/test/java/ui/TestGTURTLEModeling.java
@@ -17,7 +17,6 @@ import myutil.FileUtils;
 
 public class TestGTURTLEModeling extends AbstractUITest {
 
-    //private static final String RESOURCES_DIR = "resources/ui/generateccode/";
     private String[] codeGenOptions = { "", "-mas" };
 
     @BeforeClass
@@ -30,17 +29,17 @@ public class TestGTURTLEModeling extends AbstractUITest {
     public TestGTURTLEModeling() {
         super();
 
-        mainGui.openProjectFromFile( new File( RESOURCES_DIR + "models/ZigBeeTutorial.xml") );
+        mainGUI.openProjectFromFile( new File( RESOURCES_DIR + "input/ZigBeeTutorial.xml") );
 
         // FIXME: Temporarily ignoring the debug text file due to bug in comparator tool
         textComparator = new TextComparator( Collections.singletonList( "txt" ) );
     }
 
     private void testGenerateCCode( final String mappingDiagName ) {
-        final TMLArchiPanel panel = findPanel( mappingDiagName );
+        final TMLArchiPanel panel = findArchiPanel( mappingDiagName );
         final Vector<TGComponent> compos = new Vector<TGComponent>( panel.tmlap.getComponentList() );
 
-        assertTrue( mainGui.gtm.checkSyntaxTMLMapping( compos, panel, true ) );
+        assertTrue( mainGUI.gtm.checkSyntaxTMLMapping( compos, panel, true ) );
 
         final String codeDir = RESOURCES_DIR + mappingDiagName + File.separator + "actual" + File.separator;
         FileUtils.deleteFiles( codeDir );
@@ -48,7 +47,7 @@ public class TestGTURTLEModeling extends AbstractUITest {
         final String codeDirExpected = RESOURCES_DIR + mappingDiagName + File.separator + "expected" + File.separator;
 
         for( String compilerOption: codeGenOptions )    {
-            mainGui.gtm.generateCCode( codeDir, compilerOption );
+        	mainGUI.gtm.generateCCode( codeDir, compilerOption );
             /*try {
                 Thread.sleep(5000);
             } catch (Exception ignored) {
@@ -71,16 +70,6 @@ public class TestGTURTLEModeling extends AbstractUITest {
         }
     }
 
-    private TMLArchiPanel findPanel( final String name ) {
-        for ( final TMLArchiPanel panel : mainGui.getTMLArchiDiagramPanels() ) {
-            if ( name.equals( mainGui.getTitleAt( panel ) ) ) {
-                return panel;
-            }
-        }
-
-        return null;
-    }
-
     @Test
     public void testGenerateCCodeMapping0() {
         testGenerateCCode( "Mapping_0" );
diff --git a/ttool/src/test/java/ui/TestTDiagramPanel.java b/ttool/src/test/java/ui/TestTDiagramPanel.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e30042828645589fd07b831930313ba3d2b2d2c
--- /dev/null
+++ b/ttool/src/test/java/ui/TestTDiagramPanel.java
@@ -0,0 +1,66 @@
+package ui;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import ui.tmldd.TMLArchiBUSNode;
+import ui.tmldd.TMLArchiDiagramPanel;
+import ui.tmldd.TMLArchiDiagramToolBar;
+
+public class TestTDiagramPanel extends AbstractUITest {
+	static TDiagramPanel diagramPanel;
+	static TGCWithInternalComponent component;
+	
+	public TestTDiagramPanel() {
+		super();
+	}
+	
+	@Before
+    public void setUp() throws Exception {
+//		mgui = new MainGUI(false, false, false, false, false, false, false, false, false, false, false, true);
+//		mgui.build();	
+		//PluginManager.pluginManager = new PluginManager();
+		final TToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI );
+        diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar );
+        component = new TMLArchiBUSNode( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.setComponentPointed(null);
+    }
+	
+	@Test
+    public void testMoveUp() {
+       diagramPanel.upComponent();
+       diagramPanel.setComponentPointed(component);
+       diagramPanel.upComponent();
+       assertTrue(component.getY() == 499);
+       assertTrue(component.getX() == 500);
+    }
+	
+	@Test
+    public void testMoveDown() {
+       diagramPanel.downComponent();
+       diagramPanel.setComponentPointed(component);
+       diagramPanel.downComponent();
+       assertTrue(component.getY() == 501);
+       assertTrue(component.getX() == 500);
+    }
+	
+	@Test
+    public void testMoveRight() {
+       diagramPanel.rightComponent();
+       diagramPanel.setComponentPointed(component);
+       diagramPanel.rightComponent();
+       assertTrue(component.getX() == 501);
+       assertTrue(component.getY() == 500);
+    }
+	
+	@Test
+    public void testMoveLeft() {
+       diagramPanel.leftComponent();
+       diagramPanel.setComponentPointed(component);
+       diagramPanel.leftComponent();
+       assertTrue(component.getX() == 499);
+       assertTrue(component.getY() == 500);
+    }
+}
diff --git a/ttool/src/test/java/ui/avatarad/TestAvatarADComponentsDisabling.java b/ttool/src/test/java/ui/avatarad/TestAvatarADComponentsDisabling.java
new file mode 100644
index 0000000000000000000000000000000000000000..62a6e6406178a4b03bb7eb205ba7497dbfdc1be0
--- /dev/null
+++ b/ttool/src/test/java/ui/avatarad/TestAvatarADComponentsDisabling.java
@@ -0,0 +1,595 @@
+package ui.avatarad;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Point;
+import java.util.Vector;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import ui.AbstractUITest;
+import ui.CDElement;
+import ui.TGComponent;
+import ui.tmldd.TMLArchiDiagramPanel;
+import ui.tmldd.TMLArchiDiagramToolBar;
+
+public class TestAvatarADComponentsDisabling extends AbstractUITest {
+
+	private TMLArchiDiagramPanel diagramPanel;
+	
+	public TestAvatarADComponentsDisabling() {
+		super();
+	}
+	
+	@Before
+    public void setUp() {
+		final TMLArchiDiagramToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI );
+        diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar );
+    }
+
+	@Test
+    public void testDisableAvatarADAcceptEventAction() {
+        final CDElement element = new AvatarADAcceptEventAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarADAction() {
+        final CDElement element = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarADActivity() {
+        final CDElement element = new AvatarADActivity( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableAvatarADAssociationConnector() {
+        final TGComponent startElement = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TGComponent requestElement = new AvatarADSendSignalAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestElement, requestElement.getX(), requestElement.getY(), false, true );
+
+        final TGComponent con1 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												startElement.getTGConnectingPointAtIndex( 0 ),
+			        												requestElement.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent actionElement = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( actionElement, actionElement.getX(), actionElement.getY(), false, true );
+        
+        final TGComponent con2 = new AvatarADAssociationConnector( 	0, 
+																	0,
+																	diagramPanel.getMinX(),
+																	diagramPanel.getMaxX(),
+																	diagramPanel.getMinY(),
+																	diagramPanel.getMaxY(),
+																	false,
+																	null,
+																	diagramPanel,
+																	requestElement.getTGConnectingPointAtIndex( 1 ),
+																	actionElement.getTGConnectingPointAtIndex( 0 ),
+																	new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElement = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true );
+        
+        final TGComponent con3 = new AvatarADAssociationConnector( 	0, 
+																	0,
+																	diagramPanel.getMinX(),
+																	diagramPanel.getMaxX(),
+																	diagramPanel.getMinY(),
+																	diagramPanel.getMaxY(),
+																	false,
+																	null,
+																	diagramPanel,
+																	actionElement.getTGConnectingPointAtIndex( 1 ),
+																	stopElement.getTGConnectingPointAtIndex( 0 ),
+																	new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+        
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( con3.canBeDisabled() );
+        
+        con1.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( requestElement.isEnabled() );
+        assertTrue( requestElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( actionElement.isEnabled() );
+        assertTrue( actionElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+        
+        con1.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestElement.isEnabled() );
+        assertTrue( requestElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( actionElement.isEnabled() );
+        assertTrue( actionElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        
+        con2.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestElement.isEnabled() );
+        assertTrue( requestElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( actionElement.isEnabled() );
+        assertTrue( actionElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+        
+        con2.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestElement.isEnabled() );
+        assertTrue( requestElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( actionElement.isEnabled() );
+        assertTrue( actionElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+	}
+	
+	@Test
+    public void testDisableAvatarADAssociationConnectorWithChoice() {
+        final TGComponent startElement = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TGComponent requestElement = new AvatarADSendSignalAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestElement, requestElement.getX(), requestElement.getY(), false, true );
+
+        final TGComponent con1 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												startElement.getTGConnectingPointAtIndex( 0 ),
+			        												requestElement.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent actionElement = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( actionElement, actionElement.getX(), actionElement.getY(), false, true );
+        
+        final TGComponent con2 = new AvatarADAssociationConnector( 	0, 
+																	0,
+																	diagramPanel.getMinX(),
+																	diagramPanel.getMaxX(),
+																	diagramPanel.getMinY(),
+																	diagramPanel.getMaxY(),
+																	false,
+																	null,
+																	diagramPanel,
+																	requestElement.getTGConnectingPointAtIndex( 1 ),
+																	actionElement.getTGConnectingPointAtIndex( 0 ),
+																	new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElement = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true );
+        
+        final TGComponent con3 = new AvatarADAssociationConnector( 	0, 
+																	0,
+																	diagramPanel.getMinX(),
+																	diagramPanel.getMaxX(),
+																	diagramPanel.getMinY(),
+																	diagramPanel.getMaxY(),
+																	false,
+																	null,
+																	diagramPanel,
+																	actionElement.getTGConnectingPointAtIndex( 1 ),
+																	stopElement.getTGConnectingPointAtIndex( 0 ),
+																	new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+        
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( con3.canBeDisabled() );
+        
+        con1.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( con1.isEnabled() );
+        assertFalse( requestElement.isEnabled() );
+        assertTrue( con2.isEnabled() );
+        assertFalse( actionElement.isEnabled() );
+        assertTrue( con3.isEnabled() );
+        assertTrue( stopElement.isEnabled() );
+        
+        con1.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( requestElement.isEnabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( actionElement.isEnabled() );
+        assertTrue( con3.isEnabled() );
+        assertTrue( stopElement.isEnabled() );
+        
+        con2.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( requestElement.isEnabled() );
+        assertTrue( con2.isEnabled() );
+        assertFalse( actionElement.isEnabled() );
+        assertTrue( con3.isEnabled() );
+        assertTrue( stopElement.isEnabled() );
+        
+        con2.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( requestElement.isEnabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( actionElement.isEnabled() );
+        assertTrue( con3.isEnabled() );
+        assertTrue( stopElement.isEnabled() );
+	}
+	
+	@Test
+    public void testDisableAvatarADChoice() {
+        final AvatarADChoice element = new AvatarADChoice( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+        
+        element.setGuard( Boolean.TRUE.toString(), 0 );
+        TGComponent guard = element.getInternalTGComponent( 0 );
+        assertTrue( guard.canBeDisabled() );
+        
+        guard.setEnabled( false );
+        assertFalse( guard.isEnabled() );
+
+        guard.setEnabled( true );
+        assertTrue( guard.isEnabled() );
+
+        element.setGuard( null, 0 );
+        guard = element.getInternalTGComponent( 0 );
+        assertFalse( guard.canBeDisabled() );
+
+        element.setGuard( "", 0 );
+        guard = element.getInternalTGComponent( 0 );
+        assertFalse( guard.canBeDisabled() );
+
+        element.setGuard( AvatarADChoice.EMPTY_GUARD_TEXT, 0 );
+        guard = element.getInternalTGComponent( 0 );
+        assertFalse( guard.canBeDisabled() );
+    }
+	
+	@Test
+    public void testDisableAvatarADConnectingPoint() {
+        final CDElement element = new AvatarADConnectingPoint( null, 0, -5, true, false, 0.5, 0.0 );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableAvatarADJunction() {
+        final CDElement element = new AvatarADJunction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.isEnabled() );
+        assertFalse( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableAvatarADParallel() {
+        final TGComponent startElement = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final AvatarADParallel parallel = new AvatarADParallel( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( parallel, parallel.getX(), parallel.getY(), false, true );
+
+        final TGComponent con1 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												startElement.getTGConnectingPointAtIndex( 0 ),
+			        												parallel.getEnterConnectingPoints().get( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent actionBranch1 = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( actionBranch1, actionBranch1.getX(),actionBranch1.getY(), false, true );
+
+        final TGComponent con2 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												parallel.getExitConnectingPoints().get( 0 ),
+			        												actionBranch1.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElementBranch1 = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch1, stopElementBranch1.getX(), stopElementBranch1.getY(), false, true );
+
+        final TGComponent con3 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												actionBranch1.getTGConnectingPointAtIndex( 1 ),
+			        												stopElementBranch1.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+
+
+        final TGComponent actionBranch2 = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( actionBranch2, actionBranch2.getX(), actionBranch2.getY(), false, true );
+
+        final TGComponent con4 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												parallel.getExitConnectingPoints().get( 1 ),
+			        												actionBranch2.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true );
+
+        final TGComponent stopElementBranch2 = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch2, stopElementBranch2.getX(), stopElementBranch2.getY(), false, true );
+
+        final TGComponent con5 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												actionBranch2.getTGConnectingPointAtIndex( 1 ),
+			        												stopElementBranch2.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true );
+
+        final TGComponent actionBranch3 = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( actionBranch3, actionBranch3.getX(),actionBranch3.getY(), false, true );
+
+        final TGComponent con6 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												parallel.getExitConnectingPoints().get( 2 ),
+			        												actionBranch3.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true );
+
+        final TGComponent stopElementBranch3 = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch1, stopElementBranch3.getX(), stopElementBranch3.getY(), false, true );
+
+        final TGComponent con7 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												actionBranch3.getTGConnectingPointAtIndex( 1 ),
+			        												stopElementBranch3.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true );
+        
+        assertTrue( parallel.canBeDisabled() );
+        
+        parallel.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertFalse( parallel.isEnabled() );
+        assertTrue( parallel.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( actionBranch1.isEnabled() );
+        assertTrue( actionBranch1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementBranch1.isEnabled() );
+        assertFalse( stopElementBranch1.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertFalse( actionBranch2.isEnabled() );
+        assertTrue( actionBranch2.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementBranch2.isEnabled() );
+        assertFalse( stopElementBranch2.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+        assertFalse( actionBranch3.isEnabled() );
+        assertTrue( actionBranch3.canBeDisabled() );
+        assertTrue( con6.isEnabled() );
+        assertTrue( con6.canBeDisabled() );
+        assertTrue( stopElementBranch3.isEnabled() );
+        assertFalse( stopElementBranch3.canBeDisabled() );
+        assertTrue( con7.isEnabled() );
+        assertFalse( con7.canBeDisabled() );
+
+        parallel.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( parallel.isEnabled() );
+        assertTrue( parallel.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( actionBranch1.isEnabled() );
+        assertTrue( actionBranch1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementBranch1.isEnabled() );
+        assertFalse( stopElementBranch1.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( actionBranch2.isEnabled() );
+        assertTrue( actionBranch2.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementBranch2.isEnabled() );
+        assertFalse( stopElementBranch2.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+        assertTrue( actionBranch3.isEnabled() );
+        assertTrue( actionBranch3.canBeDisabled() );
+        assertTrue( con6.isEnabled() );
+        assertTrue( con6.canBeDisabled() );
+        assertTrue( stopElementBranch3.isEnabled() );
+        assertFalse( stopElementBranch3.canBeDisabled() );
+        assertTrue( con7.isEnabled() );
+        assertFalse( con7.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableAvatarADSendSignalAction() {
+        final CDElement element = new AvatarADSendSignalAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarADStartState() {
+        final CDElement element = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableAvatarADStopFlow() {
+        final TGComponent startElement = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+        final TGComponent action = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( action, action.getX(), action.getY(), false, true );
+
+        final TGComponent con1 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												startElement.getTGConnectingPointAtIndex( 0 ),
+			        												action.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent stopFlow = new AvatarADStopFlow( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopFlow, stopFlow.getX(), stopFlow.getY(), false, true );
+
+        final TGComponent con2 = new AvatarADAssociationConnector( 	0, 
+			        												0,
+			        												diagramPanel.getMinX(),
+			        												diagramPanel.getMaxX(),
+			        												diagramPanel.getMinY(),
+			        												diagramPanel.getMaxY(),
+			        												false,
+			        												null,
+			        												diagramPanel,
+			        												action.getTGConnectingPointAtIndex( 1 ),
+			        												stopFlow.getTGConnectingPointAtIndex( 0 ),
+			        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+        
+        assertFalse( stopFlow.canBeDisabled() );
+        assertFalse( con2.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableAvatarADStopState() {
+        final CDElement element = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+}
diff --git a/ttool/src/test/java/ui/avatarsmd/TestAvatarSMDComponentsDisabling.java b/ttool/src/test/java/ui/avatarsmd/TestAvatarSMDComponentsDisabling.java
new file mode 100644
index 0000000000000000000000000000000000000000..ce50b88c248c819fa9e8e14f32d5114ef986c00f
--- /dev/null
+++ b/ttool/src/test/java/ui/avatarsmd/TestAvatarSMDComponentsDisabling.java
@@ -0,0 +1,1104 @@
+package ui.avatarsmd;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Point;
+import java.util.Vector;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import ui.AbstractUITest;
+import ui.CDElement;
+import ui.TGComponent;
+import ui.tmldd.TMLArchiDiagramPanel;
+import ui.tmldd.TMLArchiDiagramToolBar;
+
+public class TestAvatarSMDComponentsDisabling extends AbstractUITest {
+
+	private TMLArchiDiagramPanel diagramPanel;
+	
+	public TestAvatarSMDComponentsDisabling() {
+		super();
+	}
+	
+	@Before
+    public void setUp() {
+		final TMLArchiDiagramToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI );
+        diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar );
+    }
+	
+	@Test
+    public void testDisableAvatarSMDChoice() {
+        final AvatarSMDChoice element = new AvatarSMDChoice( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+        
+        // TODO
+//        element.setGuard( Boolean.TRUE.toString(), 0 );
+//        TGComponent guard = element.getInternalTGComponent( 0 );
+//        assertTrue( guard.canBeDisabled() );
+//        
+//        guard.setEnabled( false );
+//        assertFalse( guard.isEnabled() );
+//
+//        guard.setEnabled( true );
+//        assertTrue( guard.isEnabled() );
+//
+//        element.setGuard( null, 0 );
+//        guard = element.getInternalTGComponent( 0 );
+//        assertFalse( guard.canBeDisabled() );
+//
+//        element.setGuard( "", 0 );
+//        guard = element.getInternalTGComponent( 0 );
+//        assertFalse( guard.canBeDisabled() );
+//
+//        element.setGuard( AvatarADChoice.EMPTY_GUARD_TEXT, 0 );
+//        guard = element.getInternalTGComponent( 0 );
+//        assertFalse( guard.canBeDisabled() );
+    }
+	
+	@Test
+    public void testDisableAvatarSMDConnectingPoint() {
+        final CDElement element = new AvatarSMDConnectingPoint( null, 0, -5, true, false, 0.5, 0.0 );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+	
+	@Test
+    public void testDisableAvatarSMDConnector() {
+        final TGComponent startElement = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TGComponent sendSignalElement = new AvatarSMDSendSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( sendSignalElement, sendSignalElement.getX(), sendSignalElement.getY(), false, true );
+
+        final AvatarSMDConnector con1 = new AvatarSMDConnector( 0, 
+		        												0,
+		        												diagramPanel.getMinX(),
+		        												diagramPanel.getMaxX(),
+		        												diagramPanel.getMinY(),
+		        												diagramPanel.getMaxY(),
+		        												false,
+		        												null,
+		        												diagramPanel,
+		        												startElement.getTGConnectingPointAtIndex( 0 ),
+		        												sendSignalElement.getTGConnectingPointAtIndex( 0 ),
+		        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent randomElement = new AvatarSMDRandom( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( randomElement, randomElement.getX(), randomElement.getY(), false, true );
+        
+        final AvatarSMDConnector con2 = new AvatarSMDConnector( 0, 
+																0,
+																diagramPanel.getMinX(),
+																diagramPanel.getMaxX(),
+																diagramPanel.getMinY(),
+																diagramPanel.getMaxY(),
+																false,
+																null,
+																diagramPanel,
+																sendSignalElement.getTGConnectingPointAtIndex( 1 ),
+																randomElement.getTGConnectingPointAtIndex( 0 ),
+																new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElement = new AvatarSMDStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true );
+        
+        final AvatarSMDConnector con3 = new AvatarSMDConnector( 0, 
+																0,
+																diagramPanel.getMinX(),
+																diagramPanel.getMaxX(),
+																diagramPanel.getMinY(),
+																diagramPanel.getMaxY(),
+																false,
+																null,
+																diagramPanel,
+																randomElement.getTGConnectingPointAtIndex( 1 ),
+																stopElement.getTGConnectingPointAtIndex( 0 ),
+																new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+        
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( con3.canBeDisabled() );
+        
+        con1.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con1.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( con1.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertFalse( sendSignalElement.isEnabled() );
+        assertTrue( sendSignalElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( con2.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( con2.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertFalse( randomElement.isEnabled() );
+        assertTrue( randomElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertFalse( con3.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( con3.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+        
+        con1.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( sendSignalElement.isEnabled() );
+        assertTrue( sendSignalElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( randomElement.isEnabled() );
+        assertTrue( randomElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        
+        con2.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( sendSignalElement.isEnabled() );
+        assertTrue( sendSignalElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( randomElement.isEnabled() );
+        assertTrue( randomElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+        
+        con2.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( sendSignalElement.isEnabled() );
+        assertTrue( sendSignalElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( randomElement.isEnabled() );
+        assertTrue( randomElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+	}
+
+	@Test
+    public void testDisableAvatarSMDExpireTimer() {
+        final CDElement element = new AvatarSMDExpireTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarSMDLibraryFunctionCall() {
+        final CDElement element = new AvatarSMDLibraryFunctionCall( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarSMDRandom() {
+        final CDElement element = new AvatarSMDRandom( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarSMDReceiveSignal() {
+        final CDElement element = new AvatarSMDReceiveSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarSMDResetTimer() {
+        final CDElement element = new AvatarSMDResetTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarSMDSendSignal() {
+        final CDElement element = new AvatarSMDSendSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarSMDSetTimer() {
+        final CDElement element = new AvatarSMDSetTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableAvatarSMDStartState() {
+        final CDElement element = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableAvatarSMDState() {
+        final TGComponent startElement = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+        final AvatarSMDState compositeState1 = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        compositeState1.setValue( "compositeState" );
+        int indexState1 = 0;
+        diagramPanel.addComponent( compositeState1, compositeState1.getX(), compositeState1.getY(), false, true );
+        final String testName = "test";
+        
+        final TGComponent con1 = new AvatarSMDConnector( 	0, 
+	        												0,
+	        												diagramPanel.getMinX(),
+	        												diagramPanel.getMaxX(),
+	        												diagramPanel.getMinY(),
+	        												diagramPanel.getMaxY(),
+	        												false,
+	        												null,
+	        												diagramPanel,
+	        												startElement.getTGConnectingPointAtIndex( 0 ),
+	        												compositeState1.getTGConnectingPointAtIndex( 0 ),
+	        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+        
+        final TGComponent startElementState1 = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, compositeState1, diagramPanel );
+        compositeState1.addInternalComponent( startElementState1, indexState1++ );
+
+        final TGComponent timerState11 = new AvatarSMDResetTimer( 500, 500, 0, 1400, 0, 1900, true, compositeState1, diagramPanel );
+        compositeState1.addInternalComponent( timerState11, indexState1++ );
+        
+        final AvatarSMDConnector conState11 = new AvatarSMDConnector( 	0, 
+				        												0,
+				        												diagramPanel.getMinX(),
+				        												diagramPanel.getMaxX(),
+				        												diagramPanel.getMinY(),
+				        												diagramPanel.getMaxY(),
+				        												false,
+				        												null,
+				        												diagramPanel,
+				        												startElementState1.getTGConnectingPointAtIndex( 0 ),
+				        												timerState11.getTGConnectingPointAtIndex( 0 ),
+				        												new Vector<Point>() );
+        conState11.setTransitionInfo( "false", "a = b" );
+        conState11.setTransitionTime( "0", "2", "0", "10" );
+        diagramPanel.addComponent( conState11, conState11.getX(), conState11.getY(), false, true );
+        final AvatarSMDState compositeState2 = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, compositeState1, diagramPanel );
+        compositeState2.setValue( testName );
+        int indexState2 = 0;
+        compositeState1.addInternalComponent( compositeState2, indexState1++ );
+        
+        final TGComponent conState12 = new AvatarSMDConnector( 	0, 
+		        												0,
+		        												diagramPanel.getMinX(),
+		        												diagramPanel.getMaxX(),
+		        												diagramPanel.getMinY(),
+		        												diagramPanel.getMaxY(),
+		        												false,
+		        												null,
+		        												diagramPanel,
+		        												timerState11.getTGConnectingPointAtIndex( 1 ),
+		        												compositeState2.getTGConnectingPointAtIndex( 0 ),
+		        												new Vector<Point>() );
+        diagramPanel.addComponent( conState12, conState12.getX(), conState12.getY(), false, true );
+        
+        final TGComponent startElementState2 = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, compositeState2, diagramPanel );
+        compositeState2.addInternalComponent( startElementState2, indexState2++ );
+        final TGComponent receiveSignalState2 = new AvatarSMDReceiveSignal( 500, 500, 0, 1400, 0, 1900, true, compositeState2, diagramPanel );
+        compositeState2.addInternalComponent( receiveSignalState2, indexState2++ );
+
+        final TGComponent conState21 = new AvatarSMDConnector( 	0, 
+																0,
+																diagramPanel.getMinX(),
+																diagramPanel.getMaxX(),
+																diagramPanel.getMinY(),
+																diagramPanel.getMaxY(),
+																false,
+																null,
+																diagramPanel,
+																startElementState2.getTGConnectingPointAtIndex( 0 ),
+																receiveSignalState2.getTGConnectingPointAtIndex( 0 ),
+																new Vector<Point>() );
+        diagramPanel.addComponent( conState21, conState21.getX(), conState21.getY(), false, true );
+
+        final TGComponent timerState12 = new AvatarSMDResetTimer( 500, 500, 0, 1400, 0, 1900, true, compositeState1, diagramPanel );
+        compositeState1.addInternalComponent( timerState12, indexState1++ );
+
+        final TGComponent conState13 = new AvatarSMDConnector( 	0, 
+																0,
+																diagramPanel.getMinX(),
+																diagramPanel.getMaxX(),
+																diagramPanel.getMinY(),
+																diagramPanel.getMaxY(),
+																false,
+																null,
+																diagramPanel,
+																receiveSignalState2.getTGConnectingPointAtIndex( 1 ),
+																timerState12.getTGConnectingPointAtIndex( 0 ),
+																new Vector<Point>() );
+        diagramPanel.addComponent( conState13, conState13.getX(), conState13.getY(), false, true );
+
+        final TGComponent stateTest = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        stateTest.setValue( testName );
+        diagramPanel.addComponent( stateTest, stateTest.getX(), stateTest.getY(), false, true );
+
+        final TGComponent conStateTest = new AvatarSMDConnector( 	0,
+																	0,
+																	diagramPanel.getMinX(),
+																	diagramPanel.getMaxX(),
+																	diagramPanel.getMinY(),
+																	diagramPanel.getMaxY(),
+																	false,
+																	null,
+																	diagramPanel,
+																	timerState12.getTGConnectingPointAtIndex( 1 ),
+																	stateTest.getTGConnectingPointAtIndex( 0 ),
+																	new Vector<Point>() );
+        diagramPanel.addComponent( conStateTest, conStateTest.getX(), conStateTest.getY(), false, true );
+
+        final TGComponent receiveSignal = new AvatarSMDReceiveSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        receiveSignal.setValue( testName );
+        diagramPanel.addComponent( receiveSignal, receiveSignal.getX(), receiveSignal.getY(), false, true );
+
+        final TGComponent conReceiveSignal = new AvatarSMDConnector( 	0,
+																		0,
+																		diagramPanel.getMinX(),
+																		diagramPanel.getMaxX(),
+																		diagramPanel.getMinY(),
+																		diagramPanel.getMaxY(),
+																		false,
+																		null,
+																		diagramPanel,
+																		stateTest.getTGConnectingPointAtIndex( 1 ),
+																		receiveSignal.getTGConnectingPointAtIndex( 0 ),
+																		new Vector<Point>() );
+        diagramPanel.addComponent( conReceiveSignal, conReceiveSignal.getX(), conReceiveSignal.getY(), false, true );
+
+        final TGComponent stateTest2 = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        stateTest2.setValue( "test2" );
+        diagramPanel.addComponent( stateTest2, stateTest2.getX(), stateTest2.getY(), false, true );
+
+        final TGComponent conStateTest2 = new AvatarSMDConnector( 	0,
+																	0,
+																	diagramPanel.getMinX(),
+																	diagramPanel.getMaxX(),
+																	diagramPanel.getMinY(),
+																	diagramPanel.getMaxY(),
+																	false,
+																	null,
+																	diagramPanel,
+																	receiveSignal.getTGConnectingPointAtIndex( 1 ),
+																	stateTest2.getTGConnectingPointAtIndex( 0 ),
+																	new Vector<Point>() );
+        diagramPanel.addComponent( conStateTest2, conStateTest2.getX(), conStateTest2.getY(), false, true );
+
+        final TGComponent sendSignal = new AvatarSMDSendSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        sendSignal.setValue( testName );
+        diagramPanel.addComponent( sendSignal, sendSignal.getX(), sendSignal.getY(), false, true );
+
+        final TGComponent conSendSignal = new AvatarSMDConnector( 	0,
+																	0,
+																	diagramPanel.getMinX(),
+																	diagramPanel.getMaxX(),
+																	diagramPanel.getMinY(),
+																	diagramPanel.getMaxY(),
+																	false,
+																	null,
+																	diagramPanel,
+																	stateTest2.getTGConnectingPointAtIndex( 1 ),
+																	sendSignal.getTGConnectingPointAtIndex( 0 ),
+																	new Vector<Point>() );
+        diagramPanel.addComponent( conSendSignal, conSendSignal.getX(), conSendSignal.getY(), false, true );
+
+        final TGComponent stateTest3 = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        stateTest3.setValue( testName );
+        diagramPanel.addComponent( stateTest3, stateTest3.getX(), stateTest3.getY(), false, true );
+
+        final TGComponent conStateTest3 = new AvatarSMDConnector( 	0,
+																	0,
+																	diagramPanel.getMinX(),
+																	diagramPanel.getMaxX(),
+																	diagramPanel.getMinY(),
+																	diagramPanel.getMaxY(),
+																	false,
+																	null,
+																	diagramPanel,
+																	sendSignal.getTGConnectingPointAtIndex( 1 ),
+																	stateTest3.getTGConnectingPointAtIndex( 0 ),
+																	new Vector<Point>() );
+        diagramPanel.addComponent( conStateTest3, conStateTest3.getX(), conStateTest3.getY(), false, true );
+
+        final TGComponent stopElement = new AvatarSMDStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true );
+
+        final TGComponent conStop = new AvatarSMDConnector( 0,
+															0,
+															diagramPanel.getMinX(),
+															diagramPanel.getMaxX(),
+															diagramPanel.getMinY(),
+															diagramPanel.getMaxY(),
+															false,
+															null,
+															diagramPanel,
+															stateTest3.getTGConnectingPointAtIndex( 1 ),
+															stopElement.getTGConnectingPointAtIndex( 0 ),
+															new Vector<Point>() );
+        diagramPanel.addComponent( conStop, conStop.getX(), conStop.getY(), false, true );
+        
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( compositeState1.canBeDisabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( startElementState1.canBeDisabled() );
+        assertTrue( timerState11.canBeDisabled() );
+        assertTrue( conState11.canBeDisabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( compositeState2.canBeDisabled() );
+        assertTrue( conState12.canBeDisabled() );
+        assertFalse( startElementState2.canBeDisabled() );
+        assertTrue( receiveSignalState2.canBeDisabled() );
+        assertTrue( conState21.canBeDisabled() );
+        assertTrue( timerState12.canBeDisabled() );
+        assertTrue( conState13.canBeDisabled() );
+        assertTrue( stateTest.canBeDisabled() );
+        assertTrue( conStateTest.canBeDisabled() );
+        assertTrue( receiveSignal.canBeDisabled() );
+        assertTrue( conReceiveSignal.canBeDisabled() );
+        assertTrue( stateTest2.canBeDisabled() );
+        assertTrue( conStateTest2.canBeDisabled() );
+        assertTrue( sendSignal.canBeDisabled() );
+        assertTrue( conSendSignal.canBeDisabled() );
+        assertTrue( stateTest3.canBeDisabled() );
+        assertTrue( conStateTest3.canBeDisabled() );
+        assertFalse( stopElement.canBeDisabled() );
+        assertFalse( conStop.canBeDisabled() );
+        
+        compositeState1.setEnabled( false );
+        
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( compositeState1.canBeDisabled() );
+        assertFalse( compositeState1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertFalse( startElementState1.canBeDisabled() );
+        assertTrue( startElementState1.isEnabled() );
+        assertFalse( timerState11.canBeDisabled() );
+        assertFalse( timerState11.isEnabled() );
+        assertFalse( conState11.canBeDisabled() );
+        assertTrue( conState11.isEnabled() );
+        assertFalse( conState11.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertFalse( conState11.getAvatarSMDTransitionInfo().isEnabled() );
+        assertFalse( compositeState2.canBeDisabled() );
+        assertFalse( compositeState2.isEnabled() );
+        assertFalse( conState12.canBeDisabled() );
+        assertTrue( conState12.isEnabled() );
+        assertFalse( startElementState2.canBeDisabled() );
+        assertTrue( startElementState2.isEnabled() );
+        assertFalse( receiveSignalState2.canBeDisabled() );
+        assertFalse( receiveSignalState2.isEnabled() );
+        assertFalse( conState21.canBeDisabled() );
+        assertTrue( conState21.isEnabled() );
+        assertFalse( timerState12.canBeDisabled() );
+        assertFalse( timerState12.isEnabled() );
+        assertFalse( conState13.canBeDisabled() );
+        assertTrue( conState13.isEnabled() );
+        
+        assertTrue( stateTest.canBeDisabled() );
+        assertTrue( stateTest.isEnabled() );
+        assertFalse( conStateTest.canBeDisabled() );
+        assertTrue( conStateTest.isEnabled() );
+        assertTrue( receiveSignal.canBeDisabled() );
+        assertTrue( receiveSignal.isEnabled() );
+        assertTrue( conReceiveSignal.canBeDisabled() );
+        assertTrue( conReceiveSignal.isEnabled() );
+        assertTrue( stateTest2.canBeDisabled() );
+        assertTrue( stateTest2.isEnabled() );
+        assertTrue( conStateTest2.canBeDisabled() );
+        assertTrue( conStateTest2.isEnabled() );
+        assertTrue( sendSignal.canBeDisabled() );
+        assertTrue( sendSignal.isEnabled() );
+        assertTrue( conSendSignal.canBeDisabled() );
+        assertTrue( conSendSignal.isEnabled() );
+        assertTrue( stateTest3.canBeDisabled() );
+        assertTrue( stateTest3.isEnabled() );
+        assertTrue( conStateTest3.canBeDisabled() );
+        assertTrue( conStateTest3.isEnabled() );
+
+        assertFalse( stopElement.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( conStop.canBeDisabled() );
+        assertTrue( conStop.isEnabled() );
+
+        compositeState1.setEnabled( true );
+        
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( compositeState1.canBeDisabled() );
+        assertTrue( compositeState1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertFalse( startElementState1.canBeDisabled() );
+        assertTrue( startElementState1.isEnabled() );
+        assertTrue( timerState11.canBeDisabled() );
+        assertTrue( timerState11.isEnabled() );
+        assertTrue( conState11.canBeDisabled() );
+        assertTrue( conState11.isEnabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( compositeState2.canBeDisabled() );
+        assertTrue( compositeState2.isEnabled() );
+        assertTrue( conState12.canBeDisabled() );
+        assertTrue( conState12.isEnabled() );
+        assertFalse( startElementState2.canBeDisabled() );
+        assertTrue( startElementState2.isEnabled() );
+        assertTrue( receiveSignalState2.canBeDisabled() );
+        assertTrue( receiveSignalState2.isEnabled() );
+        assertTrue( conState21.canBeDisabled() );
+        assertTrue( conState21.isEnabled() );
+        assertTrue( timerState12.canBeDisabled() );
+        assertTrue( timerState12.isEnabled() );
+        assertTrue( conState13.canBeDisabled() );
+        assertTrue( conState13.isEnabled() );
+        
+        assertTrue( stateTest.canBeDisabled() );
+        assertTrue( stateTest.isEnabled() );
+        assertTrue( conStateTest.canBeDisabled() );
+        assertTrue( conStateTest.isEnabled() );
+        assertTrue( receiveSignal.canBeDisabled() );
+        assertTrue( receiveSignal.isEnabled() );
+        assertTrue( conReceiveSignal.canBeDisabled() );
+        assertTrue( conReceiveSignal.isEnabled() );
+        assertTrue( stateTest2.canBeDisabled() );
+        assertTrue( stateTest2.isEnabled() );
+        assertTrue( conStateTest2.canBeDisabled() );
+        assertTrue( conStateTest2.isEnabled() );
+        assertTrue( sendSignal.canBeDisabled() );
+        assertTrue( sendSignal.isEnabled() );
+        assertTrue( conSendSignal.canBeDisabled() );
+        assertTrue( conSendSignal.isEnabled() );
+        assertTrue( stateTest3.canBeDisabled() );
+        assertTrue( stateTest3.isEnabled() );
+        assertTrue( conStateTest3.canBeDisabled() );
+        assertTrue( conStateTest3.isEnabled() );
+
+        assertFalse( stopElement.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( conStop.canBeDisabled() );
+        assertTrue( conStop.isEnabled() );
+        
+        compositeState2.setEnabled( false );
+        
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( compositeState1.canBeDisabled() );
+        assertTrue( compositeState1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertFalse( startElementState1.canBeDisabled() );
+        assertTrue( startElementState1.isEnabled() );
+        assertTrue( timerState11.canBeDisabled() );
+        assertTrue( timerState11.isEnabled() );
+        assertTrue( conState11.canBeDisabled() );
+        assertTrue( conState11.isEnabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( compositeState2.canBeDisabled() );
+        assertFalse( compositeState2.isEnabled() );
+        assertTrue( conState12.canBeDisabled() );
+        assertTrue( conState12.isEnabled() );
+        assertFalse( startElementState2.canBeDisabled() );
+        assertTrue( startElementState2.isEnabled() );
+        assertFalse( receiveSignalState2.canBeDisabled() );
+        assertFalse( receiveSignalState2.isEnabled() );
+        assertFalse( conState21.canBeDisabled() );
+        assertTrue( conState21.isEnabled() );
+        assertTrue( timerState12.canBeDisabled() );
+        assertTrue( timerState12.isEnabled() );
+        assertFalse( conState13.canBeDisabled() );
+        assertTrue( conState13.isEnabled() );
+        
+        assertTrue( stateTest.canBeDisabled() );
+        assertTrue( stateTest.isEnabled() );
+        assertTrue( conStateTest.canBeDisabled() );
+        assertTrue( conStateTest.isEnabled() );
+        assertTrue( receiveSignal.canBeDisabled() );
+        assertTrue( receiveSignal.isEnabled() );
+        assertTrue( conReceiveSignal.canBeDisabled() );
+        assertTrue( conReceiveSignal.isEnabled() );
+        assertTrue( stateTest2.canBeDisabled() );
+        assertTrue( stateTest2.isEnabled() );
+        assertTrue( conStateTest2.canBeDisabled() );
+        assertTrue( conStateTest2.isEnabled() );
+        assertTrue( sendSignal.canBeDisabled() );
+        assertTrue( sendSignal.isEnabled() );
+        assertTrue( conSendSignal.canBeDisabled() );
+        assertTrue( conSendSignal.isEnabled() );
+        assertTrue( stateTest3.canBeDisabled() );
+        assertTrue( stateTest3.isEnabled() );
+        assertTrue( conStateTest3.canBeDisabled() );
+        assertTrue( conStateTest3.isEnabled() );
+
+        assertFalse( stopElement.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( conStop.canBeDisabled() );
+        assertTrue( conStop.isEnabled() );
+
+        compositeState2.setEnabled( true );
+        
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( compositeState1.canBeDisabled() );
+        assertTrue( compositeState1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertFalse( startElementState1.canBeDisabled() );
+        assertTrue( startElementState1.isEnabled() );
+        assertTrue( timerState11.canBeDisabled() );
+        assertTrue( timerState11.isEnabled() );
+        assertTrue( conState11.canBeDisabled() );
+        assertTrue( conState11.isEnabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( compositeState2.canBeDisabled() );
+        assertTrue( compositeState2.isEnabled() );
+        assertTrue( conState12.canBeDisabled() );
+        assertTrue( conState12.isEnabled() );
+        assertFalse( startElementState2.canBeDisabled() );
+        assertTrue( startElementState2.isEnabled() );
+        assertTrue( receiveSignalState2.canBeDisabled() );
+        assertTrue( receiveSignalState2.isEnabled() );
+        assertTrue( conState21.canBeDisabled() );
+        assertTrue( conState21.isEnabled() );
+        assertTrue( timerState12.canBeDisabled() );
+        assertTrue( timerState12.isEnabled() );
+        assertTrue( conState13.canBeDisabled() );
+        assertTrue( conState13.isEnabled() );
+        
+        assertTrue( stateTest.canBeDisabled() );
+        assertTrue( stateTest.isEnabled() );
+        assertTrue( conStateTest.canBeDisabled() );
+        assertTrue( conStateTest.isEnabled() );
+        assertTrue( receiveSignal.canBeDisabled() );
+        assertTrue( receiveSignal.isEnabled() );
+        assertTrue( conReceiveSignal.canBeDisabled() );
+        assertTrue( conReceiveSignal.isEnabled() );
+        assertTrue( stateTest2.canBeDisabled() );
+        assertTrue( stateTest2.isEnabled() );
+        assertTrue( conStateTest2.canBeDisabled() );
+        assertTrue( conStateTest2.isEnabled() );
+        assertTrue( sendSignal.canBeDisabled() );
+        assertTrue( sendSignal.isEnabled() );
+        assertTrue( conSendSignal.canBeDisabled() );
+        assertTrue( conSendSignal.isEnabled() );
+        assertTrue( stateTest3.canBeDisabled() );
+        assertTrue( stateTest3.isEnabled() );
+        assertTrue( conStateTest3.canBeDisabled() );
+        assertTrue( conStateTest3.isEnabled() );
+
+        assertFalse( stopElement.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( conStop.canBeDisabled() );
+        assertTrue( conStop.isEnabled() );
+        
+        stateTest.setEnabled( false );
+        
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( compositeState1.canBeDisabled() );
+        assertTrue( compositeState1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertFalse( startElementState1.canBeDisabled() );
+        assertTrue( startElementState1.isEnabled() );
+        assertTrue( timerState11.canBeDisabled() );
+        assertTrue( timerState11.isEnabled() );
+        assertTrue( conState11.canBeDisabled() );
+        assertTrue( conState11.isEnabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( compositeState2.canBeDisabled() );
+        assertTrue( compositeState2.isEnabled() );
+        assertTrue( conState12.canBeDisabled() );
+        assertTrue( conState12.isEnabled() );
+        assertFalse( startElementState2.canBeDisabled() );
+        assertTrue( startElementState2.isEnabled() );
+        assertTrue( receiveSignalState2.canBeDisabled() );
+        assertTrue( receiveSignalState2.isEnabled() );
+        assertTrue( conState21.canBeDisabled() );
+        assertTrue( conState21.isEnabled() );
+        assertTrue( timerState12.canBeDisabled() );
+        assertTrue( timerState12.isEnabled() );
+        assertTrue( conState13.canBeDisabled() );
+        assertTrue( conState13.isEnabled() );
+        
+        assertTrue( stateTest.canBeDisabled() );
+        assertFalse( stateTest.isEnabled() );
+        assertTrue( conStateTest.canBeDisabled() );
+        assertTrue( conStateTest.isEnabled() );
+        assertTrue( receiveSignal.canBeDisabled() );
+        assertTrue( receiveSignal.isEnabled() );
+        assertTrue( conReceiveSignal.canBeDisabled() );
+        assertTrue( conReceiveSignal.isEnabled() );
+        assertTrue( stateTest2.canBeDisabled() );
+        assertTrue( stateTest2.isEnabled() );
+        assertTrue( conStateTest2.canBeDisabled() );
+        assertTrue( conStateTest2.isEnabled() );
+        assertTrue( sendSignal.canBeDisabled() );
+        assertTrue( sendSignal.isEnabled() );
+        assertTrue( conSendSignal.canBeDisabled() );
+        assertTrue( conSendSignal.isEnabled() );
+        assertTrue( stateTest3.canBeDisabled() );
+        assertFalse( stateTest3.isEnabled() );
+        assertTrue( conStateTest3.canBeDisabled() );
+        assertTrue( conStateTest3.isEnabled() );
+
+        assertFalse( stopElement.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( conStop.canBeDisabled() );
+        assertTrue( conStop.isEnabled() );
+
+        stateTest.setEnabled( true );
+        
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( compositeState1.canBeDisabled() );
+        assertTrue( compositeState1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertFalse( startElementState1.canBeDisabled() );
+        assertTrue( startElementState1.isEnabled() );
+        assertTrue( timerState11.canBeDisabled() );
+        assertTrue( timerState11.isEnabled() );
+        assertTrue( conState11.canBeDisabled() );
+        assertTrue( conState11.isEnabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( compositeState2.canBeDisabled() );
+        assertTrue( compositeState2.isEnabled() );
+        assertTrue( conState12.canBeDisabled() );
+        assertTrue( conState12.isEnabled() );
+        assertFalse( startElementState2.canBeDisabled() );
+        assertTrue( startElementState2.isEnabled() );
+        assertTrue( receiveSignalState2.canBeDisabled() );
+        assertTrue( receiveSignalState2.isEnabled() );
+        assertTrue( conState21.canBeDisabled() );
+        assertTrue( conState21.isEnabled() );
+        assertTrue( timerState12.canBeDisabled() );
+        assertTrue( timerState12.isEnabled() );
+        assertTrue( conState13.canBeDisabled() );
+        assertTrue( conState13.isEnabled() );
+        
+        assertTrue( stateTest.canBeDisabled() );
+        assertTrue( stateTest.isEnabled() );
+        assertTrue( conStateTest.canBeDisabled() );
+        assertTrue( conStateTest.isEnabled() );
+        assertTrue( receiveSignal.canBeDisabled() );
+        assertTrue( receiveSignal.isEnabled() );
+        assertTrue( conReceiveSignal.canBeDisabled() );
+        assertTrue( conReceiveSignal.isEnabled() );
+        assertTrue( stateTest2.canBeDisabled() );
+        assertTrue( stateTest2.isEnabled() );
+        assertTrue( conStateTest2.canBeDisabled() );
+        assertTrue( conStateTest2.isEnabled() );
+        assertTrue( sendSignal.canBeDisabled() );
+        assertTrue( sendSignal.isEnabled() );
+        assertTrue( conSendSignal.canBeDisabled() );
+        assertTrue( conSendSignal.isEnabled() );
+        assertTrue( stateTest3.canBeDisabled() );
+        assertTrue( stateTest3.isEnabled() );
+        assertTrue( conStateTest3.canBeDisabled() );
+        assertTrue( conStateTest3.isEnabled() );
+
+        assertFalse( stopElement.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( conStop.canBeDisabled() );
+        assertTrue( conStop.isEnabled() );
+
+        
+        stateTest3.setEnabled( false );
+        
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( compositeState1.canBeDisabled() );
+        assertTrue( compositeState1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertFalse( startElementState1.canBeDisabled() );
+        assertTrue( startElementState1.isEnabled() );
+        assertTrue( timerState11.canBeDisabled() );
+        assertTrue( timerState11.isEnabled() );
+        assertTrue( conState11.canBeDisabled() );
+        assertTrue( conState11.isEnabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( compositeState2.canBeDisabled() );
+        assertTrue( compositeState2.isEnabled() );
+        assertTrue( conState12.canBeDisabled() );
+        assertTrue( conState12.isEnabled() );
+        assertFalse( startElementState2.canBeDisabled() );
+        assertTrue( startElementState2.isEnabled() );
+        assertTrue( receiveSignalState2.canBeDisabled() );
+        assertTrue( receiveSignalState2.isEnabled() );
+        assertTrue( conState21.canBeDisabled() );
+        assertTrue( conState21.isEnabled() );
+        assertTrue( timerState12.canBeDisabled() );
+        assertTrue( timerState12.isEnabled() );
+        assertTrue( conState13.canBeDisabled() );
+        assertTrue( conState13.isEnabled() );
+        
+        assertTrue( stateTest.canBeDisabled() );
+        assertFalse( stateTest.isEnabled() );
+        assertTrue( conStateTest.canBeDisabled() );
+        assertTrue( conStateTest.isEnabled() );
+        assertTrue( receiveSignal.canBeDisabled() );
+        assertTrue( receiveSignal.isEnabled() );
+        assertTrue( conReceiveSignal.canBeDisabled() );
+        assertTrue( conReceiveSignal.isEnabled() );
+        assertTrue( stateTest2.canBeDisabled() );
+        assertTrue( stateTest2.isEnabled() );
+        assertTrue( conStateTest2.canBeDisabled() );
+        assertTrue( conStateTest2.isEnabled() );
+        assertTrue( sendSignal.canBeDisabled() );
+        assertTrue( sendSignal.isEnabled() );
+        assertTrue( conSendSignal.canBeDisabled() );
+        assertTrue( conSendSignal.isEnabled() );
+        assertTrue( stateTest3.canBeDisabled() );
+        assertFalse( stateTest3.isEnabled() );
+        assertTrue( conStateTest3.canBeDisabled() );
+        assertTrue( conStateTest3.isEnabled() );
+
+        assertFalse( stopElement.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( conStop.canBeDisabled() );
+        assertTrue( conStop.isEnabled() );
+
+        stateTest.setEnabled( true );
+        
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( startElement.isEnabled() );
+        assertTrue( compositeState1.canBeDisabled() );
+        assertTrue( compositeState1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertFalse( startElementState1.canBeDisabled() );
+        assertTrue( startElementState1.isEnabled() );
+        assertTrue( timerState11.canBeDisabled() );
+        assertTrue( timerState11.isEnabled() );
+        assertTrue( conState11.canBeDisabled() );
+        assertTrue( conState11.isEnabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() );
+        assertTrue( compositeState2.canBeDisabled() );
+        assertTrue( compositeState2.isEnabled() );
+        assertTrue( conState12.canBeDisabled() );
+        assertTrue( conState12.isEnabled() );
+        assertFalse( startElementState2.canBeDisabled() );
+        assertTrue( startElementState2.isEnabled() );
+        assertTrue( receiveSignalState2.canBeDisabled() );
+        assertTrue( receiveSignalState2.isEnabled() );
+        assertTrue( conState21.canBeDisabled() );
+        assertTrue( conState21.isEnabled() );
+        assertTrue( timerState12.canBeDisabled() );
+        assertTrue( timerState12.isEnabled() );
+        assertTrue( conState13.canBeDisabled() );
+        assertTrue( conState13.isEnabled() );
+        
+        assertTrue( stateTest.canBeDisabled() );
+        assertTrue( stateTest.isEnabled() );
+        assertTrue( conStateTest.canBeDisabled() );
+        assertTrue( conStateTest.isEnabled() );
+        assertTrue( receiveSignal.canBeDisabled() );
+        assertTrue( receiveSignal.isEnabled() );
+        assertTrue( conReceiveSignal.canBeDisabled() );
+        assertTrue( conReceiveSignal.isEnabled() );
+        assertTrue( stateTest2.canBeDisabled() );
+        assertTrue( stateTest2.isEnabled() );
+        assertTrue( conStateTest2.canBeDisabled() );
+        assertTrue( conStateTest2.isEnabled() );
+        assertTrue( sendSignal.canBeDisabled() );
+        assertTrue( sendSignal.isEnabled() );
+        assertTrue( conSendSignal.canBeDisabled() );
+        assertTrue( conSendSignal.isEnabled() );
+        assertTrue( stateTest3.canBeDisabled() );
+        assertTrue( stateTest3.isEnabled() );
+        assertTrue( conStateTest3.canBeDisabled() );
+        assertTrue( conStateTest3.isEnabled() );
+
+        assertFalse( stopElement.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( conStop.canBeDisabled() );
+        assertTrue( conStop.isEnabled() );
+	}
+
+	@Test
+    public void testDisableAvatarSMDStopState() {
+        final TGComponent startElement = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+        final TGComponent action = new AvatarSMDSetTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( action, action.getX(), action.getY(), false, true );
+
+        final TGComponent con1 = new AvatarSMDConnector( 	0, 
+	        												0,
+	        												diagramPanel.getMinX(),
+	        												diagramPanel.getMaxX(),
+	        												diagramPanel.getMinY(),
+	        												diagramPanel.getMaxY(),
+	        												false,
+	        												null,
+	        												diagramPanel,
+	        												startElement.getTGConnectingPointAtIndex( 0 ),
+	        												action.getTGConnectingPointAtIndex( 0 ),
+	        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent stopElement = new AvatarSMDStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true );
+
+        final TGComponent con2 = new AvatarSMDConnector( 	0, 
+	        												0,
+	        												diagramPanel.getMinX(),
+	        												diagramPanel.getMaxX(),
+	        												diagramPanel.getMinY(),
+	        												diagramPanel.getMaxY(),
+	        												false,
+	        												null,
+	        												diagramPanel,
+	        												action.getTGConnectingPointAtIndex( 1 ),
+	        												stopElement.getTGConnectingPointAtIndex( 0 ),
+	        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+        
+        assertFalse( stopElement.canBeDisabled() );
+        assertFalse( con2.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableAvatarSMDTransitionInfo() {
+        final TGComponent startElement = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+        final TGComponent setTimer = new AvatarSMDSetTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( setTimer, setTimer.getX(), setTimer.getY(), false, true );
+
+        final AvatarSMDConnector con1 = new AvatarSMDConnector( 0, 
+		        												0,
+		        												diagramPanel.getMinX(),
+		        												diagramPanel.getMaxX(),
+		        												diagramPanel.getMinY(),
+		        												diagramPanel.getMaxY(),
+		        												false,
+		        												null,
+		        												diagramPanel,
+		        												startElement.getTGConnectingPointAtIndex( 0 ),
+		        												setTimer.getTGConnectingPointAtIndex( 0 ),
+		        												new Vector<Point>() );
+        final String guard = "false";
+        final String action = "a = b";
+        con1.setTransitionInfo( guard, action );
+        final String minAfter = "0";
+        final String maxAfter = "2";
+        final String minCompute = "1";
+        final String maxCompute = "10";
+        con1.setTransitionTime( minAfter, maxAfter, minCompute, maxCompute );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent stopElement = new AvatarSMDStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true );
+
+        final AvatarSMDConnector con2 = new AvatarSMDConnector( 0, 
+		        												0,
+		        												diagramPanel.getMinX(),
+		        												diagramPanel.getMaxX(),
+		        												diagramPanel.getMinY(),
+		        												diagramPanel.getMaxY(),
+		        												false,
+		        												null,
+		        												diagramPanel,
+		        												setTimer.getTGConnectingPointAtIndex( 1 ),
+		        												stopElement.getTGConnectingPointAtIndex( 0 ),
+		        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+        
+        assertTrue( con1.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( con2.getAvatarSMDTransitionInfo().canBeDisabled() );
+        
+        con1.setEnabled( false );
+        assertTrue( con1.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertTrue( con1.getAvatarSMDTransitionInfo().isEnabled() );
+        assertEquals( guard, con1.getEffectiveGuard() );
+        assertEquals( action, con1.getEffectiveActions().get( 0 ) );
+        assertEquals( minAfter, con1.getEffectiveAfterMinDelay() );
+        assertEquals( maxAfter, con1.getEffectiveAfterMaxDelay() );
+        assertEquals( minCompute, con1.getEffectiveComputeMinDelay() );
+        assertEquals( maxCompute, con1.getEffectiveComputeMaxDelay() );
+
+        con1.getAvatarSMDTransitionInfo().setEnabled( false );
+        assertTrue( con1.getAvatarSMDTransitionInfo().canBeDisabled() );
+        assertFalse( con1.getAvatarSMDTransitionInfo().isEnabled() );
+        assertEquals( AvatarSMDTransitionInfo.DISABLED_GUARD_EXPR, con1.getEffectiveGuard() );
+        
+        for ( final String expr : con1.getEffectiveActions() ) {
+            assertEquals( AvatarSMDTransitionInfo.DISABLED_ACTION_EXPR, expr );
+        }
+
+        assertEquals( AvatarSMDTransitionInfo.DISABLED_DELAY_EXPR, con1.getEffectiveAfterMinDelay() );
+        assertEquals( AvatarSMDTransitionInfo.DISABLED_DELAY_EXPR, con1.getEffectiveAfterMaxDelay() );
+        assertEquals( AvatarSMDTransitionInfo.DISABLED_DELAY_EXPR, con1.getEffectiveComputeMinDelay() );
+        assertEquals( AvatarSMDTransitionInfo.DISABLED_DELAY_EXPR, con1.getEffectiveComputeMaxDelay() );
+    }
+}
diff --git a/ttool/src/test/java/ui/tmlad/TestTMLADComponentsDisabling.java b/ttool/src/test/java/ui/tmlad/TestTMLADComponentsDisabling.java
new file mode 100644
index 0000000000000000000000000000000000000000..69f7e84ff54d3690958c59ed98f0e907286cb15e
--- /dev/null
+++ b/ttool/src/test/java/ui/tmlad/TestTMLADComponentsDisabling.java
@@ -0,0 +1,1287 @@
+package ui.tmlad;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Point;
+import java.util.Vector;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import ui.AbstractUITest;
+import ui.CDElement;
+import ui.TGComponent;
+import ui.ad.TADForLoop;
+import ui.tmldd.TMLArchiDiagramPanel;
+import ui.tmldd.TMLArchiDiagramToolBar;
+
+public class TestTMLADComponentsDisabling extends AbstractUITest {
+
+	private TMLArchiDiagramPanel diagramPanel;
+	
+	public TestTMLADComponentsDisabling() {
+		super();
+	}
+	
+	@Before
+    public void setUp() {
+		final TMLArchiDiagramToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI );
+        diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar );
+    }
+	
+	@Test
+    public void testDisableTGConnectingPointTMLAD() {
+        final CDElement element = new TGConnectingPointTMLAD( null, 0, -5, true, false, 0.5, 0.0 );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+	
+	@Test
+    public void testDisableTGConnectorTMLAD() {
+        final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TGComponent requestElement = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestElement, requestElement.getX(), requestElement.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElement.getTGConnectingPointAtIndex( 0 ),
+        												requestElement.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent actionElement = new TMLADActionState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( actionElement, actionElement.getX(), actionElement.getY(), false, true );
+        
+        final TGComponent con2 = new TGConnectorTMLAD( 	0, 
+														0,
+														diagramPanel.getMinX(),
+														diagramPanel.getMaxX(),
+														diagramPanel.getMinY(),
+														diagramPanel.getMaxY(),
+														false,
+														null,
+														diagramPanel,
+														requestElement.getTGConnectingPointAtIndex( 1 ),
+														actionElement.getTGConnectingPointAtIndex( 0 ),
+														new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElement = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true );
+        
+        final TGComponent con3 = new TGConnectorTMLAD( 	0, 
+														0,
+														diagramPanel.getMinX(),
+														diagramPanel.getMaxX(),
+														diagramPanel.getMinY(),
+														diagramPanel.getMaxY(),
+														false,
+														null,
+														diagramPanel,
+														actionElement.getTGConnectingPointAtIndex( 1 ),
+														stopElement.getTGConnectingPointAtIndex( 0 ),
+														new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+        
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( con3.canBeDisabled() );
+        
+        con1.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( requestElement.isEnabled() );
+        assertTrue( requestElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( actionElement.isEnabled() );
+        assertTrue( actionElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+        
+        con1.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestElement.isEnabled() );
+        assertTrue( requestElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( actionElement.isEnabled() );
+        assertTrue( actionElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        
+        con2.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestElement.isEnabled() );
+        assertTrue( requestElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( actionElement.isEnabled() );
+        assertTrue( actionElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+        
+        con2.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestElement.isEnabled() );
+        assertTrue( requestElement.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( actionElement.isEnabled() );
+        assertTrue( actionElement.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+	}
+	
+//	@Test
+//    public void testDisableTGConnectorTMLADWithChoice() {
+//        final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+//        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+//
+//        final TGComponent requestElement = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+//        diagramPanel.addComponent( requestElement, requestElement.getX(), requestElement.getY(), false, true );
+//
+//        final TGComponent con1 = new TGConnectorTMLAD( 	0, 
+//        												0,
+//        												diagramPanel.getMinX(),
+//        												diagramPanel.getMaxX(),
+//        												diagramPanel.getMinY(),
+//        												diagramPanel.getMaxY(),
+//        												false,
+//        												null,
+//        												diagramPanel,
+//        												startElement.getTGConnectingPointAtIndex( 0 ),
+//        												requestElement.getTGConnectingPointAtIndex( 0 ),
+//        												new Vector<Point>() );
+//        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+//
+//        final TGComponent actionElement = new TMLADActionState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+//        diagramPanel.addComponent( actionElement, actionElement.getX(), actionElement.getY(), false, true );
+//        
+//        final TGComponent con2 = new TGConnectorTMLAD( 	0, 
+//														0,
+//														diagramPanel.getMinX(),
+//														diagramPanel.getMaxX(),
+//														diagramPanel.getMinY(),
+//														diagramPanel.getMaxY(),
+//														false,
+//														null,
+//														diagramPanel,
+//														requestElement.getTGConnectingPointAtIndex( 1 ),
+//														actionElement.getTGConnectingPointAtIndex( 0 ),
+//														new Vector<Point>() );
+//        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+//
+//        final TGComponent stopElement = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+//        diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true );
+//        
+//        final TGComponent con3 = new TGConnectorTMLAD( 	0, 
+//														0,
+//														diagramPanel.getMinX(),
+//														diagramPanel.getMaxX(),
+//														diagramPanel.getMinY(),
+//														diagramPanel.getMaxY(),
+//														false,
+//														null,
+//														diagramPanel,
+//														actionElement.getTGConnectingPointAtIndex( 1 ),
+//														stopElement.getTGConnectingPointAtIndex( 0 ),
+//														new Vector<Point>() );
+//        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+//        
+//        assertTrue( con1.canBeDisabled() );
+//        assertTrue( con2.canBeDisabled() );
+//        assertFalse( con3.canBeDisabled() );
+//        
+//        con1.setEnabled( false );
+//        assertTrue( startElement.isEnabled() );
+//        assertTrue( con1.isEnabled() );
+//        assertFalse( requestElement.isEnabled() );
+//        assertTrue( con2.isEnabled() );
+//        assertFalse( actionElement.isEnabled() );
+//        assertTrue( con3.isEnabled() );
+//        assertTrue( stopElement.isEnabled() );
+//        
+//        con1.setEnabled( true );
+//        assertTrue( startElement.isEnabled() );
+//        assertTrue( con1.isEnabled() );
+//        assertTrue( requestElement.isEnabled() );
+//        assertTrue( con2.isEnabled() );
+//        assertTrue( actionElement.isEnabled() );
+//        assertTrue( con3.isEnabled() );
+//        assertTrue( stopElement.isEnabled() );
+//        
+//        con2.setEnabled( false );
+//        assertTrue( startElement.isEnabled() );
+//        assertTrue( con1.isEnabled() );
+//        assertTrue( requestElement.isEnabled() );
+//        assertTrue( con2.isEnabled() );
+//        assertFalse( actionElement.isEnabled() );
+//        assertTrue( con3.isEnabled() );
+//        assertTrue( stopElement.isEnabled() );
+//        
+//        con2.setEnabled( true );
+//        assertTrue( startElement.isEnabled() );
+//        assertTrue( con1.isEnabled() );
+//        assertTrue( requestElement.isEnabled() );
+//        assertTrue( con2.isEnabled() );
+//        assertTrue( actionElement.isEnabled() );
+//        assertTrue( con3.isEnabled() );
+//        assertTrue( stopElement.isEnabled() );
+//	}
+
+	@Test
+    public void testDisableTMLADActionState() {
+        final CDElement element = new TMLADActionState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADChoice() {
+        final TMLADChoice element = new TMLADChoice( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+        
+        element.setGuard( Boolean.TRUE.toString(), 0 );
+        TGComponent guard = element.getInternalTGComponent( 0 );
+        assertTrue( guard.canBeDisabled() );
+        
+        guard.setEnabled( false );
+        assertFalse( guard.isEnabled() );
+
+        guard.setEnabled( true );
+        assertTrue( guard.isEnabled() );
+
+        element.setGuard( null, 0 );
+        guard = element.getInternalTGComponent( 0 );
+        assertFalse( guard.canBeDisabled() );
+
+        element.setGuard( "", 0 );
+        guard = element.getInternalTGComponent( 0 );
+        assertFalse( guard.canBeDisabled() );
+
+        element.setGuard( TMLADChoice.EMPTY_GUARD_TEXT, 0 );
+        guard = element.getInternalTGComponent( 0 );
+        assertFalse( guard.canBeDisabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADDecrypt() {
+        final CDElement element = new TMLADDecrypt( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADDelay() {
+        final CDElement element = new TMLADDelay( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADDelayInterval() {
+        final CDElement element = new TMLADDelayInterval( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADEncrypt() {
+        final CDElement element = new TMLADEncrypt( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADExecC() {
+        final CDElement element = new TMLADExecC( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADExecCInterval() {
+        final CDElement element = new TMLADExecCInterval( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADExecI() {
+        final CDElement element = new TMLADExecI( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADExecIInterval() {
+        final CDElement element = new TMLADExecIInterval( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADForEverLoop() {
+        final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TADForLoop forLoop = new TMLADForEverLoop( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( forLoop, forLoop.getX(), forLoop.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElement.getTGConnectingPointAtIndex( 0 ),
+        												forLoop.getEnterLoopConnectingPoint(),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent requestInLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestInLoop, requestInLoop.getX(),requestInLoop.getY(), false, true );
+
+        final TGComponent con2 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												forLoop.getInsideLoopConnectingPoint(),
+        												requestInLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElementInLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementInLoop, stopElementInLoop.getX(), stopElementInLoop.getY(), false, true );
+
+        final TGComponent con3 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestInLoop.getTGConnectingPointAtIndex( 1 ),
+        												stopElementInLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+        
+        assertTrue( forLoop.canBeDisabled() );
+        
+        forLoop.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertFalse( forLoop.isEnabled() );
+        assertTrue( forLoop.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( requestInLoop.isEnabled() );
+        assertFalse( requestInLoop.canBeDisabled() );
+        assertFalse( con2.isEnabled() );
+        assertFalse( con2.canBeDisabled() );
+        assertFalse( stopElementInLoop.isEnabled() );
+        assertFalse( stopElementInLoop.canBeDisabled() );
+        assertFalse( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+
+        forLoop.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( forLoop.isEnabled() );
+        assertTrue( forLoop.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestInLoop.isEnabled() );
+        assertTrue( requestInLoop.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementInLoop.isEnabled() );
+        assertFalse( stopElementInLoop.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADForLoop() {
+        final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TADForLoop forLoop = new TMLADForLoop( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( forLoop, forLoop.getX(), forLoop.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElement.getTGConnectingPointAtIndex( 0 ),
+        												forLoop.getEnterLoopConnectingPoint(),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent requestInLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestInLoop, requestInLoop.getX(),requestInLoop.getY(), false, true );
+
+        final TGComponent con2 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												forLoop.getInsideLoopConnectingPoint(),
+        												requestInLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElementInLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementInLoop, stopElementInLoop.getX(), stopElementInLoop.getY(), false, true );
+
+        final TGComponent con3 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestInLoop.getTGConnectingPointAtIndex( 1 ),
+        												stopElementInLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+
+        final TGComponent requestExitLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestExitLoop, requestExitLoop.getX(),requestExitLoop.getY(), false, true );
+
+        final TGComponent con4 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												forLoop.getExitLoopConnectingPoint(),
+        												requestExitLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true );
+
+        final TGComponent stopElementExitLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementExitLoop, stopElementExitLoop.getX(), stopElementExitLoop.getY(), false, true );
+
+        final TGComponent con5 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestExitLoop.getTGConnectingPointAtIndex( 1 ),
+        												stopElementExitLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true );
+        
+        assertTrue( forLoop.canBeDisabled() );
+        
+        forLoop.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertFalse( forLoop.isEnabled() );
+        assertTrue( forLoop.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( requestInLoop.isEnabled() );
+        assertFalse( requestInLoop.canBeDisabled() );
+        assertFalse( con2.isEnabled() );
+        assertFalse( con2.canBeDisabled() );
+        assertFalse( stopElementInLoop.isEnabled() );
+        assertFalse( stopElementInLoop.canBeDisabled() );
+        assertFalse( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( requestExitLoop.isEnabled() );
+        assertTrue( requestExitLoop.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementExitLoop.isEnabled() );
+        assertFalse( stopElementExitLoop.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+
+        forLoop.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( forLoop.isEnabled() );
+        assertTrue( forLoop.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestInLoop.isEnabled() );
+        assertTrue( requestInLoop.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementInLoop.isEnabled() );
+        assertFalse( stopElementInLoop.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( requestExitLoop.isEnabled() );
+        assertTrue( requestExitLoop.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementExitLoop.isEnabled() );
+        assertFalse( stopElementExitLoop.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+    }
+	
+	@Test
+    public void testDisableTMLADForStaticLoop() {
+        final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TADForLoop forLoop = new TMLADForStaticLoop( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( forLoop, forLoop.getX(), forLoop.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElement.getTGConnectingPointAtIndex( 0 ),
+        												forLoop.getEnterLoopConnectingPoint(),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent requestInLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestInLoop, requestInLoop.getX(),requestInLoop.getY(), false, true );
+
+        final TGComponent con2 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												forLoop.getInsideLoopConnectingPoint(),
+        												requestInLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElementInLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementInLoop, stopElementInLoop.getX(), stopElementInLoop.getY(), false, true );
+
+        final TGComponent con3 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestInLoop.getTGConnectingPointAtIndex( 1 ),
+        												stopElementInLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+
+        final TGComponent requestExitLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestExitLoop, requestExitLoop.getX(),requestExitLoop.getY(), false, true );
+
+        final TGComponent con4 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												forLoop.getExitLoopConnectingPoint(),
+        												requestExitLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true );
+
+        final TGComponent stopElementExitLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementExitLoop, stopElementExitLoop.getX(), stopElementExitLoop.getY(), false, true );
+
+        final TGComponent con5 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestExitLoop.getTGConnectingPointAtIndex( 1 ),
+        												stopElementExitLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true );
+        
+        assertTrue( forLoop.canBeDisabled() );
+        
+        forLoop.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertFalse( forLoop.isEnabled() );
+        assertTrue( forLoop.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( requestInLoop.isEnabled() );
+        assertFalse( requestInLoop.canBeDisabled() );
+        assertFalse( con2.isEnabled() );
+        assertFalse( con2.canBeDisabled() );
+        assertFalse( stopElementInLoop.isEnabled() );
+        assertFalse( stopElementInLoop.canBeDisabled() );
+        assertFalse( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( requestExitLoop.isEnabled() );
+        assertTrue( requestExitLoop.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementExitLoop.isEnabled() );
+        assertFalse( stopElementExitLoop.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+
+        forLoop.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( forLoop.isEnabled() );
+        assertTrue( forLoop.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestInLoop.isEnabled() );
+        assertTrue( requestInLoop.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementInLoop.isEnabled() );
+        assertFalse( stopElementInLoop.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( requestExitLoop.isEnabled() );
+        assertTrue( requestExitLoop.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementExitLoop.isEnabled() );
+        assertFalse( stopElementExitLoop.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLADNotifiedEvent() {
+        final CDElement element = new TMLADNotifiedEvent( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableTMLADRandom() {
+        final CDElement element = new TMLADRandom( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableTMLADReadChannel() {
+        final CDElement element = new TMLADReadChannel( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableTMLADReadRequestArg() {
+        final CDElement element = new TMLADReadRequestArg( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableTMLADSelectEvt() {
+        final CDElement element = new TMLADSelectEvt( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLADSendEvent() {
+        final CDElement element = new TMLADSendEvent( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableTMLADSendRequest() {
+        final CDElement element = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableTMLADSequence() {
+        final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TMLADSequence sequence = new TMLADSequence( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( sequence, sequence.getX(), sequence.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElement.getTGConnectingPointAtIndex( 0 ),
+        												sequence.getEnterConnectingPoint(),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent requestBranch1 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestBranch1, requestBranch1.getX(),requestBranch1.getY(), false, true );
+
+        final TGComponent con2 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												sequence.getExitConnectingPoints().get( 0 ),
+        												requestBranch1.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElementBranch1 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch1, stopElementBranch1.getX(), stopElementBranch1.getY(), false, true );
+
+        final TGComponent con3 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestBranch1.getTGConnectingPointAtIndex( 1 ),
+        												stopElementBranch1.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+
+
+        final TGComponent requestBranch2 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestBranch2, requestBranch2.getX(),requestBranch2.getY(), false, true );
+
+        final TGComponent con4 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												sequence.getExitConnectingPoints().get( 1 ),
+        												requestBranch2.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true );
+
+        final TGComponent stopElementBranch2 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch2, stopElementBranch2.getX(), stopElementBranch2.getY(), false, true );
+
+        final TGComponent con5 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestBranch2.getTGConnectingPointAtIndex( 1 ),
+        												stopElementBranch2.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true );
+
+        final TGComponent requestBranch3 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestBranch3, requestBranch3.getX(),requestBranch3.getY(), false, true );
+
+        final TGComponent con6 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												sequence.getExitConnectingPoints().get( 2 ),
+        												requestBranch3.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true );
+
+        final TGComponent stopElementBranch3 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch1, stopElementBranch3.getX(), stopElementBranch3.getY(), false, true );
+
+        final TGComponent con7 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestBranch3.getTGConnectingPointAtIndex( 1 ),
+        												stopElementBranch3.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true );
+        
+        assertTrue( sequence.canBeDisabled() );
+        
+        sequence.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertFalse( sequence.isEnabled() );
+        assertTrue( sequence.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( requestBranch1.isEnabled() );
+        assertTrue( requestBranch1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementBranch1.isEnabled() );
+        assertFalse( stopElementBranch1.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertFalse( requestBranch2.isEnabled() );
+        assertTrue( requestBranch2.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementBranch2.isEnabled() );
+        assertFalse( stopElementBranch2.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+        assertFalse( requestBranch3.isEnabled() );
+        assertTrue( requestBranch3.canBeDisabled() );
+        assertTrue( con6.isEnabled() );
+        assertTrue( con6.canBeDisabled() );
+        assertTrue( stopElementBranch3.isEnabled() );
+        assertFalse( stopElementBranch3.canBeDisabled() );
+        assertTrue( con7.isEnabled() );
+        assertFalse( con7.canBeDisabled() );
+
+        sequence.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( sequence.isEnabled() );
+        assertTrue( sequence.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestBranch1.isEnabled() );
+        assertTrue( requestBranch1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementBranch1.isEnabled() );
+        assertFalse( stopElementBranch1.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( requestBranch2.isEnabled() );
+        assertTrue( requestBranch2.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementBranch2.isEnabled() );
+        assertFalse( stopElementBranch2.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+        assertTrue( requestBranch3.isEnabled() );
+        assertTrue( requestBranch3.canBeDisabled() );
+        assertTrue( con6.isEnabled() );
+        assertTrue( con6.canBeDisabled() );
+        assertTrue( stopElementBranch3.isEnabled() );
+        assertFalse( stopElementBranch3.canBeDisabled() );
+        assertTrue( con7.isEnabled() );
+        assertFalse( con7.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLADStartState() {
+        final CDElement element = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLADStopState() {
+        final CDElement element = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLADUnorderedSequence() {
+        final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TMLADUnorderedSequence sequence = new TMLADUnorderedSequence( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( sequence, sequence.getX(), sequence.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElement.getTGConnectingPointAtIndex( 0 ),
+        												sequence.getEnterConnectingPoint(),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent requestBranch1 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestBranch1, requestBranch1.getX(),requestBranch1.getY(), false, true );
+
+        final TGComponent con2 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												sequence.getExitConnectingPoints().get( 0 ),
+        												requestBranch1.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElementBranch1 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch1, stopElementBranch1.getX(), stopElementBranch1.getY(), false, true );
+
+        final TGComponent con3 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestBranch1.getTGConnectingPointAtIndex( 1 ),
+        												stopElementBranch1.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+
+
+        final TGComponent requestBranch2 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestBranch2, requestBranch2.getX(),requestBranch2.getY(), false, true );
+
+        final TGComponent con4 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												sequence.getExitConnectingPoints().get( 1 ),
+        												requestBranch2.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true );
+
+        final TGComponent stopElementBranch2 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch2, stopElementBranch2.getX(), stopElementBranch2.getY(), false, true );
+
+        final TGComponent con5 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestBranch2.getTGConnectingPointAtIndex( 1 ),
+        												stopElementBranch2.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true );
+
+        final TGComponent requestBranch3 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( requestBranch3, requestBranch3.getX(),requestBranch3.getY(), false, true );
+
+        final TGComponent con6 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												sequence.getExitConnectingPoints().get( 2 ),
+        												requestBranch3.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true );
+
+        final TGComponent stopElementBranch3 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch1, stopElementBranch3.getX(), stopElementBranch3.getY(), false, true );
+
+        final TGComponent con7 = new TGConnectorTMLAD( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												requestBranch3.getTGConnectingPointAtIndex( 1 ),
+        												stopElementBranch3.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true );
+        
+        assertTrue( sequence.canBeDisabled() );
+        
+        sequence.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertFalse( sequence.isEnabled() );
+        assertTrue( sequence.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( requestBranch1.isEnabled() );
+        assertTrue( requestBranch1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementBranch1.isEnabled() );
+        assertFalse( stopElementBranch1.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertFalse( requestBranch2.isEnabled() );
+        assertTrue( requestBranch2.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementBranch2.isEnabled() );
+        assertFalse( stopElementBranch2.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+        assertFalse( requestBranch3.isEnabled() );
+        assertTrue( requestBranch3.canBeDisabled() );
+        assertTrue( con6.isEnabled() );
+        assertTrue( con6.canBeDisabled() );
+        assertTrue( stopElementBranch3.isEnabled() );
+        assertFalse( stopElementBranch3.canBeDisabled() );
+        assertTrue( con7.isEnabled() );
+        assertFalse( con7.canBeDisabled() );
+
+        sequence.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( sequence.isEnabled() );
+        assertTrue( sequence.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( requestBranch1.isEnabled() );
+        assertTrue( requestBranch1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementBranch1.isEnabled() );
+        assertFalse( stopElementBranch1.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( requestBranch2.isEnabled() );
+        assertTrue( requestBranch2.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementBranch2.isEnabled() );
+        assertFalse( stopElementBranch2.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+        assertTrue( requestBranch3.isEnabled() );
+        assertTrue( requestBranch3.canBeDisabled() );
+        assertTrue( con6.isEnabled() );
+        assertTrue( con6.canBeDisabled() );
+        assertTrue( stopElementBranch3.isEnabled() );
+        assertFalse( stopElementBranch3.canBeDisabled() );
+        assertTrue( con7.isEnabled() );
+        assertFalse( con7.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLADWaitEvent() {
+        final CDElement element = new TMLADWaitEvent( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+
+	@Test
+    public void testDisableTMLADWriteChannel() {
+        final CDElement element = new TMLADWriteChannel( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        assertFalse( element.isEnabled() );
+
+        element.setEnabled( true );
+        assertTrue( element.isEnabled() );
+    }
+}
diff --git a/ttool/src/test/java/ui/tmlcp/TestTMLCPComponentsDisabling.java b/ttool/src/test/java/ui/tmlcp/TestTMLCPComponentsDisabling.java
new file mode 100644
index 0000000000000000000000000000000000000000..99b3aa7684450b84fd637d2e3c0c0da7cb8abc9e
--- /dev/null
+++ b/ttool/src/test/java/ui/tmlcp/TestTMLCPComponentsDisabling.java
@@ -0,0 +1,737 @@
+package ui.tmlcp;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Point;
+import java.util.Vector;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import ui.AbstractUITest;
+import ui.CDElement;
+import ui.TGComponent;
+import ui.ad.TADForLoop;
+import ui.tmldd.TMLArchiDiagramPanel;
+import ui.tmldd.TMLArchiDiagramToolBar;
+
+public class TestTMLCPComponentsDisabling extends AbstractUITest {
+
+	private TMLArchiDiagramPanel diagramPanel;
+	
+	public TestTMLCPComponentsDisabling() {
+		super();
+	}
+	
+	@Before
+    public void setUp() {
+		final TMLArchiDiagramToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI );
+        diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar );
+    }
+	
+	@Test
+    public void testDisableTGConnectingPointTMLCP() {
+        final CDElement element = new TGConnectingPointTMLCP( null, 0, -5, true, false, 0.5, 0.0 );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+	
+	@Test
+    public void testDisableTGConnectorTMLCP() {
+        final TGComponent startElement = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TGComponent refElement1 = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( refElement1, refElement1.getX(), refElement1.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElement.getTGConnectingPointAtIndex( 0 ),
+        												refElement1.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent refElement2 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( refElement2, refElement2.getX(), refElement2.getY(), false, true );
+        
+        final TGComponent con2 = new TGConnectorTMLCP( 	0, 
+														0,
+														diagramPanel.getMinX(),
+														diagramPanel.getMaxX(),
+														diagramPanel.getMinY(),
+														diagramPanel.getMaxY(),
+														false,
+														null,
+														diagramPanel,
+														refElement1.getTGConnectingPointAtIndex( 1 ),
+														refElement2.getTGConnectingPointAtIndex( 0 ),
+														new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElement = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true );
+        
+        final TGComponent con3 = new TGConnectorTMLCP( 	0, 
+														0,
+														diagramPanel.getMinX(),
+														diagramPanel.getMaxX(),
+														diagramPanel.getMinY(),
+														diagramPanel.getMaxY(),
+														false,
+														null,
+														diagramPanel,
+														refElement2.getTGConnectingPointAtIndex( 1 ),
+														stopElement.getTGConnectingPointAtIndex( 0 ),
+														new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+        
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( con3.canBeDisabled() );
+        
+        con1.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( refElement1.isEnabled() );
+        assertTrue( refElement1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( refElement2.isEnabled() );
+        assertTrue( refElement2.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+        
+        con1.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( refElement1.isEnabled() );
+        assertTrue( refElement1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( refElement2.isEnabled() );
+        assertTrue( refElement2.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        
+        con2.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( refElement1.isEnabled() );
+        assertTrue( refElement1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertFalse( refElement2.isEnabled() );
+        assertTrue( refElement2.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+        
+        con2.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( refElement1.isEnabled() );
+        assertTrue( refElement1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( refElement2.isEnabled() );
+        assertTrue( refElement2.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( stopElement.isEnabled() );
+        assertFalse( stopElement.canBeDisabled() );
+	}
+	
+	@Test
+    public void testDisableTMLADChoice() {
+        final TMLCPChoice element = new TMLCPChoice( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+        
+        element.setGuard( Boolean.TRUE.toString(), 0 );
+        TGComponent guard = element.getInternalTGComponent( 0 );
+        assertTrue( guard.canBeDisabled() );
+        
+        guard.setEnabled( false );
+        assertFalse( guard.isEnabled() );
+
+        guard.setEnabled( true );
+        assertTrue( guard.isEnabled() );
+
+        element.setGuard( null, 0 );
+        guard = element.getInternalTGComponent( 0 );
+        assertFalse( guard.canBeDisabled() );
+
+        element.setGuard( "", 0 );
+        guard = element.getInternalTGComponent( 0 );
+        assertFalse( guard.canBeDisabled() );
+
+        element.setGuard( TMLCPChoice.EMPTY_GUARD_TEXT, 0 );
+        guard = element.getInternalTGComponent( 0 );
+        assertFalse( guard.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLCPFork() {
+        final TGComponent startElement = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TMLCPFork fork = new TMLCPFork( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( fork, fork.getX(), fork.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElement.getTGConnectingPointAtIndex( 0 ),
+        												fork.getEnterConnectingPoint(),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent elementBranch1 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementBranch1, elementBranch1.getX(),elementBranch1.getY(), false, true );
+
+        final TGComponent con2 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												fork.getExitConnectingPoints().get( 0 ),
+        												elementBranch1.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElementBranch1 = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranch1, stopElementBranch1.getX(), stopElementBranch1.getY(), false, true );
+
+        final TGComponent con3 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementBranch1.getTGConnectingPointAtIndex( 1 ),
+        												stopElementBranch1.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+
+
+        final TGComponent elementBranch2 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementBranch2, elementBranch2.getX(), elementBranch2.getY(), false, true );
+
+        final TGComponent con4 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												fork.getExitConnectingPoints().get( 1 ),
+        												elementBranch2.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true );
+
+        final TMLCPJoin elementJoinBranch23 = new TMLCPJoin( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementJoinBranch23, elementJoinBranch23.getX(), elementJoinBranch23.getY(), false, true );
+
+        final TGComponent con5 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementBranch2.getTGConnectingPointAtIndex( 1 ),
+        												elementJoinBranch23.getEnterConnectingPoints().get( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true );
+
+        final TGComponent elementBranch3 = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementBranch3, elementBranch3.getX(),elementBranch3.getY(), false, true );
+
+        final TGComponent con6 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												fork.getExitConnectingPoints().get( 2 ),
+        												elementBranch3.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true );
+
+        final TGComponent con7 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementBranch3.getTGConnectingPointAtIndex( 1 ),
+        												elementJoinBranch23.getEnterConnectingPoints().get( 1 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true );
+
+        final TGComponent stopElementJoin = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementJoin, stopElementJoin.getX(), stopElementJoin.getY(), false, true );
+
+        final TGComponent con8 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementJoinBranch23.getExitConnectingPoint(),
+        												stopElementJoin.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con8, con8.getX(), con8.getY(), false, true );
+        
+        assertTrue( fork.canBeDisabled() );
+        
+        fork.setEnabled( false );
+        
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertFalse( fork.isEnabled() );
+        assertTrue( fork.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( elementBranch1.isEnabled() );
+        assertTrue( elementBranch1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementBranch1.isEnabled() );
+        assertFalse( stopElementBranch1.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertFalse( elementBranch2.isEnabled() );
+        assertTrue( elementBranch2.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( elementJoinBranch23.isEnabled() );
+        assertFalse( elementJoinBranch23.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertTrue( con5.canBeDisabled() );
+        assertFalse( elementBranch3.isEnabled() );
+        assertTrue( elementBranch3.canBeDisabled() );
+        assertTrue( con6.isEnabled() );
+        assertTrue( con6.canBeDisabled() );
+        assertTrue( con7.isEnabled() );
+        assertTrue( con7.canBeDisabled() );
+        assertTrue( stopElementJoin.isEnabled() );
+        assertFalse( stopElementJoin.canBeDisabled() );
+        assertTrue( con8.isEnabled() );
+        assertFalse( con8.canBeDisabled() );
+
+        fork.setEnabled( true );
+
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( fork.isEnabled() );
+        assertTrue( fork.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( elementBranch1.isEnabled() );
+        assertTrue( elementBranch1.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementBranch1.isEnabled() );
+        assertFalse( stopElementBranch1.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( elementBranch2.isEnabled() );
+        assertTrue( elementBranch2.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( elementJoinBranch23.isEnabled() );
+        assertFalse( elementJoinBranch23.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertTrue( con5.canBeDisabled() );
+        assertTrue( elementBranch3.isEnabled() );
+        assertTrue( elementBranch3.canBeDisabled() );
+        assertTrue( con6.isEnabled() );
+        assertTrue( con6.canBeDisabled() );
+        assertTrue( con7.isEnabled() );
+        assertTrue( con7.canBeDisabled() );
+        assertTrue( stopElementJoin.isEnabled() );
+        assertFalse( stopElementJoin.canBeDisabled() );
+        assertTrue( con8.isEnabled() );
+        assertFalse( con8.canBeDisabled() );
+    }
+	
+	@Test
+    public void testDisableTMLCPForLoop() {
+        final TGComponent startElement = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true );
+
+        final TADForLoop forLoop = new TMLCPForLoop( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( forLoop, forLoop.getX(), forLoop.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLCP( 	0,
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElement.getTGConnectingPointAtIndex( 0 ),
+        												forLoop.getEnterLoopConnectingPoint(),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TGComponent elementInLoop = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementInLoop, elementInLoop.getX(),elementInLoop.getY(), false, true );
+
+        final TGComponent con2 = new TGConnectorTMLCP( 	0,
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												forLoop.getInsideLoopConnectingPoint(),
+        												elementInLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent stopElementInLoop = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementInLoop, stopElementInLoop.getX(), stopElementInLoop.getY(), false, true );
+
+        final TGComponent con3 = new TGConnectorTMLCP( 	0,
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementInLoop.getTGConnectingPointAtIndex( 1 ),
+        												stopElementInLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+
+        final TGComponent elementExitLoop = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementExitLoop, elementExitLoop.getX(),elementExitLoop.getY(), false, true );
+
+        final TGComponent con4 = new TGConnectorTMLCP( 	0,
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												forLoop.getExitLoopConnectingPoint(),
+        												elementExitLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true );
+
+        final TGComponent stopElementExitLoop = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementExitLoop, stopElementExitLoop.getX(), stopElementExitLoop.getY(), false, true );
+
+        final TGComponent con5 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementExitLoop.getTGConnectingPointAtIndex( 1 ),
+        												stopElementExitLoop.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true );
+        
+        assertTrue( forLoop.canBeDisabled() );
+        
+        forLoop.setEnabled( false );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertFalse( forLoop.isEnabled() );
+        assertTrue( forLoop.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertFalse( elementInLoop.isEnabled() );
+        assertFalse( elementInLoop.canBeDisabled() );
+        assertFalse( con2.isEnabled() );
+        assertFalse( con2.canBeDisabled() );
+        assertFalse( stopElementInLoop.isEnabled() );
+        assertFalse( stopElementInLoop.canBeDisabled() );
+        assertFalse( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( elementExitLoop.isEnabled() );
+        assertTrue( elementExitLoop.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementExitLoop.isEnabled() );
+        assertFalse( stopElementExitLoop.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+
+        forLoop.setEnabled( true );
+        assertTrue( startElement.isEnabled() );
+        assertFalse( startElement.canBeDisabled() );
+        assertTrue( forLoop.isEnabled() );
+        assertTrue( forLoop.canBeDisabled() );
+        assertTrue( con1.isEnabled() );
+        assertTrue( con1.canBeDisabled() );
+        assertTrue( elementInLoop.isEnabled() );
+        assertTrue( elementInLoop.canBeDisabled() );
+        assertTrue( con2.isEnabled() );
+        assertTrue( con2.canBeDisabled() );
+        assertTrue( stopElementInLoop.isEnabled() );
+        assertFalse( stopElementInLoop.canBeDisabled() );
+        assertTrue( con3.isEnabled() );
+        assertFalse( con3.canBeDisabled() );
+        assertTrue( elementExitLoop.isEnabled() );
+        assertTrue( elementExitLoop.canBeDisabled() );
+        assertTrue( con4.isEnabled() );
+        assertTrue( con4.canBeDisabled() );
+        assertTrue( stopElementExitLoop.isEnabled() );
+        assertFalse( stopElementExitLoop.canBeDisabled() );
+        assertTrue( con5.isEnabled() );
+        assertFalse( con5.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLCPJoin() {
+        final TGComponent startElementBranch1 = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElementBranch1, startElementBranch1.getX(), startElementBranch1.getY(), false, true );
+
+        final TGComponent elementBranch1 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementBranch1, elementBranch1.getX(), elementBranch1.getY(), false, true );
+
+        final TGComponent con1 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElementBranch1.getTGConnectingPointAtIndex( 0 ),
+        												elementBranch1.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true );
+
+        final TMLCPJoin join = new TMLCPJoin( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( join, join.getX(), join.getY(), false, true );
+
+        final TGComponent con2 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementBranch1.getTGConnectingPointAtIndex( 1 ),
+        												join.getEnterConnectingPoints().get( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true );
+
+        final TGComponent startElementBranch2 = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElementBranch2, startElementBranch2.getX(), startElementBranch2.getY(), false, true );
+
+        final TGComponent elementBranch2 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementBranch2, elementBranch2.getX(), elementBranch2.getY(), false, true );
+
+        final TGComponent con3 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElementBranch2.getTGConnectingPointAtIndex( 0 ),
+        												elementBranch2.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true );
+
+        final TGComponent con4 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementBranch2.getTGConnectingPointAtIndex( 1 ),
+        												join.getEnterConnectingPoints().get( 1 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true );
+
+        final TGComponent startElementBranch3 = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( startElementBranch3, startElementBranch3.getX(), startElementBranch3.getY(), false, true );
+
+        final TGComponent elementBranch3 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementBranch3, elementBranch3.getX(), elementBranch3.getY(), false, true );
+
+        final TGComponent con5 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												startElementBranch3.getTGConnectingPointAtIndex( 0 ),
+        												elementBranch3.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true );
+
+        final TGComponent con6 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementBranch3.getTGConnectingPointAtIndex( 1 ),
+        												join.getEnterConnectingPoints().get( 2 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true );
+
+        final TGComponent elementBranchExit = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( elementBranchExit, elementBranchExit.getX(),elementBranchExit.getY(), false, true );
+
+        final TGComponent con7 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												join.getExitConnectingPoint(),
+        												elementBranch3.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true );
+
+        final TGComponent stopElementBranchExit = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        diagramPanel.addComponent( stopElementBranchExit, stopElementBranchExit.getX(), stopElementBranchExit.getY(), false, true );
+
+        final TGComponent con8 = new TGConnectorTMLCP( 	0, 
+        												0,
+        												diagramPanel.getMinX(),
+        												diagramPanel.getMaxX(),
+        												diagramPanel.getMinY(),
+        												diagramPanel.getMaxY(),
+        												false,
+        												null,
+        												diagramPanel,
+        												elementBranch3.getTGConnectingPointAtIndex( 1 ),
+        												stopElementBranchExit.getTGConnectingPointAtIndex( 0 ),
+        												new Vector<Point>() );
+        diagramPanel.addComponent( con8, con8.getX(), con8.getY(), false, true );
+        
+        assertTrue( join.isEnabled() );
+        assertFalse( join.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLCPRefAD() {
+        final CDElement element = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        
+        assertFalse( element.isEnabled() );
+        assertTrue( element.canBeDisabled() );
+
+        element.setEnabled( true );
+
+        assertTrue( element.isEnabled() );
+        assertTrue( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLCPRefSD() {
+        final CDElement element = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertTrue( element.canBeDisabled() );
+        
+        element.setEnabled( false );
+        
+        assertFalse( element.isEnabled() );
+        assertTrue( element.canBeDisabled() );
+
+        element.setEnabled( true );
+
+        assertTrue( element.isEnabled() );
+        assertTrue( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLCPStartState() {
+        final CDElement element = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+
+	@Test
+    public void testDisableTMLCPStopState() {
+        final CDElement element = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel );
+        
+        assertFalse( element.canBeDisabled() );
+    }
+}
diff --git a/ttool/src/test/java/ui/tmldd/TestTDiagramPanel.java b/ttool/src/test/java/ui/tmldd/TestTDiagramPanel.java
deleted file mode 100644
index b30d3df2da78d23ca66077a839a2740db42f8f58..0000000000000000000000000000000000000000
--- a/ttool/src/test/java/ui/tmldd/TestTDiagramPanel.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package ui.tmldd;
-
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import ui.AbstractUITest;
-
-public class TestTDiagramPanel extends AbstractUITest {
-//	static MainGUI mgui;
-	static TMLArchiDiagramToolBar tb;
-	static TMLArchiDiagramPanel tdp;
-	static TMLArchiBUSNode tgc;
-	
-	public TestTDiagramPanel() {
-		super();
-	}
-	
-	@Before
-    public void setUp() throws Exception {
-//		mgui = new MainGUI(false, false, false, false, false, false, false, false, false, false, false, true);
-//		mgui.build();	
-		//PluginManager.pluginManager = new PluginManager();
-		tb = new TMLArchiDiagramToolBar( mainGui );
-        tdp = new TMLArchiDiagramPanel( mainGui, tb);
-        tgc = new TMLArchiBUSNode(500, 500, 0, 1400, 0, 1900, true, null, tdp);
-        tdp.setComponentPointed(null);
-    }
-	
-	@Test
-    public void testMoveUp() {
-       tdp.upComponent();
-       tdp.setComponentPointed(tgc);
-       tdp.upComponent();
-       assertTrue(tgc.getY() == 499);
-       assertTrue(tgc.getX() == 500);
-    }
-	
-	@Test
-    public void testMoveDown() {
-       tdp.downComponent();
-       tdp.setComponentPointed(tgc);
-       tdp.downComponent();
-       assertTrue(tgc.getY() == 501);
-       assertTrue(tgc.getX() == 500);
-    }
-	
-	@Test
-    public void testMoveRight() {
-       tdp.rightComponent();
-       tdp.setComponentPointed(tgc);
-       tdp.rightComponent();
-       assertTrue(tgc.getX() == 501);
-       assertTrue(tgc.getY() == 500);
-    }
-	
-	@Test
-    public void testMoveLeft() {
-       tdp.leftComponent();
-       tdp.setComponentPointed(tgc);
-       tdp.leftComponent();
-       assertTrue(tgc.getX() == 499);
-       assertTrue(tgc.getY() == 500);
-    }
-
-}
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeButton.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeButton.txt
new file mode 100644
index 0000000000000000000000000000000000000000..440a15456e31c53a6e0bb533fbdc5c894acff523
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeButton.txt
@@ -0,0 +1,32 @@
+State machine Id=31
+start ID=117 / top level operator
+ nexts= 0:avatar transition/ ID=123 
+main ID=118 / top level operator
+ nexts= 0:avatar transition/ ID=124 
+state0 ID=119 / top level operator
+ nexts= 
+start ID=120 / in state state0 ID=119
+ nexts= 0:avatar transition/ ID=122 
+action_on_signal:push ID=121 / in state state0 ID=119
+ nexts= 0:avatar transition/ ID=125 
+avatar transition ID=122 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=121 
+weight=1.0
+
+avatar transition ID=123 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:main/ ID=118 
+weight=1.0
+
+avatar transition ID=124 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:state0/ ID=119 
+weight=1.0
+
+avatar transition ID=125 / top level operator
+ value:Transition (delay=(mechanicalDelay, ), ...) weight:1.0
+ nexts= 0:main/ ID=118 
+minDelay=mechanicalDelay maxDelay=mechanicalDelay
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeMachine.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeMachine.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0343a9d3830258fbb599497faf42a27c0e917a7b
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeMachine.txt
@@ -0,0 +1,106 @@
+State machine Id=15
+start ID=71 / top level operator
+ nexts= 0:avatar transition/ ID=116 
+WaitingForFirstCoin ID=72 / top level operator
+ nexts= 0:avatar transition/ ID=115 
+action_on_signal:getCoin ID=73 / top level operator
+ nexts= 0:avatar transition/ ID=109 
+WaitingForSecondCoin ID=74 / top level operator
+ nexts= 0:avatar transition/ ID=106 1:avatar transition/ ID=108 
+ejectState ID=75 / top level operator
+ nexts= 0:avatar transition/ ID=84 
+action_on_signal:ejectCoin ID=76 / top level operator
+ nexts= 0:avatar transition/ ID=103 
+action_on_signal:getCoin ID=77 / top level operator
+ nexts= 0:avatar transition/ ID=107 
+Beverage ID=78 / top level operator
+ nexts= 
+start ID=79 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=102 
+WaitingForSelection ID=80 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=89 1:avatar transition/ ID=95 2:avatar transition/ ID=101 
+action_on_signal:ejectCoin ID=81 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=85 
+action_on_signal:pushCoffeeButton ID=82 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=96 
+action_on_signal:pushTeaButton ID=83 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=90 
+avatar transition ID=84 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=76 
+weight=1.0
+
+avatar transition ID=85 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+nbOfCoins = 0 / 
+avatar transition ID=89 / top level operator
+ value:Transition (delay=(coinDelay, ), ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=81 
+minDelay=coinDelay maxDelay=coinDelay
+weight=1.0
+
+avatar transition ID=90 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+minCompute=teaMinDelay maxcompute=teaMaxDelay
+weight=1.0
+nbOfCoins = 0 / beverageReady () / 
+avatar transition ID=95 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=83 
+weight=1.0
+
+avatar transition ID=96 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+minCompute=coffeeMinDelay maxcompute=coffeeMaxDelay
+weight=1.0
+nbOfCoins = 0 / beverageReady () / 
+avatar transition ID=101 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=82 
+weight=1.0
+
+avatar transition ID=102 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForSelection/ ID=80 
+weight=1.0
+
+avatar transition ID=103 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+nbOfCoins = 0 / 
+avatar transition ID=106 / top level operator
+ value:Transition (delay=(coinDelay, ), ...) weight:1.0
+ nexts= 0:ejectState/ ID=75 
+minDelay=coinDelay maxDelay=coinDelay
+weight=1.0
+
+avatar transition ID=107 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:Beverage/ ID=78 
+weight=1.0
+
+avatar transition ID=108 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=77 
+weight=1.0
+
+avatar transition ID=109 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:WaitingForSecondCoin/ ID=74 
+weight=1.0
+nbOfCoins = nbOfCoins+x / 
+avatar transition ID=115 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=73 
+weight=1.0
+
+avatar transition ID=116 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/TeaButton.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/TeaButton.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b3b4cc674ff5961c08138c4853cdf8217b475794
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/TeaButton.txt
@@ -0,0 +1,23 @@
+State machine Id=35
+start ID=126 / top level operator
+ nexts= 0:avatar transition/ ID=131 
+main ID=127 / top level operator
+ nexts= 0:avatar transition/ ID=130 
+action_on_signal:push ID=128 / top level operator
+ nexts= 0:avatar transition/ ID=129 
+avatar transition ID=129 / top level operator
+ value:Transition (delay=(mechanicalDelay, ), ...) weight:1.0
+ nexts= 0:main/ ID=127 
+minDelay=mechanicalDelay maxDelay=mechanicalDelay
+weight=1.0
+
+avatar transition ID=130 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=128 
+weight=1.0
+
+avatar transition ID=131 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:main/ ID=127 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/Wallet.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/Wallet.txt
new file mode 100644
index 0000000000000000000000000000000000000000..71869bf80797d07a9da4bcddff5493282be9d120
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/Wallet.txt
@@ -0,0 +1,35 @@
+State machine Id=3
+start ID=41 / top level operator
+ nexts= 0:avatar transition/ ID=67 
+main ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=54 1:avatar transition/ ID=64 
+action_on_signal:putCoin ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=55 
+action_on_signal:getCoin ID=44 / top level operator
+ nexts= 0:avatar transition/ ID=45 
+avatar transition ID=45 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=54 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=44 
+weight=1.0
+
+avatar transition ID=55 / top level operator
+ value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0
+ nexts= 0:main/ ID=42 
+minDelay=minUserDelay maxDelay=maxUserDelay
+weight=1.0
+nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=64 / top level operator
+ value:Transition (guard=nbOfCoins>0, ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=43 
+weight=1.0
+guard nbOfCoins>0 / 
+avatar transition ID=67 / top level operator
+ value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+contentOfWallet (nbOfCoins) / 
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Alice_Disable_LibraryFunctionCall.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Alice_Disable_LibraryFunctionCall.txt
new file mode 100644
index 0000000000000000000000000000000000000000..139fb02882526f707c9ffeb45921c8bbaadc36de
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Alice_Disable_LibraryFunctionCall.txt
@@ -0,0 +1,17 @@
+State machine Id=22
+start ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=45 
+state0 ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=48 
+stop ID=44 / top level operator
+ nexts= 
+avatar transition ID=45 / top level operator
+ value:Transition (send__data = secretData, ...) weight:1.0
+ nexts= 0:state0/ ID=43 
+weight=1.0
+send__data = secretData / 
+avatar transition ID=48 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:stop/ ID=44 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompoInOutTransitions.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompoInOutTransitions.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7f5731ab06e2a59c246c89da19e970ffbdde7e2d
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompoInOutTransitions.txt
@@ -0,0 +1,98 @@
+State machine Id=15
+start ID=71 / top level operator
+ nexts= 0:avatar transition/ ID=112 
+WaitingForFirstCoin ID=72 / top level operator
+ nexts= 0:avatar transition/ ID=111 
+action_on_signal:getCoin ID=73 / top level operator
+ nexts= 0:avatar transition/ ID=105 
+WaitingForSecondCoin ID=74 / top level operator
+ nexts= 0:avatar transition/ ID=102 1:avatar transition/ ID=104 
+ejectState ID=75 / top level operator
+ nexts= 0:avatar transition/ ID=83 
+action_on_signal:ejectCoin ID=76 / top level operator
+ nexts= 0:avatar transition/ ID=99 
+action_on_signal:getCoin ID=77 / top level operator
+ nexts= 0:avatar transition/ ID=103 
+Beverage ID=78 / top level operator
+ nexts= 
+start ID=79 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=98 
+WaitingForSelection ID=80 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=84 1:avatar transition/ ID=91 2:avatar transition/ ID=97 
+action_on_signal:pushCoffeeButton ID=81 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=92 
+action_on_signal:pushTeaButton ID=82 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=85 
+avatar transition ID=83 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=76 
+weight=1.0
+
+avatar transition ID=84 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+
+avatar transition ID=85 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+minCompute=teaMinDelay maxcompute=teaMaxDelay
+weight=1.0
+nbOfCoins = 0 / beverageReady () / 
+avatar transition ID=91 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=82 
+weight=1.0
+
+avatar transition ID=92 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+minCompute=coffeeMinDelay maxcompute=coffeeMaxDelay
+weight=1.0
+nbOfCoins = 0 / beverageReady () / 
+avatar transition ID=97 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=81 
+weight=1.0
+
+avatar transition ID=98 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForSelection/ ID=80 
+weight=1.0
+
+avatar transition ID=99 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+nbOfCoins = 0 / 
+avatar transition ID=102 / top level operator
+ value:Transition (delay=(coinDelay, ), ...) weight:1.0
+ nexts= 0:ejectState/ ID=75 
+minDelay=coinDelay maxDelay=coinDelay
+weight=1.0
+
+avatar transition ID=103 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:Beverage/ ID=78 
+weight=1.0
+
+avatar transition ID=104 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=77 
+weight=1.0
+
+avatar transition ID=105 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:WaitingForSecondCoin/ ID=74 
+weight=1.0
+nbOfCoins = nbOfCoins+x / 
+avatar transition ID=111 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=73 
+weight=1.0
+
+avatar transition ID=112 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_ComponentBranch.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_ComponentBranch.txt
new file mode 100644
index 0000000000000000000000000000000000000000..027c26caae351a2879f48134b0c22911c35d452e
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_ComponentBranch.txt
@@ -0,0 +1,92 @@
+State machine Id=15
+start ID=71 / top level operator
+ nexts= 0:avatar transition/ ID=112 
+WaitingForFirstCoin ID=72 / top level operator
+ nexts= 0:avatar transition/ ID=106 
+WaitingForSecondCoin_converted_to_dummy_state ID=73 / top level operator
+ nexts= 0:avatar transition/ ID=103 1:avatar transition/ ID=105 
+action_on_signal:ejectCoin_converted_to_dummy_state ID=74 / top level operator
+ nexts= 0:avatar transition/ ID=100 
+action_on_signal:getCoin ID=75 / top level operator
+ nexts= 0:avatar transition/ ID=104 
+Beverage ID=76 / top level operator
+ nexts= 
+start ID=77 / in state Beverage ID=76
+ nexts= 0:avatar transition/ ID=99 
+WaitingForSelection ID=78 / in state Beverage ID=76
+ nexts= 0:avatar transition/ ID=86 1:avatar transition/ ID=92 2:avatar transition/ ID=98 
+action_on_signal:ejectCoin ID=79 / in state Beverage ID=76
+ nexts= 0:avatar transition/ ID=82 
+action_on_signal:pushCoffeeButton ID=80 / in state Beverage ID=76
+ nexts= 0:avatar transition/ ID=93 
+action_on_signal:pushTeaButton ID=81 / in state Beverage ID=76
+ nexts= 0:avatar transition/ ID=87 
+avatar transition ID=82 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+nbOfCoins = 0 / 
+avatar transition ID=86 / top level operator
+ value:Transition (delay=(coinDelay, ), ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=79 
+minDelay=coinDelay maxDelay=coinDelay
+weight=1.0
+
+avatar transition ID=87 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+minCompute=teaMinDelay maxcompute=teaMaxDelay
+weight=1.0
+nbOfCoins = 0 / beverageReady () / 
+avatar transition ID=92 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=81 
+weight=1.0
+
+avatar transition ID=93 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+minCompute=coffeeMinDelay maxcompute=coffeeMaxDelay
+weight=1.0
+nbOfCoins = 0 / beverageReady () / 
+avatar transition ID=98 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=80 
+weight=1.0
+
+avatar transition ID=99 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForSelection/ ID=78 
+weight=1.0
+
+avatar transition ID=100 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+nbOfCoins = 0 / 
+avatar transition ID=103 / top level operator
+ value:Transition (delay=(coinDelay, ), ...) weight:1.0
+ nexts= 0:action_on_signal:ejectCoin_converted_to_dummy_state/ ID=74 
+minDelay=coinDelay maxDelay=coinDelay
+weight=1.0
+
+avatar transition ID=104 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:Beverage/ ID=76 
+weight=1.0
+
+avatar transition ID=105 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=75 
+weight=1.0
+
+avatar transition ID=106 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:WaitingForSecondCoin_converted_to_dummy_state/ ID=73 
+weight=1.0
+nbOfCoins = nbOfCoins+x / 
+avatar transition ID=112 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompositeState.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompositeState.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fc34247a55fb7451821ee62a37ff9bf525307348
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompositeState.txt
@@ -0,0 +1,56 @@
+State machine Id=15
+start ID=71 / top level operator
+ nexts= 0:avatar transition/ ID=93 
+WaitingForFirstCoin ID=72 / top level operator
+ nexts= 0:avatar transition/ ID=92 
+action_on_signal:getCoin ID=73 / top level operator
+ nexts= 0:avatar transition/ ID=86 
+WaitingForSecondCoin ID=74 / top level operator
+ nexts= 0:avatar transition/ ID=84 1:avatar transition/ ID=85 
+ejectState ID=75 / top level operator
+ nexts= 0:avatar transition/ ID=78 
+action_on_signal:ejectCoin ID=76 / top level operator
+ nexts= 0:avatar transition/ ID=80 
+action_on_signal:getCoin ID=77 / top level operator
+ nexts= 0:avatar transition/ ID=79 
+avatar transition ID=78 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=76 
+weight=1.0
+
+avatar transition ID=79 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+
+avatar transition ID=80 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+nbOfCoins = 0 / 
+avatar transition ID=84 / top level operator
+ value:Transition (delay=(coinDelay, ), ...) weight:1.0
+ nexts= 0:ejectState/ ID=75 
+minDelay=coinDelay maxDelay=coinDelay
+weight=1.0
+
+avatar transition ID=85 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=77 
+weight=1.0
+
+avatar transition ID=86 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:WaitingForSecondCoin/ ID=74 
+weight=1.0
+nbOfCoins = nbOfCoins+x / 
+avatar transition ID=92 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=73 
+weight=1.0
+
+avatar transition ID=93 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_TransitionInfoComputeFor.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_TransitionInfoComputeFor.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4d3373cbe1e252a15a894dada437ba7c919b262a
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_TransitionInfoComputeFor.txt
@@ -0,0 +1,105 @@
+State machine Id=15
+start ID=71 / top level operator
+ nexts= 0:avatar transition/ ID=112 
+WaitingForFirstCoin ID=72 / top level operator
+ nexts= 0:avatar transition/ ID=111 
+action_on_signal:getCoin ID=73 / top level operator
+ nexts= 0:avatar transition/ ID=105 
+WaitingForSecondCoin ID=74 / top level operator
+ nexts= 0:avatar transition/ ID=102 1:avatar transition/ ID=104 
+ejectState ID=75 / top level operator
+ nexts= 0:avatar transition/ ID=84 
+action_on_signal:ejectCoin ID=76 / top level operator
+ nexts= 0:avatar transition/ ID=99 
+action_on_signal:getCoin ID=77 / top level operator
+ nexts= 0:avatar transition/ ID=103 
+Beverage ID=78 / top level operator
+ nexts= 
+start ID=79 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=98 
+WaitingForSelection ID=80 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=89 1:avatar transition/ ID=95 2:avatar transition/ ID=97 
+action_on_signal:ejectCoin ID=81 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=85 
+action_on_signal:pushCoffeeButton ID=82 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=96 
+action_on_signal:pushTeaButton ID=83 / in state Beverage ID=78
+ nexts= 0:avatar transition/ ID=90 
+avatar transition ID=84 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=76 
+weight=1.0
+
+avatar transition ID=85 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+nbOfCoins = 0 / 
+avatar transition ID=89 / top level operator
+ value:Transition (delay=(coinDelay, ), ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=81 
+minDelay=coinDelay maxDelay=coinDelay
+weight=1.0
+
+avatar transition ID=90 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+minCompute=teaMinDelay maxcompute=teaMaxDelay
+weight=1.0
+nbOfCoins = 0 / beverageReady () / 
+avatar transition ID=95 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=83 
+weight=1.0
+
+avatar transition ID=96 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+
+avatar transition ID=97 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=82 
+weight=1.0
+
+avatar transition ID=98 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForSelection/ ID=80 
+weight=1.0
+
+avatar transition ID=99 / top level operator
+ value:Transition (nbOfCoins = 0, ...) weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+nbOfCoins = 0 / 
+avatar transition ID=102 / top level operator
+ value:Transition (delay=(coinDelay, ), ...) weight:1.0
+ nexts= 0:ejectState/ ID=75 
+minDelay=coinDelay maxDelay=coinDelay
+weight=1.0
+
+avatar transition ID=103 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:Beverage/ ID=78 
+weight=1.0
+
+avatar transition ID=104 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=77 
+weight=1.0
+
+avatar transition ID=105 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:WaitingForSecondCoin/ ID=74 
+weight=1.0
+nbOfCoins = nbOfCoins+x / 
+avatar transition ID=111 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=73 
+weight=1.0
+
+avatar transition ID=112 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForFirstCoin/ ID=72 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ExpireTimer.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ExpireTimer.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8dbb0391aaf11f8b18070144fdc40d2a95fe5a27
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ExpireTimer.txt
@@ -0,0 +1,108 @@
+State machine Id=3
+start ID=35 / top level operator
+ nexts= 0:avatar transition/ ID=63 
+IDLE ID=36 / top level operator
+ nexts= 0:avatar transition/ ID=62 
+action_on_signal:INconreq ID=37 / top level operator
+ nexts= 0:avatar transition/ ID=56 
+SEND ID=38 / top level operator
+ nexts= 0:avatar transition/ ID=55 
+settimer__ATST1 ID=39 / top level operator
+ nexts= 0:avatar transition/ ID=54 
+  timer: ATST1
+action_on_signal:CR ID=40 / top level operator
+ nexts= 0:avatar transition/ ID=61 
+WAIT_FOR_CONF ID=41 / top level operator
+ nexts= 0:avatar transition/ ID=51 1:avatar transition/ ID=60 
+choice__0 ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=50 1:avatar transition/ ID=65 
+action_on_signal:INerror ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=74 
+action_on_signal:DR ID=44 / top level operator
+ nexts= 0:avatar transition/ ID=75 
+ERROR ID=45 / top level operator
+ nexts= 
+action_on_signal:CC ID=46 / top level operator
+ nexts= 0:avatar transition/ ID=53 
+resettimer__ATST1 ID=47 / top level operator
+ nexts= 0:avatar transition/ ID=52 
+  timer: ATST1
+action_on_signal:INconconf ID=48 / top level operator
+ nexts= 0:avatar transition/ ID=64 
+CONNECTED ID=49 / top level operator
+ nexts= 
+avatar transition ID=50 / top level operator
+ value:Transition (guard=not(retransmissionCounter<maxRetransmissions), ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=43 
+weight=1.0
+guard not(retransmissionCounter<maxRetransmissions) / 
+avatar transition ID=51 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:choice__0/ ID=42 
+weight=1.0
+
+avatar transition ID=52 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=48 
+weight=1.0
+
+avatar transition ID=53 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:resettimer__ATST1/ ID=47 
+weight=1.0
+
+avatar transition ID=54 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=40 
+weight=1.0
+
+avatar transition ID=55 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:settimer__ATST1/ ID=39 
+weight=1.0
+
+avatar transition ID=56 / top level operator
+ value:Transition (retransmissionCounter = 0, ...) weight:1.0
+ nexts= 0:SEND/ ID=38 
+weight=1.0
+retransmissionCounter = 0 / 
+avatar transition ID=60 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=46 
+weight=1.0
+
+avatar transition ID=61 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WAIT_FOR_CONF/ ID=41 
+weight=1.0
+
+avatar transition ID=62 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=37 
+weight=1.0
+
+avatar transition ID=63 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:IDLE/ ID=36 
+weight=1.0
+
+avatar transition ID=64 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:CONNECTED/ ID=49 
+weight=1.0
+
+avatar transition ID=65 / top level operator
+ value:Transition (guard=retransmissionCounter<maxRetransmissions, ...) weight:1.0
+ nexts= 0:SEND/ ID=38 
+weight=1.0
+retransmissionCounter = retransmissionCounter+1 / guard retransmissionCounter<maxRetransmissions / 
+avatar transition ID=74 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=44 
+weight=1.0
+
+avatar transition ID=75 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:ERROR/ ID=45 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ResetTimer.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ResetTimer.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2e83968444daaa252bc4247ae1316380da8f6ce1
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ResetTimer.txt
@@ -0,0 +1,108 @@
+State machine Id=3
+start ID=35 / top level operator
+ nexts= 0:avatar transition/ ID=63 
+IDLE ID=36 / top level operator
+ nexts= 0:avatar transition/ ID=62 
+action_on_signal:INconreq ID=37 / top level operator
+ nexts= 0:avatar transition/ ID=56 
+SEND ID=38 / top level operator
+ nexts= 0:avatar transition/ ID=54 
+settimer__ATST1 ID=39 / top level operator
+ nexts= 0:avatar transition/ ID=53 
+  timer: ATST1
+action_on_signal:CR ID=40 / top level operator
+ nexts= 0:avatar transition/ ID=61 
+WAIT_FOR_CONF ID=41 / top level operator
+ nexts= 0:avatar transition/ ID=55 1:avatar transition/ ID=60 
+expiretimer__ATST1 ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=51 
+  timer: ATST1
+choice__0 ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=50 1:avatar transition/ ID=65 
+action_on_signal:INerror ID=44 / top level operator
+ nexts= 0:avatar transition/ ID=74 
+action_on_signal:DR ID=45 / top level operator
+ nexts= 0:avatar transition/ ID=75 
+ERROR ID=46 / top level operator
+ nexts= 
+action_on_signal:CC ID=47 / top level operator
+ nexts= 0:avatar transition/ ID=52 
+action_on_signal:INconconf ID=48 / top level operator
+ nexts= 0:avatar transition/ ID=64 
+CONNECTED ID=49 / top level operator
+ nexts= 
+avatar transition ID=50 / top level operator
+ value:Transition (guard=not(retransmissionCounter<maxRetransmissions), ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=44 
+weight=1.0
+guard not(retransmissionCounter<maxRetransmissions) / 
+avatar transition ID=51 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:choice__0/ ID=43 
+weight=1.0
+
+avatar transition ID=52 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=48 
+weight=1.0
+
+avatar transition ID=53 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=40 
+weight=1.0
+
+avatar transition ID=54 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:settimer__ATST1/ ID=39 
+weight=1.0
+
+avatar transition ID=55 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:expiretimer__ATST1/ ID=42 
+weight=1.0
+
+avatar transition ID=56 / top level operator
+ value:Transition (retransmissionCounter = 0, ...) weight:1.0
+ nexts= 0:SEND/ ID=38 
+weight=1.0
+retransmissionCounter = 0 / 
+avatar transition ID=60 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=47 
+weight=1.0
+
+avatar transition ID=61 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WAIT_FOR_CONF/ ID=41 
+weight=1.0
+
+avatar transition ID=62 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=37 
+weight=1.0
+
+avatar transition ID=63 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:IDLE/ ID=36 
+weight=1.0
+
+avatar transition ID=64 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:CONNECTED/ ID=49 
+weight=1.0
+
+avatar transition ID=65 / top level operator
+ value:Transition (guard=retransmissionCounter<maxRetransmissions, ...) weight:1.0
+ nexts= 0:SEND/ ID=38 
+weight=1.0
+retransmissionCounter = retransmissionCounter+1 / guard retransmissionCounter<maxRetransmissions / 
+avatar transition ID=74 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=45 
+weight=1.0
+
+avatar transition ID=75 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:ERROR/ ID=46 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_SetTimer.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_SetTimer.txt
new file mode 100644
index 0000000000000000000000000000000000000000..28e8d7fc16738e4ce19c864fff3172dc1094402a
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_SetTimer.txt
@@ -0,0 +1,108 @@
+State machine Id=3
+start ID=35 / top level operator
+ nexts= 0:avatar transition/ ID=63 
+IDLE ID=36 / top level operator
+ nexts= 0:avatar transition/ ID=62 
+action_on_signal:INconreq ID=37 / top level operator
+ nexts= 0:avatar transition/ ID=56 
+SEND ID=38 / top level operator
+ nexts= 0:avatar transition/ ID=54 
+action_on_signal:CR ID=39 / top level operator
+ nexts= 0:avatar transition/ ID=61 
+WAIT_FOR_CONF ID=40 / top level operator
+ nexts= 0:avatar transition/ ID=55 1:avatar transition/ ID=60 
+expiretimer__ATST1 ID=41 / top level operator
+ nexts= 0:avatar transition/ ID=51 
+  timer: ATST1
+choice__0 ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=50 1:avatar transition/ ID=65 
+action_on_signal:INerror ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=74 
+action_on_signal:DR ID=44 / top level operator
+ nexts= 0:avatar transition/ ID=75 
+ERROR ID=45 / top level operator
+ nexts= 
+action_on_signal:CC ID=46 / top level operator
+ nexts= 0:avatar transition/ ID=53 
+resettimer__ATST1 ID=47 / top level operator
+ nexts= 0:avatar transition/ ID=52 
+  timer: ATST1
+action_on_signal:INconconf ID=48 / top level operator
+ nexts= 0:avatar transition/ ID=64 
+CONNECTED ID=49 / top level operator
+ nexts= 
+avatar transition ID=50 / top level operator
+ value:Transition (guard=not(retransmissionCounter<maxRetransmissions), ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=43 
+weight=1.0
+guard not(retransmissionCounter<maxRetransmissions) / 
+avatar transition ID=51 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:choice__0/ ID=42 
+weight=1.0
+
+avatar transition ID=52 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=48 
+weight=1.0
+
+avatar transition ID=53 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:resettimer__ATST1/ ID=47 
+weight=1.0
+
+avatar transition ID=54 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=39 
+weight=1.0
+
+avatar transition ID=55 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:expiretimer__ATST1/ ID=41 
+weight=1.0
+
+avatar transition ID=56 / top level operator
+ value:Transition (retransmissionCounter = 0, ...) weight:1.0
+ nexts= 0:SEND/ ID=38 
+weight=1.0
+retransmissionCounter = 0 / 
+avatar transition ID=60 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=46 
+weight=1.0
+
+avatar transition ID=61 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WAIT_FOR_CONF/ ID=40 
+weight=1.0
+
+avatar transition ID=62 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=37 
+weight=1.0
+
+avatar transition ID=63 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:IDLE/ ID=36 
+weight=1.0
+
+avatar transition ID=64 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:CONNECTED/ ID=49 
+weight=1.0
+
+avatar transition ID=65 / top level operator
+ value:Transition (guard=retransmissionCounter<maxRetransmissions, ...) weight:1.0
+ nexts= 0:SEND/ ID=38 
+weight=1.0
+retransmissionCounter = retransmissionCounter+1 / guard retransmissionCounter<maxRetransmissions / 
+avatar transition ID=74 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=44 
+weight=1.0
+
+avatar transition ID=75 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:ERROR/ ID=45 
+weight=1.0
+
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/PageLoader_Disable_Random.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/PageLoader_Disable_Random.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6c8a09190bacd96634bcd5db3478e22607af4342
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/PageLoader_Disable_Random.txt
@@ -0,0 +1,192 @@
+State machine Id=3
+start ID=80 / top level operator
+ nexts= 0:avatar transition/ ID=146 
+WaitingForPageToLoad ID=81 / top level operator
+ nexts= 0:avatar transition/ ID=147 
+action_on_signal:loadPage ID=82 / top level operator
+ nexts= 0:avatar transition/ ID=148 
+getFromMemory ID=83 / top level operator
+ nexts= 0:avatar transition/ ID=166 
+choice__0 ID=84 / top level operator
+ nexts= 0:avatar transition/ ID=132 1:avatar transition/ ID=133 2:avatar transition/ ID=138 3:avatar transition/ ID=167 
+gotItFromMemory ID=85 / top level operator
+ nexts= 0:avatar transition/ ID=172 
+PageReady ID=86 / top level operator
+ nexts= 0:avatar transition/ ID=173 
+action_on_signal:pageReady ID=87 / top level operator
+ nexts= 0:avatar transition/ ID=122 
+choice__1 ID=88 / top level operator
+ nexts= 0:avatar transition/ ID=104 1:avatar transition/ ID=175 
+Prefetching ID=89 / top level operator
+ nexts= 0:avatar transition/ ID=129 
+start ID=90 / in state Prefetching ID=89
+ nexts= 0:avatar transition/ ID=106 
+random ID=91 / in state Prefetching ID=89
+ nexts= 0:avatar transition/ ID=121 
+PagePrefetched ID=92 / in state Prefetching ID=89
+ nexts= 0:avatar transition/ ID=107 
+PutPrefetchInMemory ID=93 / top level operator
+ nexts= 0:avatar transition/ ID=108 
+PutPrefetchInMemoryDone ID=94 / top level operator
+ nexts= 0:avatar transition/ ID=105 
+action_on_signal:loadPage ID=95 / top level operator
+ nexts= 0:avatar transition/ ID=174 
+LoadingPage ID=96 / top level operator
+ nexts= 0:avatar transition/ ID=144 
+start ID=97 / in state LoadingPage ID=96
+ nexts= 0:avatar transition/ ID=149 
+random_converted_to_dummy_state ID=98 / in state LoadingPage ID=96
+ nexts= 0:avatar transition/ ID=150 
+PageLoaded ID=99 / top level operator
+ nexts= 0:avatar transition/ ID=143 
+PutPageInMemory ID=100 / top level operator
+ nexts= 0:avatar transition/ ID=153 
+PutPageInMemoryDone ID=101 / top level operator
+ nexts= 0:avatar transition/ ID=131 
+action_on_signal:loadPage ID=102 / top level operator
+ nexts= 0:avatar transition/ ID=145 
+Interrupted ID=103 / top level operator
+ nexts= 0:avatar transition/ ID=130 
+avatar transition ID=104 / top level operator
+ value:Transition (guard=not((pageid<doc__nbOfPages)and(not(memory__index1 == pageid))and(not(memory__index2 == pageid))and(not(memory__index3 == pageid))), ...) weight:1.0
+ nexts= 0:WaitingForPageToLoad/ ID=81 
+weight=1.0
+guard not((pageid<doc__nbOfPages)and(not(memory__index1 == pageid))and(not(memory__index2 == pageid))and(not(memory__index3 == pageid))) / 
+avatar transition ID=105 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForPageToLoad/ ID=81 
+weight=1.0
+
+avatar transition ID=106 / top level operator
+ value:Transition (delay=(minPageLoadingTime, maxPageLoadingTime), ...) weight:1.0
+ nexts= 0:random/ ID=91 
+minDelay=minPageLoadingTime maxDelay=maxPageLoadingTime
+weight=1.0
+
+avatar transition ID=107 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:PutPrefetchInMemory/ ID=93 
+weight=1.0
+
+avatar transition ID=108 / top level operator
+ value:Transition (memory__index1 = memory__index2, ...) weight:1.0
+ nexts= 0:PutPrefetchInMemoryDone/ ID=94 
+weight=1.0
+memory__index1 = memory__index2 / memory__data1 = memory__data2 / memory__index2 = memory__index3 / memory__data2 = memory__data3 / memory__index3 = pageid / memory__data3 = x / 
+avatar transition ID=121 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:PagePrefetched/ ID=92 
+weight=1.0
+
+avatar transition ID=122 / top level operator
+ value:Transition (pageid = pageid+1, ...) weight:1.0
+ nexts= 0:choice__1/ ID=88 
+weight=1.0
+pageid = pageid+1 / 
+avatar transition ID=129 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=95 
+weight=1.0
+
+avatar transition ID=130 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:getFromMemory/ ID=83 
+weight=1.0
+
+avatar transition ID=131 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:PageReady/ ID=86 
+weight=1.0
+
+avatar transition ID=132 / top level operator
+ value:Transition (guard=((not(pageid == memory__index3))and(not(pageid == memory__index1)))and(not(pageid == memory__index2)), ...) weight:1.0
+ nexts= 0:LoadingPage/ ID=96 
+weight=1.0
+guard ((not(pageid == memory__index3))and(not(pageid == memory__index1)))and(not(pageid == memory__index2)) / 
+avatar transition ID=133 / top level operator
+ value:Transition (guard=pageid == memory__index3, ...) weight:1.0
+ nexts= 0:gotItFromMemory/ ID=85 
+weight=1.0
+page__data = memory__data3 / guard pageid == memory__index3 / 
+avatar transition ID=138 / top level operator
+ value:Transition (guard=pageid == memory__index1, ...) weight:1.0
+ nexts= 0:gotItFromMemory/ ID=85 
+weight=1.0
+page__data = memory__data1 / guard pageid == memory__index1 / 
+avatar transition ID=143 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:PutPageInMemory/ ID=100 
+weight=1.0
+
+avatar transition ID=144 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=102 
+weight=1.0
+
+avatar transition ID=145 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:Interrupted/ ID=103 
+weight=1.0
+
+avatar transition ID=146 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForPageToLoad/ ID=81 
+weight=1.0
+
+avatar transition ID=147 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=82 
+weight=1.0
+
+avatar transition ID=148 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:getFromMemory/ ID=83 
+weight=1.0
+
+avatar transition ID=149 / top level operator
+ value:Transition (delay=(minPageLoadingTime, maxPageLoadingTime), ...) weight:1.0
+ nexts= 0:random_converted_to_dummy_state/ ID=98 
+minDelay=minPageLoadingTime maxDelay=maxPageLoadingTime
+weight=1.0
+
+avatar transition ID=150 / top level operator
+ value:Transition (page__data = x, ...) weight:1.0
+ nexts= 0:PageLoaded/ ID=99 
+weight=1.0
+page__data = x / 
+avatar transition ID=153 / top level operator
+ value:Transition (memory__index1 = memory__index2, ...) weight:1.0
+ nexts= 0:PutPageInMemoryDone/ ID=101 
+weight=1.0
+memory__index1 = memory__index2 / memory__data1 = memory__data2 / memory__index2 = memory__index3 / memory__data2 = memory__data3 / memory__index3 = pageid / memory__data3 = page__data / 
+avatar transition ID=166 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:choice__0/ ID=84 
+weight=1.0
+
+avatar transition ID=167 / top level operator
+ value:Transition (guard=pageid == memory__index2, ...) weight:1.0
+ nexts= 0:gotItFromMemory/ ID=85 
+weight=1.0
+page__data = memory__data2 / guard pageid == memory__index2 / 
+avatar transition ID=172 / top level operator
+ value:Transition (delay=(memoryPageAccessTime, memoryPageAccessTime), ...) weight:1.0
+ nexts= 0:PageReady/ ID=86 
+minDelay=memoryPageAccessTime maxDelay=memoryPageAccessTime
+weight=1.0
+
+avatar transition ID=173 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=87 
+weight=1.0
+
+avatar transition ID=174 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:WaitingForPageToLoad/ ID=81 
+weight=1.0
+
+avatar transition ID=175 / top level operator
+ value:Transition (guard=(pageid<doc__nbOfPages)and(not(memory__index1 == pageid))and(not(memory__index2 == pageid))and(not(memory__index3 == pageid)), ...) weight:1.0
+ nexts= 0:Prefetching/ ID=89 
+weight=1.0
+guard (pageid<doc__nbOfPages)and(not(memory__index1 == pageid))and(not(memory__index2 == pageid))and(not(memory__index3 == pageid)) / 
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_ReceiveSignal.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_ReceiveSignal.txt
new file mode 100644
index 0000000000000000000000000000000000000000..31fcddea18bc70ad1640e43b8217bed020cdc2b0
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_ReceiveSignal.txt
@@ -0,0 +1,28 @@
+State machine Id=3
+start ID=41 / top level operator
+ nexts= 0:avatar transition/ ID=65 
+main ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=44 1:avatar transition/ ID=62 
+action_on_signal:putCoin ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=53 
+avatar transition ID=44 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=53 / top level operator
+ value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0
+ nexts= 0:main/ ID=42 
+minDelay=minUserDelay maxDelay=maxUserDelay
+weight=1.0
+nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=62 / top level operator
+ value:Transition (guard=nbOfCoins>0, ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=43 
+weight=1.0
+guard nbOfCoins>0 / 
+avatar transition ID=65 / top level operator
+ value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+contentOfWallet (nbOfCoins) / 
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_SendSignal.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_SendSignal.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fc9ca86c0c51397dbfe8134fb1479d2252eb0945
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_SendSignal.txt
@@ -0,0 +1,35 @@
+State machine Id=3
+start ID=41 / top level operator
+ nexts= 0:avatar transition/ ID=67 
+main ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=54 1:avatar transition/ ID=64 
+action_on_signal:putCoin_converted_to_dummy_state ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=55 
+action_on_signal:getCoin ID=44 / top level operator
+ nexts= 0:avatar transition/ ID=45 
+avatar transition ID=45 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=54 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=44 
+weight=1.0
+
+avatar transition ID=55 / top level operator
+ value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0
+ nexts= 0:main/ ID=42 
+minDelay=minUserDelay maxDelay=maxUserDelay
+weight=1.0
+nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=64 / top level operator
+ value:Transition (guard=nbOfCoins>0, ...) weight:1.0
+ nexts= 0:action_on_signal:putCoin_converted_to_dummy_state/ ID=43 
+weight=1.0
+guard nbOfCoins>0 / 
+avatar transition ID=67 / top level operator
+ value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+contentOfWallet (nbOfCoins) / 
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_State.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_State.txt
new file mode 100644
index 0000000000000000000000000000000000000000..43c9e450f96ffc68e0c22c3ce72c37298a325492
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_State.txt
@@ -0,0 +1,39 @@
+State machine Id=3
+start ID=41 / top level operator
+ nexts= 0:avatar transition/ ID=69 
+main_converted_to_dummy_state ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=56 1:avatar transition/ ID=66 
+action_on_signal:putCoin ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=57 
+main_state_converted_to_stop ID=44 / top level operator
+ nexts= 
+main_state_converted_to_stop ID=45 / top level operator
+ nexts= 
+action_on_signal:getCoin ID=46 / top level operator
+ nexts= 0:avatar transition/ ID=47 
+avatar transition ID=47 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:main_state_converted_to_stop/ ID=45 
+weight=1.0
+nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=56 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=46 
+weight=1.0
+
+avatar transition ID=57 / top level operator
+ value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0
+ nexts= 0:main_state_converted_to_stop/ ID=44 
+minDelay=minUserDelay maxDelay=maxUserDelay
+weight=1.0
+nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=66 / top level operator
+ value:Transition (guard=nbOfCoins>0, ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=43 
+weight=1.0
+guard nbOfCoins>0 / 
+avatar transition ID=69 / top level operator
+ value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0
+ nexts= 0:main_converted_to_dummy_state/ ID=42 
+weight=1.0
+contentOfWallet (nbOfCoins) / 
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoAfterActions.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoAfterActions.txt
new file mode 100644
index 0000000000000000000000000000000000000000..92880c5e8cbff7174d832eb36c0052106ff32265
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoAfterActions.txt
@@ -0,0 +1,34 @@
+State machine Id=3
+start ID=41 / top level operator
+ nexts= 0:avatar transition/ ID=59 
+main ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=54 1:avatar transition/ ID=56 
+action_on_signal:putCoin ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=55 
+action_on_signal:getCoin ID=44 / top level operator
+ nexts= 0:avatar transition/ ID=45 
+avatar transition ID=45 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=54 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=44 
+weight=1.0
+
+avatar transition ID=55 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+
+avatar transition ID=56 / top level operator
+ value:Transition (guard=nbOfCoins>0, ...) weight:1.0
+ nexts= 0:action_on_signal/ ID=43 
+weight=1.0
+guard nbOfCoins>0 / 
+avatar transition ID=59 / top level operator
+ value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+contentOfWallet (nbOfCoins) / 
diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoGuard.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoGuard.txt
new file mode 100644
index 0000000000000000000000000000000000000000..86b20254ba1de2c832084bfefac3d90976788007
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoGuard.txt
@@ -0,0 +1,35 @@
+State machine Id=3
+start ID=41 / top level operator
+ nexts= 0:avatar transition/ ID=65 
+main ID=42 / top level operator
+ nexts= 0:avatar transition/ ID=54 1:avatar transition/ ID=64 
+action_on_signal:putCoin ID=43 / top level operator
+ nexts= 0:avatar transition/ ID=55 
+action_on_signal:getCoin ID=44 / top level operator
+ nexts= 0:avatar transition/ ID=45 
+avatar transition ID=45 / top level operator
+ value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=54 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=44 
+weight=1.0
+
+avatar transition ID=55 / top level operator
+ value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0
+ nexts= 0:main/ ID=42 
+minDelay=minUserDelay maxDelay=maxUserDelay
+weight=1.0
+nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / 
+avatar transition ID=64 / top level operator
+ value:Empty transition weight:1.0
+ nexts= 0:action_on_signal/ ID=43 
+weight=1.0
+
+avatar transition ID=65 / top level operator
+ value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0
+ nexts= 0:main/ ID=42 
+weight=1.0
+contentOfWallet (nbOfCoins) / 
diff --git a/ttool/src/test/resources/ui/diagram2avatar/input/CoffeeMachine_Avatar.xml b/ttool/src/test/resources/ui/diagram2avatar/input/CoffeeMachine_Avatar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4b806f16364b010281c0cdd8ea4121daef1f4501
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/input/CoffeeMachine_Avatar.xml
@@ -0,0 +1,5062 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<TURTLEGMODELING version="1.0beta">
+
+<Modeling type="Avatar Requirement" nameTab="AVATAR Requirements" >
+<AvatarRDPanel name="AVATAR RD" minX="10" maxX="1900" minY="10" maxY="900" zoom="1.0" >
+<COMPONENT type="5200" id="44" >
+<cdparam x="661" y="17" />
+<sizeparam width="278" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="59" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Requirement" value="req00" />
+<TGConnectingPoint num="0" id="1" />
+<TGConnectingPoint num="1" id="2" />
+<TGConnectingPoint num="2" id="3" />
+<TGConnectingPoint num="3" id="4" />
+<TGConnectingPoint num="4" id="5" />
+<TGConnectingPoint num="5" id="6" />
+<TGConnectingPoint num="6" id="7" />
+<TGConnectingPoint num="7" id="8" />
+<TGConnectingPoint num="8" id="9" />
+<TGConnectingPoint num="9" id="10" />
+<TGConnectingPoint num="10" id="11" />
+<TGConnectingPoint num="11" id="12" />
+<TGConnectingPoint num="12" id="13" />
+<TGConnectingPoint num="13" id="14" />
+<TGConnectingPoint num="14" id="15" />
+<TGConnectingPoint num="15" id="16" />
+<TGConnectingPoint num="16" id="17" />
+<TGConnectingPoint num="17" id="18" />
+<TGConnectingPoint num="18" id="19" />
+<TGConnectingPoint num="19" id="20" />
+<TGConnectingPoint num="20" id="21" />
+<TGConnectingPoint num="21" id="22" />
+<TGConnectingPoint num="22" id="23" />
+<TGConnectingPoint num="23" id="24" />
+<TGConnectingPoint num="24" id="25" />
+<TGConnectingPoint num="25" id="26" />
+<TGConnectingPoint num="26" id="27" />
+<TGConnectingPoint num="27" id="28" />
+<TGConnectingPoint num="28" id="29" />
+<TGConnectingPoint num="29" id="30" />
+<TGConnectingPoint num="30" id="31" />
+<TGConnectingPoint num="31" id="32" />
+<TGConnectingPoint num="32" id="33" />
+<TGConnectingPoint num="33" id="34" />
+<TGConnectingPoint num="34" id="35" />
+<TGConnectingPoint num="35" id="36" />
+<TGConnectingPoint num="36" id="37" />
+<TGConnectingPoint num="37" id="38" />
+<TGConnectingPoint num="38" id="39" />
+<TGConnectingPoint num="39" id="40" />
+<TGConnectingPoint num="40" id="41" />
+<TGConnectingPoint num="41" id="42" />
+<TGConnectingPoint num="42" id="43" />
+<extraparam>
+<textline data="A coin not used within 50 seconds " />
+<textline data="must be ejected" />
+<kind data="Functional" />
+<criticality data="Low" />
+<reqType data="0" />
+<id data="0" />
+<satisfied data="false" />
+<verified data="false" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5200" id="88" >
+<cdparam x="47" y="457" />
+<sizeparam width="301" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="113" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Requirement" value="Req_Availability" />
+<TGConnectingPoint num="0" id="45" />
+<TGConnectingPoint num="1" id="46" />
+<TGConnectingPoint num="2" id="47" />
+<TGConnectingPoint num="3" id="48" />
+<TGConnectingPoint num="4" id="49" />
+<TGConnectingPoint num="5" id="50" />
+<TGConnectingPoint num="6" id="51" />
+<TGConnectingPoint num="7" id="52" />
+<TGConnectingPoint num="8" id="53" />
+<TGConnectingPoint num="9" id="54" />
+<TGConnectingPoint num="10" id="55" />
+<TGConnectingPoint num="11" id="56" />
+<TGConnectingPoint num="12" id="57" />
+<TGConnectingPoint num="13" id="58" />
+<TGConnectingPoint num="14" id="59" />
+<TGConnectingPoint num="15" id="60" />
+<TGConnectingPoint num="16" id="61" />
+<TGConnectingPoint num="17" id="62" />
+<TGConnectingPoint num="18" id="63" />
+<TGConnectingPoint num="19" id="64" />
+<TGConnectingPoint num="20" id="65" />
+<TGConnectingPoint num="21" id="66" />
+<TGConnectingPoint num="22" id="67" />
+<TGConnectingPoint num="23" id="68" />
+<TGConnectingPoint num="24" id="69" />
+<TGConnectingPoint num="25" id="70" />
+<TGConnectingPoint num="26" id="71" />
+<TGConnectingPoint num="27" id="72" />
+<TGConnectingPoint num="28" id="73" />
+<TGConnectingPoint num="29" id="74" />
+<TGConnectingPoint num="30" id="75" />
+<TGConnectingPoint num="31" id="76" />
+<TGConnectingPoint num="32" id="77" />
+<TGConnectingPoint num="33" id="78" />
+<TGConnectingPoint num="34" id="79" />
+<TGConnectingPoint num="35" id="80" />
+<TGConnectingPoint num="36" id="81" />
+<TGConnectingPoint num="37" id="82" />
+<TGConnectingPoint num="38" id="83" />
+<TGConnectingPoint num="39" id="84" />
+<TGConnectingPoint num="40" id="85" />
+<TGConnectingPoint num="41" id="86" />
+<TGConnectingPoint num="42" id="87" />
+<extraparam>
+<textline data="The availability of the machine shall be" />
+<textline data="no less than 99.99%" />
+<kind data="Functional" />
+<criticality data="Low" />
+<reqType data="0" />
+<id data="0" />
+<satisfied data="false" />
+<verified data="false" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5200" id="132" >
+<cdparam x="10" y="182" />
+<sizeparam width="150" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="136" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Requirement" value="Req_CoffeeMachine" />
+<TGConnectingPoint num="0" id="89" />
+<TGConnectingPoint num="1" id="90" />
+<TGConnectingPoint num="2" id="91" />
+<TGConnectingPoint num="3" id="92" />
+<TGConnectingPoint num="4" id="93" />
+<TGConnectingPoint num="5" id="94" />
+<TGConnectingPoint num="6" id="95" />
+<TGConnectingPoint num="7" id="96" />
+<TGConnectingPoint num="8" id="97" />
+<TGConnectingPoint num="9" id="98" />
+<TGConnectingPoint num="10" id="99" />
+<TGConnectingPoint num="11" id="100" />
+<TGConnectingPoint num="12" id="101" />
+<TGConnectingPoint num="13" id="102" />
+<TGConnectingPoint num="14" id="103" />
+<TGConnectingPoint num="15" id="104" />
+<TGConnectingPoint num="16" id="105" />
+<TGConnectingPoint num="17" id="106" />
+<TGConnectingPoint num="18" id="107" />
+<TGConnectingPoint num="19" id="108" />
+<TGConnectingPoint num="20" id="109" />
+<TGConnectingPoint num="21" id="110" />
+<TGConnectingPoint num="22" id="111" />
+<TGConnectingPoint num="23" id="112" />
+<TGConnectingPoint num="24" id="113" />
+<TGConnectingPoint num="25" id="114" />
+<TGConnectingPoint num="26" id="115" />
+<TGConnectingPoint num="27" id="116" />
+<TGConnectingPoint num="28" id="117" />
+<TGConnectingPoint num="29" id="118" />
+<TGConnectingPoint num="30" id="119" />
+<TGConnectingPoint num="31" id="120" />
+<TGConnectingPoint num="32" id="121" />
+<TGConnectingPoint num="33" id="122" />
+<TGConnectingPoint num="34" id="123" />
+<TGConnectingPoint num="35" id="124" />
+<TGConnectingPoint num="36" id="125" />
+<TGConnectingPoint num="37" id="126" />
+<TGConnectingPoint num="38" id="127" />
+<TGConnectingPoint num="39" id="128" />
+<TGConnectingPoint num="40" id="129" />
+<TGConnectingPoint num="41" id="130" />
+<TGConnectingPoint num="42" id="131" />
+<extraparam>
+<textline data="Requirements of the coffee machine" />
+<kind data="Functional" />
+<criticality data="Low" />
+<reqType data="0" />
+<id data="0" />
+<satisfied data="false" />
+<verified data="false" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5201" id="148" >
+<cdparam x="627" y="376" />
+<sizeparam width="171" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="158" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarProperty" value="BeverageDeliverProperty" />
+<TGConnectingPoint num="0" id="133" />
+<TGConnectingPoint num="1" id="134" />
+<TGConnectingPoint num="2" id="135" />
+<TGConnectingPoint num="3" id="136" />
+<TGConnectingPoint num="4" id="137" />
+<TGConnectingPoint num="5" id="138" />
+<TGConnectingPoint num="6" id="139" />
+<TGConnectingPoint num="7" id="140" />
+<TGConnectingPoint num="8" id="141" />
+<TGConnectingPoint num="9" id="142" />
+<TGConnectingPoint num="10" id="143" />
+<TGConnectingPoint num="11" id="144" />
+<TGConnectingPoint num="12" id="145" />
+<TGConnectingPoint num="13" id="146" />
+<TGConnectingPoint num="14" id="147" />
+</COMPONENT>
+
+<COMPONENT type="5201" id="164" >
+<cdparam x="580" y="246" />
+<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="128" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarProperty" value="WalletCoinProperty" />
+<TGConnectingPoint num="0" id="149" />
+<TGConnectingPoint num="1" id="150" />
+<TGConnectingPoint num="2" id="151" />
+<TGConnectingPoint num="3" id="152" />
+<TGConnectingPoint num="4" id="153" />
+<TGConnectingPoint num="5" id="154" />
+<TGConnectingPoint num="6" id="155" />
+<TGConnectingPoint num="7" id="156" />
+<TGConnectingPoint num="8" id="157" />
+<TGConnectingPoint num="9" id="158" />
+<TGConnectingPoint num="10" id="159" />
+<TGConnectingPoint num="11" id="160" />
+<TGConnectingPoint num="12" id="161" />
+<TGConnectingPoint num="13" id="162" />
+<TGConnectingPoint num="14" id="163" />
+</COMPONENT>
+
+<COMPONENT type="5200" id="208" >
+<cdparam x="234" y="147" />
+<sizeparam width="271" height="104" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Requirement" value="req1" />
+<TGConnectingPoint num="0" id="165" />
+<TGConnectingPoint num="1" id="166" />
+<TGConnectingPoint num="2" id="167" />
+<TGConnectingPoint num="3" id="168" />
+<TGConnectingPoint num="4" id="169" />
+<TGConnectingPoint num="5" id="170" />
+<TGConnectingPoint num="6" id="171" />
+<TGConnectingPoint num="7" id="172" />
+<TGConnectingPoint num="8" id="173" />
+<TGConnectingPoint num="9" id="174" />
+<TGConnectingPoint num="10" id="175" />
+<TGConnectingPoint num="11" id="176" />
+<TGConnectingPoint num="12" id="177" />
+<TGConnectingPoint num="13" id="178" />
+<TGConnectingPoint num="14" id="179" />
+<TGConnectingPoint num="15" id="180" />
+<TGConnectingPoint num="16" id="181" />
+<TGConnectingPoint num="17" id="182" />
+<TGConnectingPoint num="18" id="183" />
+<TGConnectingPoint num="19" id="184" />
+<TGConnectingPoint num="20" id="185" />
+<TGConnectingPoint num="21" id="186" />
+<TGConnectingPoint num="22" id="187" />
+<TGConnectingPoint num="23" id="188" />
+<TGConnectingPoint num="24" id="189" />
+<TGConnectingPoint num="25" id="190" />
+<TGConnectingPoint num="26" id="191" />
+<TGConnectingPoint num="27" id="192" />
+<TGConnectingPoint num="28" id="193" />
+<TGConnectingPoint num="29" id="194" />
+<TGConnectingPoint num="30" id="195" />
+<TGConnectingPoint num="31" id="196" />
+<TGConnectingPoint num="32" id="197" />
+<TGConnectingPoint num="33" id="198" />
+<TGConnectingPoint num="34" id="199" />
+<TGConnectingPoint num="35" id="200" />
+<TGConnectingPoint num="36" id="201" />
+<TGConnectingPoint num="37" id="202" />
+<TGConnectingPoint num="38" id="203" />
+<TGConnectingPoint num="39" id="204" />
+<TGConnectingPoint num="40" id="205" />
+<TGConnectingPoint num="41" id="206" />
+<TGConnectingPoint num="42" id="207" />
+<extraparam>
+<textline data="A wallet must never contain a " />
+<textline data="negative number of coins" />
+<kind data="Functional" />
+<criticality data="Low" />
+<reqType data="0" />
+<id data="0" />
+<satisfied data="false" />
+<verified data="false" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5201" id="224" >
+<cdparam x="582" y="155" />
+<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="117" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarProperty" value="OneCoinProperty" />
+<TGConnectingPoint num="0" id="209" />
+<TGConnectingPoint num="1" id="210" />
+<TGConnectingPoint num="2" id="211" />
+<TGConnectingPoint num="3" id="212" />
+<TGConnectingPoint num="4" id="213" />
+<TGConnectingPoint num="5" id="214" />
+<TGConnectingPoint num="6" id="215" />
+<TGConnectingPoint num="7" id="216" />
+<TGConnectingPoint num="8" id="217" />
+<TGConnectingPoint num="9" id="218" />
+<TGConnectingPoint num="10" id="219" />
+<TGConnectingPoint num="11" id="220" />
+<TGConnectingPoint num="12" id="221" />
+<TGConnectingPoint num="13" id="222" />
+<TGConnectingPoint num="14" id="223" />
+</COMPONENT>
+
+<COMPONENT type="5200" id="268" >
+<cdparam x="192" y="16" />
+<sizeparam width="304" height="110" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Requirement" value="req0" />
+<TGConnectingPoint num="0" id="225" />
+<TGConnectingPoint num="1" id="226" />
+<TGConnectingPoint num="2" id="227" />
+<TGConnectingPoint num="3" id="228" />
+<TGConnectingPoint num="4" id="229" />
+<TGConnectingPoint num="5" id="230" />
+<TGConnectingPoint num="6" id="231" />
+<TGConnectingPoint num="7" id="232" />
+<TGConnectingPoint num="8" id="233" />
+<TGConnectingPoint num="9" id="234" />
+<TGConnectingPoint num="10" id="235" />
+<TGConnectingPoint num="11" id="236" />
+<TGConnectingPoint num="12" id="237" />
+<TGConnectingPoint num="13" id="238" />
+<TGConnectingPoint num="14" id="239" />
+<TGConnectingPoint num="15" id="240" />
+<TGConnectingPoint num="16" id="241" />
+<TGConnectingPoint num="17" id="242" />
+<TGConnectingPoint num="18" id="243" />
+<TGConnectingPoint num="19" id="244" />
+<TGConnectingPoint num="20" id="245" />
+<TGConnectingPoint num="21" id="246" />
+<TGConnectingPoint num="22" id="247" />
+<TGConnectingPoint num="23" id="248" />
+<TGConnectingPoint num="24" id="249" />
+<TGConnectingPoint num="25" id="250" />
+<TGConnectingPoint num="26" id="251" />
+<TGConnectingPoint num="27" id="252" />
+<TGConnectingPoint num="28" id="253" />
+<TGConnectingPoint num="29" id="254" />
+<TGConnectingPoint num="30" id="255" />
+<TGConnectingPoint num="31" id="256" />
+<TGConnectingPoint num="32" id="257" />
+<TGConnectingPoint num="33" id="258" />
+<TGConnectingPoint num="34" id="259" />
+<TGConnectingPoint num="35" id="260" />
+<TGConnectingPoint num="36" id="261" />
+<TGConnectingPoint num="37" id="262" />
+<TGConnectingPoint num="38" id="263" />
+<TGConnectingPoint num="39" id="264" />
+<TGConnectingPoint num="40" id="265" />
+<TGConnectingPoint num="41" id="266" />
+<TGConnectingPoint num="42" id="267" />
+<extraparam>
+<textline data="The coffee machine never has one coin " />
+<textline data=" inserted more than 50 units of time" />
+<kind data="Functional" />
+<criticality data="Low" />
+<reqType data="0" />
+<id data="123" />
+<satisfied data="false" />
+<verified data="false" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5200" id="312" >
+<cdparam x="206" y="294" />
+<sizeparam width="357" height="135" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Requirement" value="req2" />
+<TGConnectingPoint num="0" id="269" />
+<TGConnectingPoint num="1" id="270" />
+<TGConnectingPoint num="2" id="271" />
+<TGConnectingPoint num="3" id="272" />
+<TGConnectingPoint num="4" id="273" />
+<TGConnectingPoint num="5" id="274" />
+<TGConnectingPoint num="6" id="275" />
+<TGConnectingPoint num="7" id="276" />
+<TGConnectingPoint num="8" id="277" />
+<TGConnectingPoint num="9" id="278" />
+<TGConnectingPoint num="10" id="279" />
+<TGConnectingPoint num="11" id="280" />
+<TGConnectingPoint num="12" id="281" />
+<TGConnectingPoint num="13" id="282" />
+<TGConnectingPoint num="14" id="283" />
+<TGConnectingPoint num="15" id="284" />
+<TGConnectingPoint num="16" id="285" />
+<TGConnectingPoint num="17" id="286" />
+<TGConnectingPoint num="18" id="287" />
+<TGConnectingPoint num="19" id="288" />
+<TGConnectingPoint num="20" id="289" />
+<TGConnectingPoint num="21" id="290" />
+<TGConnectingPoint num="22" id="291" />
+<TGConnectingPoint num="23" id="292" />
+<TGConnectingPoint num="24" id="293" />
+<TGConnectingPoint num="25" id="294" />
+<TGConnectingPoint num="26" id="295" />
+<TGConnectingPoint num="27" id="296" />
+<TGConnectingPoint num="28" id="297" />
+<TGConnectingPoint num="29" id="298" />
+<TGConnectingPoint num="30" id="299" />
+<TGConnectingPoint num="31" id="300" />
+<TGConnectingPoint num="32" id="301" />
+<TGConnectingPoint num="33" id="302" />
+<TGConnectingPoint num="34" id="303" />
+<TGConnectingPoint num="35" id="304" />
+<TGConnectingPoint num="36" id="305" />
+<TGConnectingPoint num="37" id="306" />
+<TGConnectingPoint num="38" id="307" />
+<TGConnectingPoint num="39" id="308" />
+<TGConnectingPoint num="40" id="309" />
+<TGConnectingPoint num="41" id="310" />
+<TGConnectingPoint num="42" id="311" />
+<extraparam>
+<textline data="When the application starts, if the wallet contains " />
+<textline data="at least 2 coins, then a beverage may be delivered. " />
+<textline data="On the contrary, if the wallet contains less than 2" />
+<textline data="coins, no beverage will be delivered by the" />
+<textline data="machine." />
+<kind data="Functional" />
+<criticality data="Low" />
+<reqType data="0" />
+<id data="0" />
+<satisfied data="false" />
+<verified data="false" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="5202" id="314" >
+<cdparam x="659" y="79" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Requirement to Requirement" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="313" />
+<P1  x="661" y="47" id="1" />
+<P2  x="496" y="43" id="228" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5205" id="316" >
+<cdparam x="124" y="457" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Requirement to Requirement" value="&lt;&lt;composition&gt;&gt;" />
+<TGConnectingPoint num="0" id="315" />
+<P1  x="122" y="457" id="51" />
+<P2  x="122" y="302" id="100" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5205" id="318" >
+<cdparam x="244" y="315" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Requirement to Requirement" value="&lt;&lt;composition&gt;&gt;" />
+<TGConnectingPoint num="0" id="317" />
+<P1  x="206" y="327" id="269" />
+<P2  x="160" y="272" id="94" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5205" id="320" >
+<cdparam x="249" y="199" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Requirement to Requirement" value="&lt;&lt;composition&gt;&gt;" />
+<TGConnectingPoint num="0" id="319" />
+<P1  x="234" y="199" id="166" />
+<P2  x="160" y="212" id="92" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5205" id="322" >
+<cdparam x="237" y="98" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Requirement to Requirement" value="&lt;&lt;composition&gt;&gt;" />
+<TGConnectingPoint num="0" id="321" />
+<P1  x="192" y="98" id="227" />
+<P2  x="122" y="182" id="97" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5203" id="324" >
+<cdparam x="538" y="537" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from AvatarProperty to Requirement" value="&lt;&lt;verify&gt;&gt;" />
+<TGConnectingPoint num="0" id="323" />
+<P1  x="627" y="391" id="134" />
+<P2  x="563" y="361" id="285" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5203" id="326" >
+<cdparam x="545" y="329" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from AvatarProperty to Requirement" value="&lt;&lt;verify&gt;&gt;" />
+<TGConnectingPoint num="0" id="325" />
+<P1  x="580" y="261" id="150" />
+<P2  x="505" y="199" id="181" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5203" id="328" >
+<cdparam x="563" y="148" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from AvatarProperty to Requirement" value="&lt;&lt;verify&gt;&gt;" />
+<TGConnectingPoint num="0" id="327" />
+<P1  x="582" y="170" id="210" />
+<P2  x="496" y="98" id="242" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</AvatarRDPanel>
+
+<AvatarPDPanel name="AVATAR PD" minX="10" maxX="1402" minY="10" maxY="902" zoom="1.0000000000000004" >
+<CONNECTOR type="5312" id="330" >
+<cdparam x="582" y="248" />
+<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="reg" />
+<TGConnectingPoint num="0" id="329" />
+<P1  x="502" y="258" id="455" />
+<P2  x="502" y="334" id="343" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5310" id="336" >
+<cdparam x="247" y="616" />
+<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="333" />
+<TGConnectingPoint num="1" id="334" />
+<TGConnectingPoint num="2" id="335" />
+<P1  x="492" y="126" id="418" />
+<P2  x="492" y="209" id="459" />
+<Point x="467" y="147" />
+<Point x="467" y="192" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="331" >
+<father id="336" num="0" />
+<cdparam x="467" y="147" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="332" >
+<father id="336" num="1" />
+<cdparam x="467" y="192" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5311" id="338" >
+<cdparam x="280" y="200" />
+<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="337" />
+<P1  x="313" y="261" id="381" />
+<P2  x="361" y="261" id="356" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5312" id="340" >
+<cdparam x="473" y="190" />
+<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="reg" />
+<TGConnectingPoint num="0" id="339" />
+<P1  x="390" y="286" id="354" />
+<P2  x="390" y="331" id="348" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5311" id="342" >
+<cdparam x="276" y="190" />
+<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="341" />
+<P1  x="309" y="211" id="368" />
+<P2  x="361" y="211" id="355" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="5308" id="347" >
+<cdparam x="446" y="334" />
+<sizeparam width="112" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" />
+<infoparam name="TGComponent" value="WalletCoinProperty" />
+<TGConnectingPoint num="0" id="343" />
+<TGConnectingPoint num="1" id="344" />
+<TGConnectingPoint num="2" id="345" />
+<TGConnectingPoint num="3" id="346" />
+<extraparam>
+<liveness data="0" />
+<not data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5308" id="352" >
+<cdparam x="340" y="331" />
+<sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" />
+<infoparam name="TGComponent" value="oneCoinProperty" />
+<TGConnectingPoint num="0" id="348" />
+<TGConnectingPoint num="1" id="349" />
+<TGConnectingPoint num="2" id="350" />
+<TGConnectingPoint num="3" id="351" />
+<extraparam>
+<liveness data="1" />
+<not data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5302" id="365" >
+<cdparam x="361" y="187" />
+<sizeparam width="59" height="99" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" />
+<infoparam name="TGComponent" value="&gt;50" />
+<TGConnectingPoint num="0" id="353" />
+<TGConnectingPoint num="1" id="354" />
+<TGConnectingPoint num="2" id="355" />
+<TGConnectingPoint num="3" id="356" />
+<TGConnectingPoint num="4" id="357" />
+<TGConnectingPoint num="5" id="358" />
+<TGConnectingPoint num="6" id="359" />
+<TGConnectingPoint num="7" id="360" />
+<TGConnectingPoint num="8" id="361" />
+<TGConnectingPoint num="9" id="362" />
+<TGConnectingPoint num="10" id="363" />
+<TGConnectingPoint num="11" id="364" />
+</COMPONENT>
+
+<COMPONENT type="5300" id="416" >
+<cdparam x="150" y="142" />
+<sizeparam width="168" height="154" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" />
+<infoparam name="Block0" value="CoffeeMachine" />
+<TGConnectingPoint num="0" id="392" />
+<TGConnectingPoint num="1" id="393" />
+<TGConnectingPoint num="2" id="394" />
+<TGConnectingPoint num="3" id="395" />
+<TGConnectingPoint num="4" id="396" />
+<TGConnectingPoint num="5" id="397" />
+<TGConnectingPoint num="6" id="398" />
+<TGConnectingPoint num="7" id="399" />
+<TGConnectingPoint num="8" id="400" />
+<TGConnectingPoint num="9" id="401" />
+<TGConnectingPoint num="10" id="402" />
+<TGConnectingPoint num="11" id="403" />
+<TGConnectingPoint num="12" id="404" />
+<TGConnectingPoint num="13" id="405" />
+<TGConnectingPoint num="14" id="406" />
+<TGConnectingPoint num="15" id="407" />
+<TGConnectingPoint num="16" id="408" />
+<TGConnectingPoint num="17" id="409" />
+<TGConnectingPoint num="18" id="410" />
+<TGConnectingPoint num="19" id="411" />
+<TGConnectingPoint num="20" id="412" />
+<TGConnectingPoint num="21" id="413" />
+<TGConnectingPoint num="22" id="414" />
+<TGConnectingPoint num="23" id="415" />
+</COMPONENT>
+<SUBCOMPONENT type="5304" id="378" >
+<father id="416" num="0" />
+<cdparam x="170" y="191" />
+<sizeparam width="139" height="40" minWidth="100" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="366" />
+<TGConnectingPoint num="1" id="367" />
+<TGConnectingPoint num="2" id="368" />
+<TGConnectingPoint num="3" id="369" />
+<TGConnectingPoint num="4" id="370" />
+<TGConnectingPoint num="5" id="371" />
+<TGConnectingPoint num="6" id="372" />
+<TGConnectingPoint num="7" id="373" />
+<TGConnectingPoint num="8" id="374" />
+<TGConnectingPoint num="9" id="375" />
+<TGConnectingPoint num="10" id="376" />
+<TGConnectingPoint num="11" id="377" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5304" id="391" >
+<father id="416" num="1" />
+<cdparam x="165" y="241" />
+<sizeparam width="148" height="40" minWidth="100" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="379" />
+<TGConnectingPoint num="1" id="380" />
+<TGConnectingPoint num="2" id="381" />
+<TGConnectingPoint num="3" id="382" />
+<TGConnectingPoint num="4" id="383" />
+<TGConnectingPoint num="5" id="384" />
+<TGConnectingPoint num="6" id="385" />
+<TGConnectingPoint num="7" id="386" />
+<TGConnectingPoint num="8" id="387" />
+<TGConnectingPoint num="9" id="388" />
+<TGConnectingPoint num="10" id="389" />
+<TGConnectingPoint num="11" id="390" />
+</SUBCOMPONENT>
+
+<COMPONENT type="5300" id="454" >
+<cdparam x="459" y="61" />
+<sizeparam width="150" height="116" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" />
+<infoparam name="Block0" value="Wallet" />
+<TGConnectingPoint num="0" id="430" />
+<TGConnectingPoint num="1" id="431" />
+<TGConnectingPoint num="2" id="432" />
+<TGConnectingPoint num="3" id="433" />
+<TGConnectingPoint num="4" id="434" />
+<TGConnectingPoint num="5" id="435" />
+<TGConnectingPoint num="6" id="436" />
+<TGConnectingPoint num="7" id="437" />
+<TGConnectingPoint num="8" id="438" />
+<TGConnectingPoint num="9" id="439" />
+<TGConnectingPoint num="10" id="440" />
+<TGConnectingPoint num="11" id="441" />
+<TGConnectingPoint num="12" id="442" />
+<TGConnectingPoint num="13" id="443" />
+<TGConnectingPoint num="14" id="444" />
+<TGConnectingPoint num="15" id="445" />
+<TGConnectingPoint num="16" id="446" />
+<TGConnectingPoint num="17" id="447" />
+<TGConnectingPoint num="18" id="448" />
+<TGConnectingPoint num="19" id="449" />
+<TGConnectingPoint num="20" id="450" />
+<TGConnectingPoint num="21" id="451" />
+<TGConnectingPoint num="22" id="452" />
+<TGConnectingPoint num="23" id="453" />
+</COMPONENT>
+<SUBCOMPONENT type="5303" id="429" >
+<father id="454" num="0" />
+<cdparam x="492" y="102" />
+<sizeparam width="100" height="49" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="50" minY="0" maxY="67" />
+<infoparam name="TGComponent" value="nbOfCoins" />
+<TGConnectingPoint num="0" id="417" />
+<TGConnectingPoint num="1" id="418" />
+<TGConnectingPoint num="2" id="419" />
+<TGConnectingPoint num="3" id="420" />
+<TGConnectingPoint num="4" id="421" />
+<TGConnectingPoint num="5" id="422" />
+<TGConnectingPoint num="6" id="423" />
+<TGConnectingPoint num="7" id="424" />
+<TGConnectingPoint num="8" id="425" />
+<TGConnectingPoint num="9" id="426" />
+<TGConnectingPoint num="10" id="427" />
+<TGConnectingPoint num="11" id="428" />
+<extraparam>
+<Toggle value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5306" id="466" >
+<cdparam x="467" y="209" />
+<sizeparam width="100" height="49" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" />
+<infoparam name="TGComponent" value="nbOfCoins &gt;= 0" />
+<TGConnectingPoint num="0" id="455" />
+<TGConnectingPoint num="1" id="456" />
+<TGConnectingPoint num="2" id="457" />
+<TGConnectingPoint num="3" id="458" />
+<TGConnectingPoint num="4" id="459" />
+<TGConnectingPoint num="5" id="460" />
+<TGConnectingPoint num="6" id="461" />
+<TGConnectingPoint num="7" id="462" />
+<TGConnectingPoint num="8" id="463" />
+<TGConnectingPoint num="9" id="464" />
+<TGConnectingPoint num="10" id="465" />
+<extraparam>
+<Toggle value="" />
+</extraparam>
+</COMPONENT>
+
+
+</AvatarPDPanel>
+
+<AvatarPDPanel name="AVATAR PD" minX="10" maxX="1400" minY="10" maxY="1400" zoom="1.0" >
+<CONNECTOR type="5312" id="468" >
+<cdparam x="580" y="547" />
+<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="reg" />
+<TGConnectingPoint num="0" id="467" />
+<P1  x="634" y="495" id="643" />
+<P2  x="635" y="562" id="500" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5312" id="470" >
+<cdparam x="506" y="493" />
+<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="reg" />
+<TGConnectingPoint num="0" id="469" />
+<P1  x="577" y="471" id="654" />
+<P2  x="654" y="495" id="644" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5312" id="472" >
+<cdparam x="694" y="460" />
+<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="reg" />
+<TGConnectingPoint num="0" id="471" />
+<P1  x="694" y="472" id="496" />
+<P2  x="674" y="505" id="645" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5311" id="478" >
+<cdparam x="581" y="133" />
+<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="475" />
+<TGConnectingPoint num="1" id="476" />
+<TGConnectingPoint num="2" id="477" />
+<P1  x="581" y="154" id="551" />
+<P2  x="546" y="305" id="621" />
+<Point x="518" y="154" />
+<Point x="518" y="305" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="473" >
+<father id="478" num="0" />
+<cdparam x="518" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="474" >
+<father id="478" num="1" />
+<cdparam x="518" y="305" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5311" id="482" >
+<cdparam x="631" y="143" />
+<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="480" />
+<TGConnectingPoint num="1" id="481" />
+<P1  x="631" y="164" id="546" />
+<P2  x="667" y="310" id="608" />
+<Point x="631" y="310" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="479" >
+<father id="482" num="0" />
+<cdparam x="631" y="310" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5312" id="484" >
+<cdparam x="695" y="396" />
+<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="reg" />
+<TGConnectingPoint num="0" id="483" />
+<P1  x="696" y="385" id="607" />
+<P2  x="694" y="417" id="495" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5310" id="488" >
+<cdparam x="877" y="168" />
+<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="486" />
+<TGConnectingPoint num="1" id="487" />
+<P1  x="721" y="158" id="557" />
+<P2  x="700" y="204" id="598" />
+<Point x="700" y="158" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="485" >
+<father id="488" num="0" />
+<cdparam x="700" y="158" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5312" id="490" >
+<cdparam x="915" y="307" />
+<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="reg" />
+<TGConnectingPoint num="0" id="489" />
+<P1  x="710" y="254" id="594" />
+<P2  x="711" y="285" id="606" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5312" id="492" >
+<cdparam x="993" y="581" />
+<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="reg" />
+<TGConnectingPoint num="0" id="491" />
+<P1  x="576" y="385" id="620" />
+<P2  x="577" y="416" id="653" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5311" id="494" >
+<cdparam x="426" y="264" />
+<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="493" />
+<P1  x="491" y="345" id="507" />
+<P2  x="546" y="345" id="625" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="5308" id="499" >
+<cdparam x="644" y="417" />
+<sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="TGComponent" value="prop01" />
+<TGConnectingPoint num="0" id="495" />
+<TGConnectingPoint num="1" id="496" />
+<TGConnectingPoint num="2" id="497" />
+<TGConnectingPoint num="3" id="498" />
+<extraparam>
+<liveness data="1" />
+<not data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5308" id="504" >
+<cdparam x="562" y="562" />
+<sizeparam width="146" height="54" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="TGComponent" value="BeverageDeliverProperty" />
+<TGConnectingPoint num="0" id="500" />
+<TGConnectingPoint num="1" id="501" />
+<TGConnectingPoint num="2" id="502" />
+<TGConnectingPoint num="3" id="503" />
+<extraparam>
+<liveness data="0" />
+<not data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5300" id="542" >
+<cdparam x="372" y="227" />
+<sizeparam width="132" height="153" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Block0" value="CoffeeMachine" />
+<TGConnectingPoint num="0" id="518" />
+<TGConnectingPoint num="1" id="519" />
+<TGConnectingPoint num="2" id="520" />
+<TGConnectingPoint num="3" id="521" />
+<TGConnectingPoint num="4" id="522" />
+<TGConnectingPoint num="5" id="523" />
+<TGConnectingPoint num="6" id="524" />
+<TGConnectingPoint num="7" id="525" />
+<TGConnectingPoint num="8" id="526" />
+<TGConnectingPoint num="9" id="527" />
+<TGConnectingPoint num="10" id="528" />
+<TGConnectingPoint num="11" id="529" />
+<TGConnectingPoint num="12" id="530" />
+<TGConnectingPoint num="13" id="531" />
+<TGConnectingPoint num="14" id="532" />
+<TGConnectingPoint num="15" id="533" />
+<TGConnectingPoint num="16" id="534" />
+<TGConnectingPoint num="17" id="535" />
+<TGConnectingPoint num="18" id="536" />
+<TGConnectingPoint num="19" id="537" />
+<TGConnectingPoint num="20" id="538" />
+<TGConnectingPoint num="21" id="539" />
+<TGConnectingPoint num="22" id="540" />
+<TGConnectingPoint num="23" id="541" />
+</COMPONENT>
+<SUBCOMPONENT type="5304" id="517" >
+<father id="542" num="0" />
+<cdparam x="391" y="326" />
+<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="32" minY="0" maxY="114" />
+<infoparam name="TGComponent" value="beverageReady" />
+<TGConnectingPoint num="0" id="505" />
+<TGConnectingPoint num="1" id="506" />
+<TGConnectingPoint num="2" id="507" />
+<TGConnectingPoint num="3" id="508" />
+<TGConnectingPoint num="4" id="509" />
+<TGConnectingPoint num="5" id="510" />
+<TGConnectingPoint num="6" id="511" />
+<TGConnectingPoint num="7" id="512" />
+<TGConnectingPoint num="8" id="513" />
+<TGConnectingPoint num="9" id="514" />
+<TGConnectingPoint num="10" id="515" />
+<TGConnectingPoint num="11" id="516" />
+</SUBCOMPONENT>
+
+<COMPONENT type="5300" id="593" >
+<cdparam x="563" y="78" />
+<sizeparam width="268" height="115" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Block0" value="Wallet" />
+<TGConnectingPoint num="0" id="569" />
+<TGConnectingPoint num="1" id="570" />
+<TGConnectingPoint num="2" id="571" />
+<TGConnectingPoint num="3" id="572" />
+<TGConnectingPoint num="4" id="573" />
+<TGConnectingPoint num="5" id="574" />
+<TGConnectingPoint num="6" id="575" />
+<TGConnectingPoint num="7" id="576" />
+<TGConnectingPoint num="8" id="577" />
+<TGConnectingPoint num="9" id="578" />
+<TGConnectingPoint num="10" id="579" />
+<TGConnectingPoint num="11" id="580" />
+<TGConnectingPoint num="12" id="581" />
+<TGConnectingPoint num="13" id="582" />
+<TGConnectingPoint num="14" id="583" />
+<TGConnectingPoint num="15" id="584" />
+<TGConnectingPoint num="16" id="585" />
+<TGConnectingPoint num="17" id="586" />
+<TGConnectingPoint num="18" id="587" />
+<TGConnectingPoint num="19" id="588" />
+<TGConnectingPoint num="20" id="589" />
+<TGConnectingPoint num="21" id="590" />
+<TGConnectingPoint num="22" id="591" />
+<TGConnectingPoint num="23" id="592" />
+</COMPONENT>
+<SUBCOMPONENT type="5304" id="555" >
+<father id="593" num="0" />
+<cdparam x="581" y="125" />
+<sizeparam width="100" height="39" minWidth="100" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="543" />
+<TGConnectingPoint num="1" id="544" />
+<TGConnectingPoint num="2" id="545" />
+<TGConnectingPoint num="3" id="546" />
+<TGConnectingPoint num="4" id="547" />
+<TGConnectingPoint num="5" id="548" />
+<TGConnectingPoint num="6" id="549" />
+<TGConnectingPoint num="7" id="550" />
+<TGConnectingPoint num="8" id="551" />
+<TGConnectingPoint num="9" id="552" />
+<TGConnectingPoint num="10" id="553" />
+<TGConnectingPoint num="11" id="554" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5303" id="568" >
+<father id="593" num="1" />
+<cdparam x="721" y="133" />
+<sizeparam width="100" height="50" minWidth="100" minHeight="0" 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" />
+<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" />
+<extraparam>
+<Toggle value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5306" id="605" >
+<cdparam x="675" y="204" />
+<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="TGComponent" value="nbOfCoins &gt; 1" />
+<TGConnectingPoint num="0" id="594" />
+<TGConnectingPoint num="1" id="595" />
+<TGConnectingPoint num="2" id="596" />
+<TGConnectingPoint num="3" id="597" />
+<TGConnectingPoint num="4" id="598" />
+<TGConnectingPoint num="5" id="599" />
+<TGConnectingPoint num="6" id="600" />
+<TGConnectingPoint num="7" id="601" />
+<TGConnectingPoint num="8" id="602" />
+<TGConnectingPoint num="9" id="603" />
+<TGConnectingPoint num="10" id="604" />
+<extraparam>
+<Toggle value="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5302" id="618" >
+<cdparam x="667" y="285" />
+<sizeparam width="59" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="TGComponent" value="=0" />
+<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" />
+</COMPONENT>
+
+<COMPONENT type="5301" id="639" >
+<cdparam x="546" y="285" />
+<sizeparam width="60" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="TGComponent" value="&lt;&lt;LS&gt;&gt;" />
+<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" />
+<TGConnectingPoint num="8" id="627" />
+<TGConnectingPoint num="9" id="628" />
+<TGConnectingPoint num="10" id="629" />
+<TGConnectingPoint num="11" id="630" />
+<TGConnectingPoint num="12" id="631" />
+<TGConnectingPoint num="13" id="632" />
+<TGConnectingPoint num="14" id="633" />
+<TGConnectingPoint num="15" id="634" />
+<TGConnectingPoint num="16" id="635" />
+<TGConnectingPoint num="17" id="636" />
+<TGConnectingPoint num="18" id="637" />
+<TGConnectingPoint num="19" id="638" />
+</COMPONENT>
+
+<COMPONENT type="5309" id="652" >
+<cdparam x="594" y="495" />
+<sizeparam width="80" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="TGComponent" value="&lt;=&gt;" />
+<TGConnectingPoint num="0" id="640" />
+<TGConnectingPoint num="1" id="641" />
+<TGConnectingPoint num="2" id="642" />
+<TGConnectingPoint num="3" id="643" />
+<TGConnectingPoint num="4" id="644" />
+<TGConnectingPoint num="5" id="645" />
+<TGConnectingPoint num="6" id="646" />
+<TGConnectingPoint num="7" id="647" />
+<TGConnectingPoint num="8" id="648" />
+<TGConnectingPoint num="9" id="649" />
+<TGConnectingPoint num="10" id="650" />
+<TGConnectingPoint num="11" id="651" />
+</COMPONENT>
+
+<COMPONENT type="5308" id="657" >
+<cdparam x="527" y="416" />
+<sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="TGComponent" value="prop02" />
+<TGConnectingPoint num="0" id="653" />
+<TGConnectingPoint num="1" id="654" />
+<TGConnectingPoint num="2" id="655" />
+<TGConnectingPoint num="3" id="656" />
+<extraparam>
+<liveness data="1" />
+<not data="false" />
+</extraparam>
+</COMPONENT>
+
+
+</AvatarPDPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="AVATAR Design" nameTab="MainDesign" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<Validated value="" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="659" >
+<cdparam x="321" y="567" />
+<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="658" />
+<P1  x="559" y="330" id="720" />
+<P2  x="560" y="377" id="753" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<isd value="in pushCoffeeButton()" />
+<oso value="out push()" />
+<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="661" >
+<cdparam x="275" y="114" />
+<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="660" />
+<P1  x="306" y="109" id="675" />
+<P2  x="445" y="108" id="749" />
+<AutomaticDrawing  data="true" />
+<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" size="1024" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="663" >
+<cdparam x="623" y="565" />
+<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="662" />
+<P1  x="789" y="326" id="695" />
+<P2  x="790" y="377" id="754" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<isd value="in pushTeaButton()" />
+<oso value="out push()" />
+<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="5000" id="688" >
+<cdparam x="106" y="55" />
+<sizeparam width="200" height="218" 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="Wallet" />
+<TGConnectingPoint num="0" id="664" />
+<TGConnectingPoint num="1" id="665" />
+<TGConnectingPoint num="2" id="666" />
+<TGConnectingPoint num="3" id="667" />
+<TGConnectingPoint num="4" id="668" />
+<TGConnectingPoint num="5" id="669" />
+<TGConnectingPoint num="6" id="670" />
+<TGConnectingPoint num="7" id="671" />
+<TGConnectingPoint num="8" id="672" />
+<TGConnectingPoint num="9" id="673" />
+<TGConnectingPoint num="10" id="674" />
+<TGConnectingPoint num="11" id="675" />
+<TGConnectingPoint num="12" id="676" />
+<TGConnectingPoint num="13" id="677" />
+<TGConnectingPoint num="14" id="678" />
+<TGConnectingPoint num="15" id="679" />
+<TGConnectingPoint num="16" id="680" />
+<TGConnectingPoint num="17" id="681" />
+<TGConnectingPoint num="18" id="682" />
+<TGConnectingPoint num="19" id="683" />
+<TGConnectingPoint num="20" id="684" />
+<TGConnectingPoint num="21" id="685" />
+<TGConnectingPoint num="22" id="686" />
+<TGConnectingPoint num="23" id="687" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="nbOfCoins" value="2" type="8" typeOther="" />
+<Attribute access="0" id="x" value="1" type="8" typeOther="" />
+<Attribute access="0" id="minUserDelay" value="50" type="8" typeOther="" />
+<Attribute access="0" id="maxUserDelay" value="70" type="8" typeOther="" />
+<Method value="contentOfWallet(int nbOfCoins)" />
+<Signal value="in getCoin(int nbOfCoins)" attached="false" />
+<Signal value="out putCoin(int nbOfCoins)" attached="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="763" >
+<cdparam x="445" y="19" />
+<sizeparam width="461" height="358" 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="CoffeeMachine" />
+<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" />
+<TGConnectingPoint num="8" id="747" />
+<TGConnectingPoint num="9" id="748" />
+<TGConnectingPoint num="10" id="749" />
+<TGConnectingPoint num="11" id="750" />
+<TGConnectingPoint num="12" id="751" />
+<TGConnectingPoint num="13" id="752" />
+<TGConnectingPoint num="14" id="753" />
+<TGConnectingPoint num="15" id="754" />
+<TGConnectingPoint num="16" id="755" />
+<TGConnectingPoint num="17" id="756" />
+<TGConnectingPoint num="18" id="757" />
+<TGConnectingPoint num="19" id="758" />
+<TGConnectingPoint num="20" id="759" />
+<TGConnectingPoint num="21" id="760" />
+<TGConnectingPoint num="22" id="761" />
+<TGConnectingPoint num="23" id="762" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="teaMinDelay" value="3" type="8" typeOther="" />
+<Attribute access="0" id="teaMaxDelay" value="8" type="8" typeOther="" />
+<Attribute access="0" id="coffeeMinDelay" value="5" type="8" typeOther="" />
+<Attribute access="0" id="coffeeMaxDelay" value="10" type="8" typeOther="" />
+<Attribute access="0" id="coinDelay" value="50" type="8" typeOther="" />
+<Attribute access="0" id="x" value="0" type="8" typeOther="" />
+<Attribute access="0" id="nbOfCoins" value="0" type="8" typeOther="" />
+<Method value="beverageReady()" />
+<Signal value="in pushCoffeeButton()" attached="false" />
+<Signal value="in pushTeaButton()" attached="false" />
+<Signal value="in getCoin(int nbOfCoins)" attached="false" />
+<Signal value="out ejectCoin(int nbOfCoins)" attached="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="5000" id="713" >
+<father id="763" num="0" />
+<cdparam x="695" y="224" />
+<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
+<infoparam name="Block1" value="TeaButton" />
+<TGConnectingPoint num="0" id="689" />
+<TGConnectingPoint num="1" id="690" />
+<TGConnectingPoint num="2" id="691" />
+<TGConnectingPoint num="3" id="692" />
+<TGConnectingPoint num="4" id="693" />
+<TGConnectingPoint num="5" id="694" />
+<TGConnectingPoint num="6" id="695" />
+<TGConnectingPoint num="7" id="696" />
+<TGConnectingPoint num="8" id="697" />
+<TGConnectingPoint num="9" id="698" />
+<TGConnectingPoint num="10" id="699" />
+<TGConnectingPoint num="11" id="700" />
+<TGConnectingPoint num="12" id="701" />
+<TGConnectingPoint num="13" id="702" />
+<TGConnectingPoint num="14" id="703" />
+<TGConnectingPoint num="15" id="704" />
+<TGConnectingPoint num="16" id="705" />
+<TGConnectingPoint num="17" id="706" />
+<TGConnectingPoint num="18" id="707" />
+<TGConnectingPoint num="19" id="708" />
+<TGConnectingPoint num="20" id="709" />
+<TGConnectingPoint num="21" id="710" />
+<TGConnectingPoint num="22" id="711" />
+<TGConnectingPoint num="23" id="712" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="mechanicalDelay" value="10" type="8" typeOther="" />
+<Signal value="out push()" attached="false" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5000" id="738" >
+<father id="763" num="1" />
+<cdparam x="464" y="228" />
+<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" />
+<infoparam name="Block1" value="CoffeeButton" />
+<TGConnectingPoint num="0" id="714" />
+<TGConnectingPoint num="1" id="715" />
+<TGConnectingPoint num="2" id="716" />
+<TGConnectingPoint num="3" id="717" />
+<TGConnectingPoint num="4" id="718" />
+<TGConnectingPoint num="5" id="719" />
+<TGConnectingPoint num="6" id="720" />
+<TGConnectingPoint num="7" id="721" />
+<TGConnectingPoint num="8" id="722" />
+<TGConnectingPoint num="9" id="723" />
+<TGConnectingPoint num="10" id="724" />
+<TGConnectingPoint num="11" id="725" />
+<TGConnectingPoint num="12" id="726" />
+<TGConnectingPoint num="13" id="727" />
+<TGConnectingPoint num="14" id="728" />
+<TGConnectingPoint num="15" id="729" />
+<TGConnectingPoint num="16" id="730" />
+<TGConnectingPoint num="17" id="731" />
+<TGConnectingPoint num="18" id="732" />
+<TGConnectingPoint num="19" id="733" />
+<TGConnectingPoint num="20" id="734" />
+<TGConnectingPoint num="21" id="735" />
+<TGConnectingPoint num="22" id="736" />
+<TGConnectingPoint num="23" id="737" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="mechanicalDelay" value="80" type="8" typeOther="" />
+<Signal value="out push()" attached="false" />
+</extraparam>
+</SUBCOMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Wallet" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="770" >
+<cdparam x="516" y="264" />
+<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="769" />
+<P1  x="485" y="219" id="811" />
+<P2  x="485" y="274" id="822" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="768" >
+<father id="770" num="0" />
+<cdparam x="493" y="251" />
+<sizeparam width="173" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="764" />
+<TGConnectingPoint num="1" id="765" />
+<TGConnectingPoint num="2" id="766" />
+<TGConnectingPoint num="3" id="767" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = nbOfCoins + x" />
+<actions value="contentOfWallet(nbOfCoins)" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="777" >
+<cdparam x="382" y="165" />
+<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="776" />
+<P1  x="382" y="165" id="918" />
+<P2  x="485" y="189" id="810" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="775" >
+<father id="777" num="0" />
+<cdparam x="382" y="205" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="771" />
+<TGConnectingPoint num="1" id="772" />
+<TGConnectingPoint num="2" id="773" />
+<TGConnectingPoint num="3" id="774" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="784" >
+<cdparam x="223" y="260" />
+<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="783" />
+<P1  x="251" y="231" id="800" />
+<P2  x="252" y="300" id="863" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="782" >
+<father id="784" num="0" />
+<cdparam x="163" y="252" />
+<sizeparam width="221" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="778" />
+<TGConnectingPoint num="1" id="779" />
+<TGConnectingPoint num="2" id="780" />
+<TGConnectingPoint num="3" id="781" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="minUserDelay" />
+<afterMax value="maxUserDelay" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = nbOfCoins - x" />
+<actions value="contentOfWallet(nbOfCoins)" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="791" >
+<cdparam x="357" y="165" />
+<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="790" />
+<P1  x="357" y="165" id="917" />
+<P2  x="251" y="201" id="799" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="789" >
+<father id="791" num="0" />
+<cdparam x="220" y="174" />
+<sizeparam width="99" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="785" />
+<TGConnectingPoint num="1" id="786" />
+<TGConnectingPoint num="2" id="787" />
+<TGConnectingPoint num="3" id="788" />
+<extraparam>
+<guard value="[nbOfCoins &gt; 0]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="798" >
+<cdparam x="369" y="115" />
+<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="797" />
+<P1  x="370" y="64" id="944" />
+<P2  x="370" y="135" id="904" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="796" >
+<father id="798" num="0" />
+<cdparam x="376" y="105" />
+<sizeparam width="173" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="792" />
+<TGConnectingPoint num="1" id="793" />
+<TGConnectingPoint num="2" id="794" />
+<TGConnectingPoint num="3" id="795" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="contentOfWallet(nbOfCoins)" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="809" >
+<cdparam x="214" y="206" />
+<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="putCoin(x)" />
+<TGConnectingPoint num="0" id="799" />
+<TGConnectingPoint num="1" id="800" />
+<TGConnectingPoint num="2" id="801" />
+<TGConnectingPoint num="3" id="802" />
+<TGConnectingPoint num="4" id="803" />
+<TGConnectingPoint num="5" id="804" />
+<TGConnectingPoint num="6" id="805" />
+<TGConnectingPoint num="7" id="806" />
+<TGConnectingPoint num="8" id="807" />
+<TGConnectingPoint num="9" id="808" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="820" >
+<cdparam x="444" y="194" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="getCoin(x)" />
+<TGConnectingPoint num="0" id="810" />
+<TGConnectingPoint num="1" id="811" />
+<TGConnectingPoint num="2" id="812" />
+<TGConnectingPoint num="3" id="813" />
+<TGConnectingPoint num="4" id="814" />
+<TGConnectingPoint num="5" id="815" />
+<TGConnectingPoint num="6" id="816" />
+<TGConnectingPoint num="7" id="817" />
+<TGConnectingPoint num="8" id="818" />
+<TGConnectingPoint num="9" id="819" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="861" >
+<cdparam x="460" y="274" />
+<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="821" />
+<TGConnectingPoint num="1" id="822" />
+<TGConnectingPoint num="2" id="823" />
+<TGConnectingPoint num="3" id="824" />
+<TGConnectingPoint num="4" id="825" />
+<TGConnectingPoint num="5" id="826" />
+<TGConnectingPoint num="6" id="827" />
+<TGConnectingPoint num="7" id="828" />
+<TGConnectingPoint num="8" id="829" />
+<TGConnectingPoint num="9" id="830" />
+<TGConnectingPoint num="10" id="831" />
+<TGConnectingPoint num="11" id="832" />
+<TGConnectingPoint num="12" id="833" />
+<TGConnectingPoint num="13" id="834" />
+<TGConnectingPoint num="14" id="835" />
+<TGConnectingPoint num="15" id="836" />
+<TGConnectingPoint num="16" id="837" />
+<TGConnectingPoint num="17" id="838" />
+<TGConnectingPoint num="18" id="839" />
+<TGConnectingPoint num="19" id="840" />
+<TGConnectingPoint num="20" id="841" />
+<TGConnectingPoint num="21" id="842" />
+<TGConnectingPoint num="22" id="843" />
+<TGConnectingPoint num="23" id="844" />
+<TGConnectingPoint num="24" id="845" />
+<TGConnectingPoint num="25" id="846" />
+<TGConnectingPoint num="26" id="847" />
+<TGConnectingPoint num="27" id="848" />
+<TGConnectingPoint num="28" id="849" />
+<TGConnectingPoint num="29" id="850" />
+<TGConnectingPoint num="30" id="851" />
+<TGConnectingPoint num="31" id="852" />
+<TGConnectingPoint num="32" id="853" />
+<TGConnectingPoint num="33" id="854" />
+<TGConnectingPoint num="34" id="855" />
+<TGConnectingPoint num="35" id="856" />
+<TGConnectingPoint num="36" id="857" />
+<TGConnectingPoint num="37" id="858" />
+<TGConnectingPoint num="38" id="859" />
+<TGConnectingPoint num="39" id="860" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="902" >
+<cdparam x="227" y="300" />
+<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="862" />
+<TGConnectingPoint num="1" id="863" />
+<TGConnectingPoint num="2" id="864" />
+<TGConnectingPoint num="3" id="865" />
+<TGConnectingPoint num="4" id="866" />
+<TGConnectingPoint num="5" id="867" />
+<TGConnectingPoint num="6" id="868" />
+<TGConnectingPoint num="7" id="869" />
+<TGConnectingPoint num="8" id="870" />
+<TGConnectingPoint num="9" id="871" />
+<TGConnectingPoint num="10" id="872" />
+<TGConnectingPoint num="11" id="873" />
+<TGConnectingPoint num="12" id="874" />
+<TGConnectingPoint num="13" id="875" />
+<TGConnectingPoint num="14" id="876" />
+<TGConnectingPoint num="15" id="877" />
+<TGConnectingPoint num="16" id="878" />
+<TGConnectingPoint num="17" id="879" />
+<TGConnectingPoint num="18" id="880" />
+<TGConnectingPoint num="19" id="881" />
+<TGConnectingPoint num="20" id="882" />
+<TGConnectingPoint num="21" id="883" />
+<TGConnectingPoint num="22" id="884" />
+<TGConnectingPoint num="23" id="885" />
+<TGConnectingPoint num="24" id="886" />
+<TGConnectingPoint num="25" id="887" />
+<TGConnectingPoint num="26" id="888" />
+<TGConnectingPoint num="27" id="889" />
+<TGConnectingPoint num="28" id="890" />
+<TGConnectingPoint num="29" id="891" />
+<TGConnectingPoint num="30" id="892" />
+<TGConnectingPoint num="31" id="893" />
+<TGConnectingPoint num="32" id="894" />
+<TGConnectingPoint num="33" id="895" />
+<TGConnectingPoint num="34" id="896" />
+<TGConnectingPoint num="35" id="897" />
+<TGConnectingPoint num="36" id="898" />
+<TGConnectingPoint num="37" id="899" />
+<TGConnectingPoint num="38" id="900" />
+<TGConnectingPoint num="39" id="901" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="943" >
+<cdparam x="345" y="135" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="903" />
+<TGConnectingPoint num="1" id="904" />
+<TGConnectingPoint num="2" id="905" />
+<TGConnectingPoint num="3" id="906" />
+<TGConnectingPoint num="4" id="907" />
+<TGConnectingPoint num="5" id="908" />
+<TGConnectingPoint num="6" id="909" />
+<TGConnectingPoint num="7" id="910" />
+<TGConnectingPoint num="8" id="911" />
+<TGConnectingPoint num="9" id="912" />
+<TGConnectingPoint num="10" id="913" />
+<TGConnectingPoint num="11" id="914" />
+<TGConnectingPoint num="12" id="915" />
+<TGConnectingPoint num="13" id="916" />
+<TGConnectingPoint num="14" id="917" />
+<TGConnectingPoint num="15" id="918" />
+<TGConnectingPoint num="16" id="919" />
+<TGConnectingPoint num="17" id="920" />
+<TGConnectingPoint num="18" id="921" />
+<TGConnectingPoint num="19" id="922" />
+<TGConnectingPoint num="20" id="923" />
+<TGConnectingPoint num="21" id="924" />
+<TGConnectingPoint num="22" id="925" />
+<TGConnectingPoint num="23" id="926" />
+<TGConnectingPoint num="24" id="927" />
+<TGConnectingPoint num="25" id="928" />
+<TGConnectingPoint num="26" id="929" />
+<TGConnectingPoint num="27" id="930" />
+<TGConnectingPoint num="28" id="931" />
+<TGConnectingPoint num="29" id="932" />
+<TGConnectingPoint num="30" id="933" />
+<TGConnectingPoint num="31" id="934" />
+<TGConnectingPoint num="32" id="935" />
+<TGConnectingPoint num="33" id="936" />
+<TGConnectingPoint num="34" id="937" />
+<TGConnectingPoint num="35" id="938" />
+<TGConnectingPoint num="36" id="939" />
+<TGConnectingPoint num="37" id="940" />
+<TGConnectingPoint num="38" id="941" />
+<TGConnectingPoint num="39" id="942" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="945" >
+<cdparam x="363" y="44" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="944" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="CoffeeMachine" minX="10" maxX="1400" minY="10" maxY="1400" >
+<CONNECTOR type="5102" id="952" >
+<cdparam x="691" y="288" />
+<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="951" />
+<P1  x="699" y="289" id="1090" />
+<P2  x="699" y="316" id="1062" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="950" >
+<father id="952" num="0" />
+<cdparam x="691" y="328" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="946" />
+<TGConnectingPoint num="1" id="947" />
+<TGConnectingPoint num="2" id="948" />
+<TGConnectingPoint num="3" id="949" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="959" >
+<cdparam x="481" y="501" />
+<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="958" />
+<P1  x="437" y="525" id="1292" />
+<P2  x="323" y="748" id="1218" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="957" >
+<father id="959" num="0" />
+<cdparam x="420" y="552" />
+<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="953" />
+<TGConnectingPoint num="1" id="954" />
+<TGConnectingPoint num="2" id="955" />
+<TGConnectingPoint num="3" id="956" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = 0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="966" >
+<cdparam x="555" y="559" />
+<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="965" />
+<P1  x="321" y="455" id="1319" />
+<P2  x="437" y="495" id="1291" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="964" >
+<father id="966" num="0" />
+<cdparam x="395" y="448" />
+<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="960" />
+<TGConnectingPoint num="1" id="961" />
+<TGConnectingPoint num="2" id="962" />
+<TGConnectingPoint num="3" id="963" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="coinDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="973" >
+<cdparam x="355" y="545" />
+<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="972" />
+<P1  x="293" y="552" id="1357" />
+<P2  x="289" y="748" id="1210" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="971" >
+<father id="973" num="0" />
+<cdparam x="284" y="594" />
+<sizeparam width="248" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="967" />
+<TGConnectingPoint num="1" id="968" />
+<TGConnectingPoint num="2" id="969" />
+<TGConnectingPoint num="3" id="970" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="teaMinDelay" />
+<computeMax value="teaMaxDelay" />
+<actions value="nbOfCoins = 0" />
+<actions value="beverageReady()" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="980" >
+<cdparam x="295" y="465" />
+<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="979" />
+<P1  x="288" y="475" id="1330" />
+<P2  x="293" y="522" id="1356" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="978" >
+<father id="980" num="0" />
+<cdparam x="295" y="505" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="974" />
+<TGConnectingPoint num="1" id="975" />
+<TGConnectingPoint num="2" id="976" />
+<TGConnectingPoint num="3" id="977" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="987" >
+<cdparam x="148" y="549" />
+<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="986" />
+<P1  x="121" y="552" id="1303" />
+<P2  x="255" y="748" id="1217" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="985" >
+<father id="987" num="0" />
+<cdparam x="32" y="587" />
+<sizeparam width="284" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="981" />
+<TGConnectingPoint num="1" id="982" />
+<TGConnectingPoint num="2" id="983" />
+<TGConnectingPoint num="3" id="984" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="coffeeMinDelay" />
+<computeMax value="coffeeMaxDelay" />
+<actions value="nbOfCoins = 0" />
+<actions value="beverageReady()" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="994" >
+<cdparam x="229" y="465" />
+<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="993" />
+<P1  x="222" y="475" id="1329" />
+<P2  x="121" y="522" id="1302" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="992" >
+<father id="994" num="0" />
+<cdparam x="229" y="505" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="988" />
+<TGConnectingPoint num="1" id="989" />
+<TGConnectingPoint num="2" id="990" />
+<TGConnectingPoint num="3" id="991" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1001" >
+<cdparam x="280" y="420" />
+<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="1000" />
+<P1  x="256" y="419" id="1313" />
+<P2  x="255" y="435" id="1316" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="999" >
+<father id="1001" num="0" />
+<cdparam x="280" y="460" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="995" />
+<TGConnectingPoint num="1" id="996" />
+<TGConnectingPoint num="2" id="997" />
+<TGConnectingPoint num="3" id="998" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1008" >
+<cdparam x="667" y="346" />
+<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="1007" />
+<P1  x="699" y="346" id="1063" />
+<P2  x="699" y="381" id="1251" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1006" >
+<father id="1008" num="0" />
+<cdparam x="707" y="368" />
+<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1002" />
+<TGConnectingPoint num="1" id="1003" />
+<TGConnectingPoint num="2" id="1004" />
+<TGConnectingPoint num="3" id="1005" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = 0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1015" >
+<cdparam x="348" y="228" />
+<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="1014" />
+<P1  x="388" y="208" id="1129" />
+<P2  x="649" y="264" id="1087" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1013" >
+<father id="1015" num="0" />
+<cdparam x="411" y="206" />
+<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1009" />
+<TGConnectingPoint num="1" id="1010" />
+<TGConnectingPoint num="2" id="1011" />
+<TGConnectingPoint num="3" id="1012" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="coinDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1022" >
+<cdparam x="243" y="319" />
+<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="1021" />
+<P1  x="277" y="305" id="1074" />
+<P2  x="306" y="370" id="1368" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1020" >
+<father id="1022" num="0" />
+<cdparam x="243" y="359" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1016" />
+<TGConnectingPoint num="1" id="1017" />
+<TGConnectingPoint num="2" id="1018" />
+<TGConnectingPoint num="3" id="1019" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1029" >
+<cdparam x="270" y="224" />
+<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="1028" />
+<P1  x="270" y="228" id="1139" />
+<P2  x="277" y="275" id="1073" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1027" >
+<father id="1029" num="0" />
+<cdparam x="270" y="264" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1023" />
+<TGConnectingPoint num="1" id="1024" />
+<TGConnectingPoint num="2" id="1025" />
+<TGConnectingPoint num="3" id="1026" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1036" >
+<cdparam x="309" y="160" />
+<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="1035" />
+<P1  x="306" y="166" id="1052" />
+<P2  x="309" y="188" id="1126" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1034" >
+<father id="1036" num="0" />
+<cdparam x="328" y="178" />
+<sizeparam width="168" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1030" />
+<TGConnectingPoint num="1" id="1031" />
+<TGConnectingPoint num="2" id="1032" />
+<TGConnectingPoint num="3" id="1033" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = nbOfCoins + x" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1043" >
+<cdparam x="303" y="103" />
+<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="1042" />
+<P1  x="303" y="103" id="1174" />
+<P2  x="306" y="136" id="1051" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1041" >
+<father id="1043" num="0" />
+<cdparam x="303" y="143" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1037" />
+<TGConnectingPoint num="1" id="1038" />
+<TGConnectingPoint num="2" id="1039" />
+<TGConnectingPoint num="3" id="1040" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1050" >
+<cdparam x="303" y="40" />
+<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="1049" />
+<P1  x="303" y="40" id="1166" />
+<P2  x="303" y="63" id="1169" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1048" >
+<father id="1050" num="0" />
+<cdparam x="303" y="80" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1044" />
+<TGConnectingPoint num="1" id="1045" />
+<TGConnectingPoint num="2" id="1046" />
+<TGConnectingPoint num="3" id="1047" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="1061" >
+<cdparam x="265" y="141" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="getCoin(x)" />
+<TGConnectingPoint num="0" id="1051" />
+<TGConnectingPoint num="1" id="1052" />
+<TGConnectingPoint num="2" id="1053" />
+<TGConnectingPoint num="3" id="1054" />
+<TGConnectingPoint num="4" id="1055" />
+<TGConnectingPoint num="5" id="1056" />
+<TGConnectingPoint num="6" id="1057" />
+<TGConnectingPoint num="7" id="1058" />
+<TGConnectingPoint num="8" id="1059" />
+<TGConnectingPoint num="9" id="1060" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="1072" >
+<cdparam x="629" y="321" />
+<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
+<TGConnectingPoint num="0" id="1062" />
+<TGConnectingPoint num="1" id="1063" />
+<TGConnectingPoint num="2" id="1064" />
+<TGConnectingPoint num="3" id="1065" />
+<TGConnectingPoint num="4" id="1066" />
+<TGConnectingPoint num="5" id="1067" />
+<TGConnectingPoint num="6" id="1068" />
+<TGConnectingPoint num="7" id="1069" />
+<TGConnectingPoint num="8" id="1070" />
+<TGConnectingPoint num="9" id="1071" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="1083" >
+<cdparam x="236" y="280" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="getCoin(x)" />
+<TGConnectingPoint num="0" id="1073" />
+<TGConnectingPoint num="1" id="1074" />
+<TGConnectingPoint num="2" id="1075" />
+<TGConnectingPoint num="3" id="1076" />
+<TGConnectingPoint num="4" id="1077" />
+<TGConnectingPoint num="5" id="1078" />
+<TGConnectingPoint num="6" id="1079" />
+<TGConnectingPoint num="7" id="1080" />
+<TGConnectingPoint num="8" id="1081" />
+<TGConnectingPoint num="9" id="1082" />
+<accessibility />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1124" >
+<cdparam x="649" y="239" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="ejectState" />
+<TGConnectingPoint num="0" id="1084" />
+<TGConnectingPoint num="1" id="1085" />
+<TGConnectingPoint num="2" id="1086" />
+<TGConnectingPoint num="3" id="1087" />
+<TGConnectingPoint num="4" id="1088" />
+<TGConnectingPoint num="5" id="1089" />
+<TGConnectingPoint num="6" id="1090" />
+<TGConnectingPoint num="7" id="1091" />
+<TGConnectingPoint num="8" id="1092" />
+<TGConnectingPoint num="9" id="1093" />
+<TGConnectingPoint num="10" id="1094" />
+<TGConnectingPoint num="11" id="1095" />
+<TGConnectingPoint num="12" id="1096" />
+<TGConnectingPoint num="13" id="1097" />
+<TGConnectingPoint num="14" id="1098" />
+<TGConnectingPoint num="15" id="1099" />
+<TGConnectingPoint num="16" id="1100" />
+<TGConnectingPoint num="17" id="1101" />
+<TGConnectingPoint num="18" id="1102" />
+<TGConnectingPoint num="19" id="1103" />
+<TGConnectingPoint num="20" id="1104" />
+<TGConnectingPoint num="21" id="1105" />
+<TGConnectingPoint num="22" id="1106" />
+<TGConnectingPoint num="23" id="1107" />
+<TGConnectingPoint num="24" id="1108" />
+<TGConnectingPoint num="25" id="1109" />
+<TGConnectingPoint num="26" id="1110" />
+<TGConnectingPoint num="27" id="1111" />
+<TGConnectingPoint num="28" id="1112" />
+<TGConnectingPoint num="29" id="1113" />
+<TGConnectingPoint num="30" id="1114" />
+<TGConnectingPoint num="31" id="1115" />
+<TGConnectingPoint num="32" id="1116" />
+<TGConnectingPoint num="33" id="1117" />
+<TGConnectingPoint num="34" id="1118" />
+<TGConnectingPoint num="35" id="1119" />
+<TGConnectingPoint num="36" id="1120" />
+<TGConnectingPoint num="37" id="1121" />
+<TGConnectingPoint num="38" id="1122" />
+<TGConnectingPoint num="39" id="1123" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="1165" >
+<cdparam x="231" y="188" />
+<sizeparam width="157" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForSecondCoin" />
+<TGConnectingPoint num="0" id="1125" />
+<TGConnectingPoint num="1" id="1126" />
+<TGConnectingPoint num="2" id="1127" />
+<TGConnectingPoint num="3" id="1128" />
+<TGConnectingPoint num="4" id="1129" />
+<TGConnectingPoint num="5" id="1130" />
+<TGConnectingPoint num="6" id="1131" />
+<TGConnectingPoint num="7" id="1132" />
+<TGConnectingPoint num="8" id="1133" />
+<TGConnectingPoint num="9" id="1134" />
+<TGConnectingPoint num="10" id="1135" />
+<TGConnectingPoint num="11" id="1136" />
+<TGConnectingPoint num="12" id="1137" />
+<TGConnectingPoint num="13" id="1138" />
+<TGConnectingPoint num="14" id="1139" />
+<TGConnectingPoint num="15" id="1140" />
+<TGConnectingPoint num="16" id="1141" />
+<TGConnectingPoint num="17" id="1142" />
+<TGConnectingPoint num="18" id="1143" />
+<TGConnectingPoint num="19" id="1144" />
+<TGConnectingPoint num="20" id="1145" />
+<TGConnectingPoint num="21" id="1146" />
+<TGConnectingPoint num="22" id="1147" />
+<TGConnectingPoint num="23" id="1148" />
+<TGConnectingPoint num="24" id="1149" />
+<TGConnectingPoint num="25" id="1150" />
+<TGConnectingPoint num="26" id="1151" />
+<TGConnectingPoint num="27" id="1152" />
+<TGConnectingPoint num="28" id="1153" />
+<TGConnectingPoint num="29" id="1154" />
+<TGConnectingPoint num="30" id="1155" />
+<TGConnectingPoint num="31" id="1156" />
+<TGConnectingPoint num="32" id="1157" />
+<TGConnectingPoint num="33" id="1158" />
+<TGConnectingPoint num="34" id="1159" />
+<TGConnectingPoint num="35" id="1160" />
+<TGConnectingPoint num="36" id="1161" />
+<TGConnectingPoint num="37" id="1162" />
+<TGConnectingPoint num="38" id="1163" />
+<TGConnectingPoint num="39" id="1164" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="1167" >
+<cdparam x="296" y="20" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="1166" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1208" >
+<cdparam x="235" y="63" />
+<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForFirstCoin" />
+<TGConnectingPoint num="0" id="1168" />
+<TGConnectingPoint num="1" id="1169" />
+<TGConnectingPoint num="2" id="1170" />
+<TGConnectingPoint num="3" id="1171" />
+<TGConnectingPoint num="4" id="1172" />
+<TGConnectingPoint num="5" id="1173" />
+<TGConnectingPoint num="6" id="1174" />
+<TGConnectingPoint num="7" id="1175" />
+<TGConnectingPoint num="8" id="1176" />
+<TGConnectingPoint num="9" id="1177" />
+<TGConnectingPoint num="10" id="1178" />
+<TGConnectingPoint num="11" id="1179" />
+<TGConnectingPoint num="12" id="1180" />
+<TGConnectingPoint num="13" id="1181" />
+<TGConnectingPoint num="14" id="1182" />
+<TGConnectingPoint num="15" id="1183" />
+<TGConnectingPoint num="16" id="1184" />
+<TGConnectingPoint num="17" id="1185" />
+<TGConnectingPoint num="18" id="1186" />
+<TGConnectingPoint num="19" id="1187" />
+<TGConnectingPoint num="20" id="1188" />
+<TGConnectingPoint num="21" id="1189" />
+<TGConnectingPoint num="22" id="1190" />
+<TGConnectingPoint num="23" id="1191" />
+<TGConnectingPoint num="24" id="1192" />
+<TGConnectingPoint num="25" id="1193" />
+<TGConnectingPoint num="26" id="1194" />
+<TGConnectingPoint num="27" id="1195" />
+<TGConnectingPoint num="28" id="1196" />
+<TGConnectingPoint num="29" id="1197" />
+<TGConnectingPoint num="30" id="1198" />
+<TGConnectingPoint num="31" id="1199" />
+<TGConnectingPoint num="32" id="1200" />
+<TGConnectingPoint num="33" id="1201" />
+<TGConnectingPoint num="34" id="1202" />
+<TGConnectingPoint num="35" id="1203" />
+<TGConnectingPoint num="36" id="1204" />
+<TGConnectingPoint num="37" id="1205" />
+<TGConnectingPoint num="38" id="1206" />
+<TGConnectingPoint num="39" id="1207" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="1249" >
+<cdparam x="221" y="748" />
+<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForFirstCoin" />
+<TGConnectingPoint num="0" id="1209" />
+<TGConnectingPoint num="1" id="1210" />
+<TGConnectingPoint num="2" id="1211" />
+<TGConnectingPoint num="3" id="1212" />
+<TGConnectingPoint num="4" id="1213" />
+<TGConnectingPoint num="5" id="1214" />
+<TGConnectingPoint num="6" id="1215" />
+<TGConnectingPoint num="7" id="1216" />
+<TGConnectingPoint num="8" id="1217" />
+<TGConnectingPoint num="9" id="1218" />
+<TGConnectingPoint num="10" id="1219" />
+<TGConnectingPoint num="11" id="1220" />
+<TGConnectingPoint num="12" id="1221" />
+<TGConnectingPoint num="13" id="1222" />
+<TGConnectingPoint num="14" id="1223" />
+<TGConnectingPoint num="15" id="1224" />
+<TGConnectingPoint num="16" id="1225" />
+<TGConnectingPoint num="17" id="1226" />
+<TGConnectingPoint num="18" id="1227" />
+<TGConnectingPoint num="19" id="1228" />
+<TGConnectingPoint num="20" id="1229" />
+<TGConnectingPoint num="21" id="1230" />
+<TGConnectingPoint num="22" id="1231" />
+<TGConnectingPoint num="23" id="1232" />
+<TGConnectingPoint num="24" id="1233" />
+<TGConnectingPoint num="25" id="1234" />
+<TGConnectingPoint num="26" id="1235" />
+<TGConnectingPoint num="27" id="1236" />
+<TGConnectingPoint num="28" id="1237" />
+<TGConnectingPoint num="29" id="1238" />
+<TGConnectingPoint num="30" id="1239" />
+<TGConnectingPoint num="31" id="1240" />
+<TGConnectingPoint num="32" id="1241" />
+<TGConnectingPoint num="33" id="1242" />
+<TGConnectingPoint num="34" id="1243" />
+<TGConnectingPoint num="35" id="1244" />
+<TGConnectingPoint num="36" id="1245" />
+<TGConnectingPoint num="37" id="1246" />
+<TGConnectingPoint num="38" id="1247" />
+<TGConnectingPoint num="39" id="1248" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="1290" >
+<cdparam x="631" y="381" />
+<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForFirstCoin" />
+<TGConnectingPoint num="0" id="1250" />
+<TGConnectingPoint num="1" id="1251" />
+<TGConnectingPoint num="2" id="1252" />
+<TGConnectingPoint num="3" id="1253" />
+<TGConnectingPoint num="4" id="1254" />
+<TGConnectingPoint num="5" id="1255" />
+<TGConnectingPoint num="6" id="1256" />
+<TGConnectingPoint num="7" id="1257" />
+<TGConnectingPoint num="8" id="1258" />
+<TGConnectingPoint num="9" id="1259" />
+<TGConnectingPoint num="10" id="1260" />
+<TGConnectingPoint num="11" id="1261" />
+<TGConnectingPoint num="12" id="1262" />
+<TGConnectingPoint num="13" id="1263" />
+<TGConnectingPoint num="14" id="1264" />
+<TGConnectingPoint num="15" id="1265" />
+<TGConnectingPoint num="16" id="1266" />
+<TGConnectingPoint num="17" id="1267" />
+<TGConnectingPoint num="18" id="1268" />
+<TGConnectingPoint num="19" id="1269" />
+<TGConnectingPoint num="20" id="1270" />
+<TGConnectingPoint num="21" id="1271" />
+<TGConnectingPoint num="22" id="1272" />
+<TGConnectingPoint num="23" id="1273" />
+<TGConnectingPoint num="24" id="1274" />
+<TGConnectingPoint num="25" id="1275" />
+<TGConnectingPoint num="26" id="1276" />
+<TGConnectingPoint num="27" id="1277" />
+<TGConnectingPoint num="28" id="1278" />
+<TGConnectingPoint num="29" id="1279" />
+<TGConnectingPoint num="30" id="1280" />
+<TGConnectingPoint num="31" id="1281" />
+<TGConnectingPoint num="32" id="1282" />
+<TGConnectingPoint num="33" id="1283" />
+<TGConnectingPoint num="34" id="1284" />
+<TGConnectingPoint num="35" id="1285" />
+<TGConnectingPoint num="36" id="1286" />
+<TGConnectingPoint num="37" id="1287" />
+<TGConnectingPoint num="38" id="1288" />
+<TGConnectingPoint num="39" id="1289" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="1407" >
+<cdparam x="18" y="370" />
+<sizeparam width="577" height="354" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="Beverage" />
+<TGConnectingPoint num="0" id="1367" />
+<TGConnectingPoint num="1" id="1368" />
+<TGConnectingPoint num="2" id="1369" />
+<TGConnectingPoint num="3" id="1370" />
+<TGConnectingPoint num="4" id="1371" />
+<TGConnectingPoint num="5" id="1372" />
+<TGConnectingPoint num="6" id="1373" />
+<TGConnectingPoint num="7" id="1374" />
+<TGConnectingPoint num="8" id="1375" />
+<TGConnectingPoint num="9" id="1376" />
+<TGConnectingPoint num="10" id="1377" />
+<TGConnectingPoint num="11" id="1378" />
+<TGConnectingPoint num="12" id="1379" />
+<TGConnectingPoint num="13" id="1380" />
+<TGConnectingPoint num="14" id="1381" />
+<TGConnectingPoint num="15" id="1382" />
+<TGConnectingPoint num="16" id="1383" />
+<TGConnectingPoint num="17" id="1384" />
+<TGConnectingPoint num="18" id="1385" />
+<TGConnectingPoint num="19" id="1386" />
+<TGConnectingPoint num="20" id="1387" />
+<TGConnectingPoint num="21" id="1388" />
+<TGConnectingPoint num="22" id="1389" />
+<TGConnectingPoint num="23" id="1390" />
+<TGConnectingPoint num="24" id="1391" />
+<TGConnectingPoint num="25" id="1392" />
+<TGConnectingPoint num="26" id="1393" />
+<TGConnectingPoint num="27" id="1394" />
+<TGConnectingPoint num="28" id="1395" />
+<TGConnectingPoint num="29" id="1396" />
+<TGConnectingPoint num="30" id="1397" />
+<TGConnectingPoint num="31" id="1398" />
+<TGConnectingPoint num="32" id="1399" />
+<TGConnectingPoint num="33" id="1400" />
+<TGConnectingPoint num="34" id="1401" />
+<TGConnectingPoint num="35" id="1402" />
+<TGConnectingPoint num="36" id="1403" />
+<TGConnectingPoint num="37" id="1404" />
+<TGConnectingPoint num="38" id="1405" />
+<TGConnectingPoint num="39" id="1406" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="5103" id="1301" >
+<father id="1407" num="0" />
+<cdparam x="367" y="500" />
+<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
+<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
+<TGConnectingPoint num="0" id="1291" />
+<TGConnectingPoint num="1" id="1292" />
+<TGConnectingPoint num="2" id="1293" />
+<TGConnectingPoint num="3" id="1294" />
+<TGConnectingPoint num="4" id="1295" />
+<TGConnectingPoint num="5" id="1296" />
+<TGConnectingPoint num="6" id="1297" />
+<TGConnectingPoint num="7" id="1298" />
+<TGConnectingPoint num="8" id="1299" />
+<TGConnectingPoint num="9" id="1300" />
+<accessibility />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5104" id="1312" >
+<father id="1407" num="1" />
+<cdparam x="51" y="527" />
+<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" />
+<infoparam name="Send signal" value="pushCoffeeButton()" />
+<TGConnectingPoint num="0" id="1302" />
+<TGConnectingPoint num="1" id="1303" />
+<TGConnectingPoint num="2" id="1304" />
+<TGConnectingPoint num="3" id="1305" />
+<TGConnectingPoint num="4" id="1306" />
+<TGConnectingPoint num="5" id="1307" />
+<TGConnectingPoint num="6" id="1308" />
+<TGConnectingPoint num="7" id="1309" />
+<TGConnectingPoint num="8" id="1310" />
+<TGConnectingPoint num="9" id="1311" />
+<accessibility />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5100" id="1314" >
+<father id="1407" num="2" />
+<cdparam x="249" y="399" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1313" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5106" id="1355" >
+<father id="1407" num="3" />
+<cdparam x="189" y="435" />
+<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
+<infoparam name="state0" value="WaitingForSelection" />
+<TGConnectingPoint num="0" id="1315" />
+<TGConnectingPoint num="1" id="1316" />
+<TGConnectingPoint num="2" id="1317" />
+<TGConnectingPoint num="3" id="1318" />
+<TGConnectingPoint num="4" id="1319" />
+<TGConnectingPoint num="5" id="1320" />
+<TGConnectingPoint num="6" id="1321" />
+<TGConnectingPoint num="7" id="1322" />
+<TGConnectingPoint num="8" id="1323" />
+<TGConnectingPoint num="9" id="1324" />
+<TGConnectingPoint num="10" id="1325" />
+<TGConnectingPoint num="11" id="1326" />
+<TGConnectingPoint num="12" id="1327" />
+<TGConnectingPoint num="13" id="1328" />
+<TGConnectingPoint num="14" id="1329" />
+<TGConnectingPoint num="15" id="1330" />
+<TGConnectingPoint num="16" id="1331" />
+<TGConnectingPoint num="17" id="1332" />
+<TGConnectingPoint num="18" id="1333" />
+<TGConnectingPoint num="19" id="1334" />
+<TGConnectingPoint num="20" id="1335" />
+<TGConnectingPoint num="21" id="1336" />
+<TGConnectingPoint num="22" id="1337" />
+<TGConnectingPoint num="23" id="1338" />
+<TGConnectingPoint num="24" id="1339" />
+<TGConnectingPoint num="25" id="1340" />
+<TGConnectingPoint num="26" id="1341" />
+<TGConnectingPoint num="27" id="1342" />
+<TGConnectingPoint num="28" id="1343" />
+<TGConnectingPoint num="29" id="1344" />
+<TGConnectingPoint num="30" id="1345" />
+<TGConnectingPoint num="31" id="1346" />
+<TGConnectingPoint num="32" id="1347" />
+<TGConnectingPoint num="33" id="1348" />
+<TGConnectingPoint num="34" id="1349" />
+<TGConnectingPoint num="35" id="1350" />
+<TGConnectingPoint num="36" id="1351" />
+<TGConnectingPoint num="37" id="1352" />
+<TGConnectingPoint num="38" id="1353" />
+<TGConnectingPoint num="39" id="1354" />
+<extraparam>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5104" id="1366" >
+<father id="1407" num="4" />
+<cdparam x="231" y="527" />
+<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
+<infoparam name="Send signal" value="pushTeaButton()" />
+<TGConnectingPoint num="0" id="1356" />
+<TGConnectingPoint num="1" id="1357" />
+<TGConnectingPoint num="2" id="1358" />
+<TGConnectingPoint num="3" id="1359" />
+<TGConnectingPoint num="4" id="1360" />
+<TGConnectingPoint num="5" id="1361" />
+<TGConnectingPoint num="6" id="1362" />
+<TGConnectingPoint num="7" id="1363" />
+<TGConnectingPoint num="8" id="1364" />
+<TGConnectingPoint num="9" id="1365" />
+<accessibility />
+</SUBCOMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="1414" >
+<cdparam x="177" y="199" />
+<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="1413" />
+<P1  x="340" y="233" id="1520" />
+<P2  x="353" y="252" id="1522" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1412" >
+<father id="1414" num="0" />
+<cdparam x="177" y="239" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1408" />
+<TGConnectingPoint num="1" id="1409" />
+<TGConnectingPoint num="2" id="1410" />
+<TGConnectingPoint num="3" id="1411" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1421" >
+<cdparam x="322" y="69" />
+<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="1420" />
+<P1  x="322" y="69" id="1518" />
+<P2  x="323" y="88" id="1478" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1419" >
+<father id="1421" num="0" />
+<cdparam x="322" y="109" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1415" />
+<TGConnectingPoint num="1" id="1416" />
+<TGConnectingPoint num="2" id="1417" />
+<TGConnectingPoint num="3" id="1418" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1428" >
+<cdparam x="377" y="144" />
+<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="1427" />
+<P1  x="323" y="118" id="1483" />
+<P2  x="356" y="174" id="1534" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1426" >
+<father id="1428" num="0" />
+<cdparam x="377" y="184" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1422" />
+<TGConnectingPoint num="1" id="1423" />
+<TGConnectingPoint num="2" id="1424" />
+<TGConnectingPoint num="3" id="1425" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1435" >
+<cdparam x="377" y="187" />
+<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="1434" />
+<P1  x="353" y="282" id="1523" />
+<P2  x="399" y="352" id="1437" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1433" >
+<father id="1435" num="0" />
+<cdparam x="417" y="335" />
+<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1429" />
+<TGConnectingPoint num="1" id="1430" />
+<TGConnectingPoint num="2" id="1431" />
+<TGConnectingPoint num="3" id="1432" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="mechanicalDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5106" id="1476" >
+<cdparam x="374" y="352" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="1436" />
+<TGConnectingPoint num="1" id="1437" />
+<TGConnectingPoint num="2" id="1438" />
+<TGConnectingPoint num="3" id="1439" />
+<TGConnectingPoint num="4" id="1440" />
+<TGConnectingPoint num="5" id="1441" />
+<TGConnectingPoint num="6" id="1442" />
+<TGConnectingPoint num="7" id="1443" />
+<TGConnectingPoint num="8" id="1444" />
+<TGConnectingPoint num="9" id="1445" />
+<TGConnectingPoint num="10" id="1446" />
+<TGConnectingPoint num="11" id="1447" />
+<TGConnectingPoint num="12" id="1448" />
+<TGConnectingPoint num="13" id="1449" />
+<TGConnectingPoint num="14" id="1450" />
+<TGConnectingPoint num="15" id="1451" />
+<TGConnectingPoint num="16" id="1452" />
+<TGConnectingPoint num="17" id="1453" />
+<TGConnectingPoint num="18" id="1454" />
+<TGConnectingPoint num="19" id="1455" />
+<TGConnectingPoint num="20" id="1456" />
+<TGConnectingPoint num="21" id="1457" />
+<TGConnectingPoint num="22" id="1458" />
+<TGConnectingPoint num="23" id="1459" />
+<TGConnectingPoint num="24" id="1460" />
+<TGConnectingPoint num="25" id="1461" />
+<TGConnectingPoint num="26" id="1462" />
+<TGConnectingPoint num="27" id="1463" />
+<TGConnectingPoint num="28" id="1464" />
+<TGConnectingPoint num="29" id="1465" />
+<TGConnectingPoint num="30" id="1466" />
+<TGConnectingPoint num="31" id="1467" />
+<TGConnectingPoint num="32" id="1468" />
+<TGConnectingPoint num="33" id="1469" />
+<TGConnectingPoint num="34" id="1470" />
+<TGConnectingPoint num="35" id="1471" />
+<TGConnectingPoint num="36" id="1472" />
+<TGConnectingPoint num="37" id="1473" />
+<TGConnectingPoint num="38" id="1474" />
+<TGConnectingPoint num="39" id="1475" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="1517" >
+<cdparam x="298" y="88" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="1477" />
+<TGConnectingPoint num="1" id="1478" />
+<TGConnectingPoint num="2" id="1479" />
+<TGConnectingPoint num="3" id="1480" />
+<TGConnectingPoint num="4" id="1481" />
+<TGConnectingPoint num="5" id="1482" />
+<TGConnectingPoint num="6" id="1483" />
+<TGConnectingPoint num="7" id="1484" />
+<TGConnectingPoint num="8" id="1485" />
+<TGConnectingPoint num="9" id="1486" />
+<TGConnectingPoint num="10" id="1487" />
+<TGConnectingPoint num="11" id="1488" />
+<TGConnectingPoint num="12" id="1489" />
+<TGConnectingPoint num="13" id="1490" />
+<TGConnectingPoint num="14" id="1491" />
+<TGConnectingPoint num="15" id="1492" />
+<TGConnectingPoint num="16" id="1493" />
+<TGConnectingPoint num="17" id="1494" />
+<TGConnectingPoint num="18" id="1495" />
+<TGConnectingPoint num="19" id="1496" />
+<TGConnectingPoint num="20" id="1497" />
+<TGConnectingPoint num="21" id="1498" />
+<TGConnectingPoint num="22" id="1499" />
+<TGConnectingPoint num="23" id="1500" />
+<TGConnectingPoint num="24" id="1501" />
+<TGConnectingPoint num="25" id="1502" />
+<TGConnectingPoint num="26" id="1503" />
+<TGConnectingPoint num="27" id="1504" />
+<TGConnectingPoint num="28" id="1505" />
+<TGConnectingPoint num="29" id="1506" />
+<TGConnectingPoint num="30" id="1507" />
+<TGConnectingPoint num="31" id="1508" />
+<TGConnectingPoint num="32" id="1509" />
+<TGConnectingPoint num="33" id="1510" />
+<TGConnectingPoint num="34" id="1511" />
+<TGConnectingPoint num="35" id="1512" />
+<TGConnectingPoint num="36" id="1513" />
+<TGConnectingPoint num="37" id="1514" />
+<TGConnectingPoint num="38" id="1515" />
+<TGConnectingPoint num="39" id="1516" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="1519" >
+<cdparam x="315" y="49" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1518" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1573" >
+<cdparam x="264" y="174" />
+<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="state0" />
+<TGConnectingPoint num="0" id="1533" />
+<TGConnectingPoint num="1" id="1534" />
+<TGConnectingPoint num="2" id="1535" />
+<TGConnectingPoint num="3" id="1536" />
+<TGConnectingPoint num="4" id="1537" />
+<TGConnectingPoint num="5" id="1538" />
+<TGConnectingPoint num="6" id="1539" />
+<TGConnectingPoint num="7" id="1540" />
+<TGConnectingPoint num="8" id="1541" />
+<TGConnectingPoint num="9" id="1542" />
+<TGConnectingPoint num="10" id="1543" />
+<TGConnectingPoint num="11" id="1544" />
+<TGConnectingPoint num="12" id="1545" />
+<TGConnectingPoint num="13" id="1546" />
+<TGConnectingPoint num="14" id="1547" />
+<TGConnectingPoint num="15" id="1548" />
+<TGConnectingPoint num="16" id="1549" />
+<TGConnectingPoint num="17" id="1550" />
+<TGConnectingPoint num="18" id="1551" />
+<TGConnectingPoint num="19" id="1552" />
+<TGConnectingPoint num="20" id="1553" />
+<TGConnectingPoint num="21" id="1554" />
+<TGConnectingPoint num="22" id="1555" />
+<TGConnectingPoint num="23" id="1556" />
+<TGConnectingPoint num="24" id="1557" />
+<TGConnectingPoint num="25" id="1558" />
+<TGConnectingPoint num="26" id="1559" />
+<TGConnectingPoint num="27" id="1560" />
+<TGConnectingPoint num="28" id="1561" />
+<TGConnectingPoint num="29" id="1562" />
+<TGConnectingPoint num="30" id="1563" />
+<TGConnectingPoint num="31" id="1564" />
+<TGConnectingPoint num="32" id="1565" />
+<TGConnectingPoint num="33" id="1566" />
+<TGConnectingPoint num="34" id="1567" />
+<TGConnectingPoint num="35" id="1568" />
+<TGConnectingPoint num="36" id="1569" />
+<TGConnectingPoint num="37" id="1570" />
+<TGConnectingPoint num="38" id="1571" />
+<TGConnectingPoint num="39" id="1572" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="5100" id="1521" >
+<father id="1573" num="0" />
+<cdparam x="333" y="213" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1520" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5103" id="1532" >
+<father id="1573" num="1" />
+<cdparam x="328" y="257" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
+<infoparam name="Send signal" value="push()" />
+<TGConnectingPoint num="0" id="1522" />
+<TGConnectingPoint num="1" id="1523" />
+<TGConnectingPoint num="2" id="1524" />
+<TGConnectingPoint num="3" id="1525" />
+<TGConnectingPoint num="4" id="1526" />
+<TGConnectingPoint num="5" id="1527" />
+<TGConnectingPoint num="6" id="1528" />
+<TGConnectingPoint num="7" id="1529" />
+<TGConnectingPoint num="8" id="1530" />
+<TGConnectingPoint num="9" id="1531" />
+</SUBCOMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="1580" >
+<cdparam x="363" y="193" />
+<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="1579" />
+<P1  x="363" y="204" id="1596" />
+<P2  x="362" y="257" id="1607" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1578" >
+<father id="1580" num="0" />
+<cdparam x="380" y="228" />
+<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1574" />
+<TGConnectingPoint num="1" id="1575" />
+<TGConnectingPoint num="2" id="1576" />
+<TGConnectingPoint num="3" id="1577" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="mechanicalDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1587" >
+<cdparam x="363" y="150" />
+<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="1586" />
+<P1  x="363" y="150" id="1653" />
+<P2  x="363" y="174" id="1595" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1585" >
+<father id="1587" num="0" />
+<cdparam x="363" y="190" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1581" />
+<TGConnectingPoint num="1" id="1582" />
+<TGConnectingPoint num="2" id="1583" />
+<TGConnectingPoint num="3" id="1584" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1594" >
+<cdparam x="362" y="101" />
+<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="1593" />
+<P1  x="362" y="101" id="1688" />
+<P2  x="363" y="120" id="1648" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1592" >
+<father id="1594" num="0" />
+<cdparam x="362" y="141" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1588" />
+<TGConnectingPoint num="1" id="1589" />
+<TGConnectingPoint num="2" id="1590" />
+<TGConnectingPoint num="3" id="1591" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="1605" >
+<cdparam x="338" y="179" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="push()" />
+<TGConnectingPoint num="0" id="1595" />
+<TGConnectingPoint num="1" id="1596" />
+<TGConnectingPoint num="2" id="1597" />
+<TGConnectingPoint num="3" id="1598" />
+<TGConnectingPoint num="4" id="1599" />
+<TGConnectingPoint num="5" id="1600" />
+<TGConnectingPoint num="6" id="1601" />
+<TGConnectingPoint num="7" id="1602" />
+<TGConnectingPoint num="8" id="1603" />
+<TGConnectingPoint num="9" id="1604" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1646" >
+<cdparam x="337" y="257" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="1606" />
+<TGConnectingPoint num="1" id="1607" />
+<TGConnectingPoint num="2" id="1608" />
+<TGConnectingPoint num="3" id="1609" />
+<TGConnectingPoint num="4" id="1610" />
+<TGConnectingPoint num="5" id="1611" />
+<TGConnectingPoint num="6" id="1612" />
+<TGConnectingPoint num="7" id="1613" />
+<TGConnectingPoint num="8" id="1614" />
+<TGConnectingPoint num="9" id="1615" />
+<TGConnectingPoint num="10" id="1616" />
+<TGConnectingPoint num="11" id="1617" />
+<TGConnectingPoint num="12" id="1618" />
+<TGConnectingPoint num="13" id="1619" />
+<TGConnectingPoint num="14" id="1620" />
+<TGConnectingPoint num="15" id="1621" />
+<TGConnectingPoint num="16" id="1622" />
+<TGConnectingPoint num="17" id="1623" />
+<TGConnectingPoint num="18" id="1624" />
+<TGConnectingPoint num="19" id="1625" />
+<TGConnectingPoint num="20" id="1626" />
+<TGConnectingPoint num="21" id="1627" />
+<TGConnectingPoint num="22" id="1628" />
+<TGConnectingPoint num="23" id="1629" />
+<TGConnectingPoint num="24" id="1630" />
+<TGConnectingPoint num="25" id="1631" />
+<TGConnectingPoint num="26" id="1632" />
+<TGConnectingPoint num="27" id="1633" />
+<TGConnectingPoint num="28" id="1634" />
+<TGConnectingPoint num="29" id="1635" />
+<TGConnectingPoint num="30" id="1636" />
+<TGConnectingPoint num="31" id="1637" />
+<TGConnectingPoint num="32" id="1638" />
+<TGConnectingPoint num="33" id="1639" />
+<TGConnectingPoint num="34" id="1640" />
+<TGConnectingPoint num="35" id="1641" />
+<TGConnectingPoint num="36" id="1642" />
+<TGConnectingPoint num="37" id="1643" />
+<TGConnectingPoint num="38" id="1644" />
+<TGConnectingPoint num="39" id="1645" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="1687" >
+<cdparam x="338" y="120" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="1647" />
+<TGConnectingPoint num="1" id="1648" />
+<TGConnectingPoint num="2" id="1649" />
+<TGConnectingPoint num="3" id="1650" />
+<TGConnectingPoint num="4" id="1651" />
+<TGConnectingPoint num="5" id="1652" />
+<TGConnectingPoint num="6" id="1653" />
+<TGConnectingPoint num="7" id="1654" />
+<TGConnectingPoint num="8" id="1655" />
+<TGConnectingPoint num="9" id="1656" />
+<TGConnectingPoint num="10" id="1657" />
+<TGConnectingPoint num="11" id="1658" />
+<TGConnectingPoint num="12" id="1659" />
+<TGConnectingPoint num="13" id="1660" />
+<TGConnectingPoint num="14" id="1661" />
+<TGConnectingPoint num="15" id="1662" />
+<TGConnectingPoint num="16" id="1663" />
+<TGConnectingPoint num="17" id="1664" />
+<TGConnectingPoint num="18" id="1665" />
+<TGConnectingPoint num="19" id="1666" />
+<TGConnectingPoint num="20" id="1667" />
+<TGConnectingPoint num="21" id="1668" />
+<TGConnectingPoint num="22" id="1669" />
+<TGConnectingPoint num="23" id="1670" />
+<TGConnectingPoint num="24" id="1671" />
+<TGConnectingPoint num="25" id="1672" />
+<TGConnectingPoint num="26" id="1673" />
+<TGConnectingPoint num="27" id="1674" />
+<TGConnectingPoint num="28" id="1675" />
+<TGConnectingPoint num="29" id="1676" />
+<TGConnectingPoint num="30" id="1677" />
+<TGConnectingPoint num="31" id="1678" />
+<TGConnectingPoint num="32" id="1679" />
+<TGConnectingPoint num="33" id="1680" />
+<TGConnectingPoint num="34" id="1681" />
+<TGConnectingPoint num="35" id="1682" />
+<TGConnectingPoint num="36" id="1683" />
+<TGConnectingPoint num="37" id="1684" />
+<TGConnectingPoint num="38" id="1685" />
+<TGConnectingPoint num="39" id="1686" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="1689" >
+<cdparam x="355" y="81" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1688" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="AVATAR Design" nameTab="DesignWithNoCompositeState" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<Validated value="Wallet;CoffeeMachine;TeaButton;CoffeeButton;" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="1691" >
+<cdparam x="321" y="567" />
+<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="1690" />
+<P1  x="559" y="330" id="1778" />
+<P2  x="560" y="377" id="1836" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<isd value="in pushCoffeeButton()" />
+<oso value="out push()" />
+<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="1693" >
+<cdparam x="275" y="114" />
+<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="1692" />
+<P1  x="306" y="109" id="1758" />
+<P2  x="445" y="108" id="1832" />
+<AutomaticDrawing  data="true" />
+<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" size="1024" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="1695" >
+<cdparam x="623" y="565" />
+<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="1694" />
+<P1  x="789" y="326" id="1803" />
+<P2  x="790" y="377" id="1837" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<isd value="in pushTeaButton()" />
+<oso value="out push()" />
+<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="303" id="1746" >
+<cdparam x="92" y="385" />
+<sizeparam width="334" height="84" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UPPAAL Pragma" value="A[] Wallet.nbOfCoins&lt;3
+A[] CoffeeButton.main
+A&lt;&gt; CoffeeMachine.WaitingForSelection
+E&lt;&gt; CoffeeMachine.WaitingForSelection
+
+" />
+<TGConnectingPoint num="0" id="1730" />
+<TGConnectingPoint num="1" id="1731" />
+<TGConnectingPoint num="2" id="1732" />
+<TGConnectingPoint num="3" id="1733" />
+<TGConnectingPoint num="4" id="1734" />
+<TGConnectingPoint num="5" id="1735" />
+<TGConnectingPoint num="6" id="1736" />
+<TGConnectingPoint num="7" id="1737" />
+<TGConnectingPoint num="8" id="1738" />
+<TGConnectingPoint num="9" id="1739" />
+<TGConnectingPoint num="10" id="1740" />
+<TGConnectingPoint num="11" id="1741" />
+<TGConnectingPoint num="12" id="1742" />
+<TGConnectingPoint num="13" id="1743" />
+<TGConnectingPoint num="14" id="1744" />
+<TGConnectingPoint num="15" id="1745" />
+<extraparam>
+<Line value="A[] Wallet.nbOfCoins&lt;3" />
+<Line value="A[] CoffeeButton.main" />
+<Line value="A&lt;&gt; CoffeeMachine.WaitingForSelection" />
+<Line value="E&lt;&gt; CoffeeMachine.WaitingForSelection" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="1771" >
+<cdparam x="106" y="55" />
+<sizeparam width="200" height="218" 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="Wallet" />
+<TGConnectingPoint num="0" id="1747" />
+<TGConnectingPoint num="1" id="1748" />
+<TGConnectingPoint num="2" id="1749" />
+<TGConnectingPoint num="3" id="1750" />
+<TGConnectingPoint num="4" id="1751" />
+<TGConnectingPoint num="5" id="1752" />
+<TGConnectingPoint num="6" id="1753" />
+<TGConnectingPoint num="7" id="1754" />
+<TGConnectingPoint num="8" id="1755" />
+<TGConnectingPoint num="9" id="1756" />
+<TGConnectingPoint num="10" id="1757" />
+<TGConnectingPoint num="11" id="1758" />
+<TGConnectingPoint num="12" id="1759" />
+<TGConnectingPoint num="13" id="1760" />
+<TGConnectingPoint num="14" id="1761" />
+<TGConnectingPoint num="15" id="1762" />
+<TGConnectingPoint num="16" id="1763" />
+<TGConnectingPoint num="17" id="1764" />
+<TGConnectingPoint num="18" id="1765" />
+<TGConnectingPoint num="19" id="1766" />
+<TGConnectingPoint num="20" id="1767" />
+<TGConnectingPoint num="21" id="1768" />
+<TGConnectingPoint num="22" id="1769" />
+<TGConnectingPoint num="23" id="1770" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="nbOfCoins" value="2" type="8" typeOther="" />
+<Attribute access="0" id="x" value="1" type="8" typeOther="" />
+<Attribute access="0" id="minUserDelay" value="50" type="8" typeOther="" />
+<Attribute access="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" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="1846" >
+<cdparam x="445" y="19" />
+<sizeparam width="461" height="358" 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="CoffeeMachine" />
+<TGConnectingPoint num="0" id="1822" />
+<TGConnectingPoint num="1" id="1823" />
+<TGConnectingPoint num="2" id="1824" />
+<TGConnectingPoint num="3" id="1825" />
+<TGConnectingPoint num="4" id="1826" />
+<TGConnectingPoint num="5" id="1827" />
+<TGConnectingPoint num="6" id="1828" />
+<TGConnectingPoint num="7" id="1829" />
+<TGConnectingPoint num="8" id="1830" />
+<TGConnectingPoint num="9" id="1831" />
+<TGConnectingPoint num="10" id="1832" />
+<TGConnectingPoint num="11" id="1833" />
+<TGConnectingPoint num="12" id="1834" />
+<TGConnectingPoint num="13" id="1835" />
+<TGConnectingPoint num="14" id="1836" />
+<TGConnectingPoint num="15" id="1837" />
+<TGConnectingPoint num="16" id="1838" />
+<TGConnectingPoint num="17" id="1839" />
+<TGConnectingPoint num="18" id="1840" />
+<TGConnectingPoint num="19" id="1841" />
+<TGConnectingPoint num="20" id="1842" />
+<TGConnectingPoint num="21" id="1843" />
+<TGConnectingPoint num="22" id="1844" />
+<TGConnectingPoint num="23" id="1845" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="teaMinDelay" value="3" type="8" typeOther="" />
+<Attribute access="0" id="teaMaxDelay" value="8" type="8" typeOther="" />
+<Attribute access="0" id="coffeeMinDelay" value="5" type="8" typeOther="" />
+<Attribute access="0" id="coffeeMaxDelay" value="10" type="8" typeOther="" />
+<Attribute access="0" id="coinDelay" value="50" type="8" typeOther="" />
+<Attribute access="0" id="x" value="0" type="8" typeOther="" />
+<Attribute access="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="1796" >
+<father id="1846" num="0" />
+<cdparam x="464" y="228" />
+<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" />
+<infoparam name="Block1" value="CoffeeButton" />
+<TGConnectingPoint num="0" id="1772" />
+<TGConnectingPoint num="1" id="1773" />
+<TGConnectingPoint num="2" id="1774" />
+<TGConnectingPoint num="3" id="1775" />
+<TGConnectingPoint num="4" id="1776" />
+<TGConnectingPoint num="5" id="1777" />
+<TGConnectingPoint num="6" id="1778" />
+<TGConnectingPoint num="7" id="1779" />
+<TGConnectingPoint num="8" id="1780" />
+<TGConnectingPoint num="9" id="1781" />
+<TGConnectingPoint num="10" id="1782" />
+<TGConnectingPoint num="11" id="1783" />
+<TGConnectingPoint num="12" id="1784" />
+<TGConnectingPoint num="13" id="1785" />
+<TGConnectingPoint num="14" id="1786" />
+<TGConnectingPoint num="15" id="1787" />
+<TGConnectingPoint num="16" id="1788" />
+<TGConnectingPoint num="17" id="1789" />
+<TGConnectingPoint num="18" id="1790" />
+<TGConnectingPoint num="19" id="1791" />
+<TGConnectingPoint num="20" id="1792" />
+<TGConnectingPoint num="21" id="1793" />
+<TGConnectingPoint num="22" id="1794" />
+<TGConnectingPoint num="23" id="1795" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="mechanicalDelay" value="80" type="8" typeOther="" />
+<Signal value="out push()" attached="true" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5000" id="1821" >
+<father id="1846" num="1" />
+<cdparam x="695" y="224" />
+<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
+<infoparam name="Block1" value="TeaButton" />
+<TGConnectingPoint num="0" id="1797" />
+<TGConnectingPoint num="1" id="1798" />
+<TGConnectingPoint num="2" id="1799" />
+<TGConnectingPoint num="3" id="1800" />
+<TGConnectingPoint num="4" id="1801" />
+<TGConnectingPoint num="5" id="1802" />
+<TGConnectingPoint num="6" id="1803" />
+<TGConnectingPoint num="7" id="1804" />
+<TGConnectingPoint num="8" id="1805" />
+<TGConnectingPoint num="9" id="1806" />
+<TGConnectingPoint num="10" id="1807" />
+<TGConnectingPoint num="11" id="1808" />
+<TGConnectingPoint num="12" id="1809" />
+<TGConnectingPoint num="13" id="1810" />
+<TGConnectingPoint num="14" id="1811" />
+<TGConnectingPoint num="15" id="1812" />
+<TGConnectingPoint num="16" id="1813" />
+<TGConnectingPoint num="17" id="1814" />
+<TGConnectingPoint num="18" id="1815" />
+<TGConnectingPoint num="19" id="1816" />
+<TGConnectingPoint num="20" id="1817" />
+<TGConnectingPoint num="21" id="1818" />
+<TGConnectingPoint num="22" id="1819" />
+<TGConnectingPoint num="23" id="1820" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="mechanicalDelay" value="10" type="8" typeOther="" />
+<Signal value="out push()" attached="true" />
+</extraparam>
+</SUBCOMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Wallet" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="1853" >
+<cdparam x="516" y="264" />
+<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="1852" />
+<P1  x="485" y="219" id="1894" />
+<P2  x="485" y="274" id="1905" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1851" >
+<father id="1853" num="0" />
+<cdparam x="493" y="251" />
+<sizeparam width="173" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1847" />
+<TGConnectingPoint num="1" id="1848" />
+<TGConnectingPoint num="2" id="1849" />
+<TGConnectingPoint num="3" id="1850" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = nbOfCoins + x" />
+<actions value="contentOfWallet(nbOfCoins)" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1860" >
+<cdparam x="382" y="165" />
+<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="1859" />
+<P1  x="382" y="165" id="2001" />
+<P2  x="485" y="189" id="1893" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1858" >
+<father id="1860" num="0" />
+<cdparam x="382" y="205" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1854" />
+<TGConnectingPoint num="1" id="1855" />
+<TGConnectingPoint num="2" id="1856" />
+<TGConnectingPoint num="3" id="1857" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1867" >
+<cdparam x="223" y="260" />
+<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="1866" />
+<P1  x="251" y="231" id="1883" />
+<P2  x="252" y="300" id="1946" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1865" >
+<father id="1867" num="0" />
+<cdparam x="163" y="252" />
+<sizeparam width="221" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1861" />
+<TGConnectingPoint num="1" id="1862" />
+<TGConnectingPoint num="2" id="1863" />
+<TGConnectingPoint num="3" id="1864" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="minUserDelay" />
+<afterMax value="maxUserDelay" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = nbOfCoins - x" />
+<actions value="contentOfWallet(nbOfCoins)" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1874" >
+<cdparam x="357" y="165" />
+<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="1873" />
+<P1  x="357" y="165" id="2000" />
+<P2  x="251" y="201" id="1882" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1872" >
+<father id="1874" num="0" />
+<cdparam x="220" y="174" />
+<sizeparam width="99" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1868" />
+<TGConnectingPoint num="1" id="1869" />
+<TGConnectingPoint num="2" id="1870" />
+<TGConnectingPoint num="3" id="1871" />
+<extraparam>
+<guard value="[nbOfCoins &gt; 0]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1881" >
+<cdparam x="369" y="115" />
+<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="1880" />
+<P1  x="370" y="64" id="2027" />
+<P2  x="370" y="135" id="1987" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1879" >
+<father id="1881" num="0" />
+<cdparam x="376" y="105" />
+<sizeparam width="173" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1875" />
+<TGConnectingPoint num="1" id="1876" />
+<TGConnectingPoint num="2" id="1877" />
+<TGConnectingPoint num="3" id="1878" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="contentOfWallet(nbOfCoins)" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="1892" >
+<cdparam x="214" y="206" />
+<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="putCoin(x)" />
+<TGConnectingPoint num="0" id="1882" />
+<TGConnectingPoint num="1" id="1883" />
+<TGConnectingPoint num="2" id="1884" />
+<TGConnectingPoint num="3" id="1885" />
+<TGConnectingPoint num="4" id="1886" />
+<TGConnectingPoint num="5" id="1887" />
+<TGConnectingPoint num="6" id="1888" />
+<TGConnectingPoint num="7" id="1889" />
+<TGConnectingPoint num="8" id="1890" />
+<TGConnectingPoint num="9" id="1891" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="1903" >
+<cdparam x="444" y="194" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="getCoin(x)" />
+<TGConnectingPoint num="0" id="1893" />
+<TGConnectingPoint num="1" id="1894" />
+<TGConnectingPoint num="2" id="1895" />
+<TGConnectingPoint num="3" id="1896" />
+<TGConnectingPoint num="4" id="1897" />
+<TGConnectingPoint num="5" id="1898" />
+<TGConnectingPoint num="6" id="1899" />
+<TGConnectingPoint num="7" id="1900" />
+<TGConnectingPoint num="8" id="1901" />
+<TGConnectingPoint num="9" id="1902" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1944" >
+<cdparam x="460" y="274" />
+<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="1904" />
+<TGConnectingPoint num="1" id="1905" />
+<TGConnectingPoint num="2" id="1906" />
+<TGConnectingPoint num="3" id="1907" />
+<TGConnectingPoint num="4" id="1908" />
+<TGConnectingPoint num="5" id="1909" />
+<TGConnectingPoint num="6" id="1910" />
+<TGConnectingPoint num="7" id="1911" />
+<TGConnectingPoint num="8" id="1912" />
+<TGConnectingPoint num="9" id="1913" />
+<TGConnectingPoint num="10" id="1914" />
+<TGConnectingPoint num="11" id="1915" />
+<TGConnectingPoint num="12" id="1916" />
+<TGConnectingPoint num="13" id="1917" />
+<TGConnectingPoint num="14" id="1918" />
+<TGConnectingPoint num="15" id="1919" />
+<TGConnectingPoint num="16" id="1920" />
+<TGConnectingPoint num="17" id="1921" />
+<TGConnectingPoint num="18" id="1922" />
+<TGConnectingPoint num="19" id="1923" />
+<TGConnectingPoint num="20" id="1924" />
+<TGConnectingPoint num="21" id="1925" />
+<TGConnectingPoint num="22" id="1926" />
+<TGConnectingPoint num="23" id="1927" />
+<TGConnectingPoint num="24" id="1928" />
+<TGConnectingPoint num="25" id="1929" />
+<TGConnectingPoint num="26" id="1930" />
+<TGConnectingPoint num="27" id="1931" />
+<TGConnectingPoint num="28" id="1932" />
+<TGConnectingPoint num="29" id="1933" />
+<TGConnectingPoint num="30" id="1934" />
+<TGConnectingPoint num="31" id="1935" />
+<TGConnectingPoint num="32" id="1936" />
+<TGConnectingPoint num="33" id="1937" />
+<TGConnectingPoint num="34" id="1938" />
+<TGConnectingPoint num="35" id="1939" />
+<TGConnectingPoint num="36" id="1940" />
+<TGConnectingPoint num="37" id="1941" />
+<TGConnectingPoint num="38" id="1942" />
+<TGConnectingPoint num="39" id="1943" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="1985" >
+<cdparam x="227" y="300" />
+<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="1945" />
+<TGConnectingPoint num="1" id="1946" />
+<TGConnectingPoint num="2" id="1947" />
+<TGConnectingPoint num="3" id="1948" />
+<TGConnectingPoint num="4" id="1949" />
+<TGConnectingPoint num="5" id="1950" />
+<TGConnectingPoint num="6" id="1951" />
+<TGConnectingPoint num="7" id="1952" />
+<TGConnectingPoint num="8" id="1953" />
+<TGConnectingPoint num="9" id="1954" />
+<TGConnectingPoint num="10" id="1955" />
+<TGConnectingPoint num="11" id="1956" />
+<TGConnectingPoint num="12" id="1957" />
+<TGConnectingPoint num="13" id="1958" />
+<TGConnectingPoint num="14" id="1959" />
+<TGConnectingPoint num="15" id="1960" />
+<TGConnectingPoint num="16" id="1961" />
+<TGConnectingPoint num="17" id="1962" />
+<TGConnectingPoint num="18" id="1963" />
+<TGConnectingPoint num="19" id="1964" />
+<TGConnectingPoint num="20" id="1965" />
+<TGConnectingPoint num="21" id="1966" />
+<TGConnectingPoint num="22" id="1967" />
+<TGConnectingPoint num="23" id="1968" />
+<TGConnectingPoint num="24" id="1969" />
+<TGConnectingPoint num="25" id="1970" />
+<TGConnectingPoint num="26" id="1971" />
+<TGConnectingPoint num="27" id="1972" />
+<TGConnectingPoint num="28" id="1973" />
+<TGConnectingPoint num="29" id="1974" />
+<TGConnectingPoint num="30" id="1975" />
+<TGConnectingPoint num="31" id="1976" />
+<TGConnectingPoint num="32" id="1977" />
+<TGConnectingPoint num="33" id="1978" />
+<TGConnectingPoint num="34" id="1979" />
+<TGConnectingPoint num="35" id="1980" />
+<TGConnectingPoint num="36" id="1981" />
+<TGConnectingPoint num="37" id="1982" />
+<TGConnectingPoint num="38" id="1983" />
+<TGConnectingPoint num="39" id="1984" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="2026" >
+<cdparam x="345" y="135" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="1986" />
+<TGConnectingPoint num="1" id="1987" />
+<TGConnectingPoint num="2" id="1988" />
+<TGConnectingPoint num="3" id="1989" />
+<TGConnectingPoint num="4" id="1990" />
+<TGConnectingPoint num="5" id="1991" />
+<TGConnectingPoint num="6" id="1992" />
+<TGConnectingPoint num="7" id="1993" />
+<TGConnectingPoint num="8" id="1994" />
+<TGConnectingPoint num="9" id="1995" />
+<TGConnectingPoint num="10" id="1996" />
+<TGConnectingPoint num="11" id="1997" />
+<TGConnectingPoint num="12" id="1998" />
+<TGConnectingPoint num="13" id="1999" />
+<TGConnectingPoint num="14" id="2000" />
+<TGConnectingPoint num="15" id="2001" />
+<TGConnectingPoint num="16" id="2002" />
+<TGConnectingPoint num="17" id="2003" />
+<TGConnectingPoint num="18" id="2004" />
+<TGConnectingPoint num="19" id="2005" />
+<TGConnectingPoint num="20" id="2006" />
+<TGConnectingPoint num="21" id="2007" />
+<TGConnectingPoint num="22" id="2008" />
+<TGConnectingPoint num="23" id="2009" />
+<TGConnectingPoint num="24" id="2010" />
+<TGConnectingPoint num="25" id="2011" />
+<TGConnectingPoint num="26" id="2012" />
+<TGConnectingPoint num="27" id="2013" />
+<TGConnectingPoint num="28" id="2014" />
+<TGConnectingPoint num="29" id="2015" />
+<TGConnectingPoint num="30" id="2016" />
+<TGConnectingPoint num="31" id="2017" />
+<TGConnectingPoint num="32" id="2018" />
+<TGConnectingPoint num="33" id="2019" />
+<TGConnectingPoint num="34" id="2020" />
+<TGConnectingPoint num="35" id="2021" />
+<TGConnectingPoint num="36" id="2022" />
+<TGConnectingPoint num="37" id="2023" />
+<TGConnectingPoint num="38" id="2024" />
+<TGConnectingPoint num="39" id="2025" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="2028" >
+<cdparam x="363" y="44" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2027" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="CoffeeMachine" minX="10" maxX="1400" minY="10" maxY="1400" >
+<CONNECTOR type="5102" id="2035" >
+<cdparam x="691" y="288" />
+<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="2034" />
+<P1  x="699" y="289" id="2240" />
+<P2  x="699" y="316" id="2212" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2033" >
+<father id="2035" num="0" />
+<cdparam x="691" y="328" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2029" />
+<TGConnectingPoint num="1" id="2030" />
+<TGConnectingPoint num="2" id="2031" />
+<TGConnectingPoint num="3" id="2032" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2042" >
+<cdparam x="481" y="501" />
+<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="2041" />
+<P1  x="433" y="526" id="2139" />
+<P2  x="323" y="748" id="2368" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2040" >
+<father id="2042" num="0" />
+<cdparam x="420" y="552" />
+<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2036" />
+<TGConnectingPoint num="1" id="2037" />
+<TGConnectingPoint num="2" id="2038" />
+<TGConnectingPoint num="3" id="2039" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = 0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2049" >
+<cdparam x="555" y="559" />
+<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="2048" />
+<P1  x="317" y="456" id="2164" />
+<P2  x="433" y="496" id="2138" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2047" >
+<father id="2049" num="0" />
+<cdparam x="395" y="448" />
+<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2043" />
+<TGConnectingPoint num="1" id="2044" />
+<TGConnectingPoint num="2" id="2045" />
+<TGConnectingPoint num="3" id="2046" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="coinDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2056" >
+<cdparam x="355" y="545" />
+<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="2055" />
+<P1  x="289" y="553" id="2150" />
+<P2  x="289" y="748" id="2360" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2054" >
+<father id="2056" num="0" />
+<cdparam x="284" y="594" />
+<sizeparam width="248" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2050" />
+<TGConnectingPoint num="1" id="2051" />
+<TGConnectingPoint num="2" id="2052" />
+<TGConnectingPoint num="3" id="2053" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="teaMinDelay" />
+<computeMax value="teaMaxDelay" />
+<actions value="nbOfCoins = 0" />
+<actions value="beverageReady()" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2063" >
+<cdparam x="295" y="465" />
+<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="2062" />
+<P1  x="284" y="476" id="2175" />
+<P2  x="289" y="523" id="2149" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2061" >
+<father id="2063" num="0" />
+<cdparam x="295" y="505" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2057" />
+<TGConnectingPoint num="1" id="2058" />
+<TGConnectingPoint num="2" id="2059" />
+<TGConnectingPoint num="3" id="2060" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2070" >
+<cdparam x="148" y="549" />
+<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="2069" />
+<P1  x="117" y="553" id="2128" />
+<P2  x="255" y="748" id="2367" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2068" >
+<father id="2070" num="0" />
+<cdparam x="32" y="587" />
+<sizeparam width="284" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2064" />
+<TGConnectingPoint num="1" id="2065" />
+<TGConnectingPoint num="2" id="2066" />
+<TGConnectingPoint num="3" id="2067" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="coffeeMinDelay" />
+<computeMax value="coffeeMaxDelay" />
+<actions value="nbOfCoins = 0" />
+<actions value="beverageReady()" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2077" >
+<cdparam x="229" y="465" />
+<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="2076" />
+<P1  x="218" y="476" id="2174" />
+<P2  x="117" y="523" id="2127" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2075" >
+<father id="2077" num="0" />
+<cdparam x="229" y="505" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2071" />
+<TGConnectingPoint num="1" id="2072" />
+<TGConnectingPoint num="2" id="2073" />
+<TGConnectingPoint num="3" id="2074" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2084" >
+<cdparam x="667" y="346" />
+<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="2083" />
+<P1  x="699" y="346" id="2213" />
+<P2  x="699" y="381" id="2401" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2082" >
+<father id="2084" num="0" />
+<cdparam x="707" y="368" />
+<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2078" />
+<TGConnectingPoint num="1" id="2079" />
+<TGConnectingPoint num="2" id="2080" />
+<TGConnectingPoint num="3" id="2081" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = 0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2091" >
+<cdparam x="348" y="228" />
+<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="2090" />
+<P1  x="388" y="208" id="2279" />
+<P2  x="649" y="264" id="2237" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2089" >
+<father id="2091" num="0" />
+<cdparam x="411" y="206" />
+<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2085" />
+<TGConnectingPoint num="1" id="2086" />
+<TGConnectingPoint num="2" id="2087" />
+<TGConnectingPoint num="3" id="2088" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="coinDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2098" >
+<cdparam x="243" y="319" />
+<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="2097" />
+<P1  x="277" y="305" id="2224" />
+<P2  x="251" y="436" id="2161" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2096" >
+<father id="2098" num="0" />
+<cdparam x="243" y="359" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2092" />
+<TGConnectingPoint num="1" id="2093" />
+<TGConnectingPoint num="2" id="2094" />
+<TGConnectingPoint num="3" id="2095" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2105" >
+<cdparam x="270" y="224" />
+<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="2104" />
+<P1  x="270" y="228" id="2289" />
+<P2  x="277" y="275" id="2223" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2103" >
+<father id="2105" num="0" />
+<cdparam x="270" y="264" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2099" />
+<TGConnectingPoint num="1" id="2100" />
+<TGConnectingPoint num="2" id="2101" />
+<TGConnectingPoint num="3" id="2102" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2112" >
+<cdparam x="309" y="160" />
+<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="2111" />
+<P1  x="306" y="166" id="2202" />
+<P2  x="309" y="188" id="2276" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2110" >
+<father id="2112" num="0" />
+<cdparam x="328" y="178" />
+<sizeparam width="168" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2106" />
+<TGConnectingPoint num="1" id="2107" />
+<TGConnectingPoint num="2" id="2108" />
+<TGConnectingPoint num="3" id="2109" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="nbOfCoins = nbOfCoins + x" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2119" >
+<cdparam x="303" y="103" />
+<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="2118" />
+<P1  x="303" y="103" id="2324" />
+<P2  x="306" y="136" id="2201" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2117" >
+<father id="2119" num="0" />
+<cdparam x="303" y="143" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2113" />
+<TGConnectingPoint num="1" id="2114" />
+<TGConnectingPoint num="2" id="2115" />
+<TGConnectingPoint num="3" id="2116" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2126" >
+<cdparam x="303" y="40" />
+<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="2125" />
+<P1  x="303" y="40" id="2316" />
+<P2  x="303" y="63" id="2319" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2124" >
+<father id="2126" num="0" />
+<cdparam x="303" y="80" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2120" />
+<TGConnectingPoint num="1" id="2121" />
+<TGConnectingPoint num="2" id="2122" />
+<TGConnectingPoint num="3" id="2123" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="2137" >
+<cdparam x="47" y="528" />
+<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Send signal" value="pushCoffeeButton()" />
+<TGConnectingPoint num="0" id="2127" />
+<TGConnectingPoint num="1" id="2128" />
+<TGConnectingPoint num="2" id="2129" />
+<TGConnectingPoint num="3" id="2130" />
+<TGConnectingPoint num="4" id="2131" />
+<TGConnectingPoint num="5" id="2132" />
+<TGConnectingPoint num="6" id="2133" />
+<TGConnectingPoint num="7" id="2134" />
+<TGConnectingPoint num="8" id="2135" />
+<TGConnectingPoint num="9" id="2136" />
+<accessibility />
+</COMPONENT>
+
+<COMPONENT type="5103" id="2148" >
+<cdparam x="363" y="501" />
+<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
+<TGConnectingPoint num="0" id="2138" />
+<TGConnectingPoint num="1" id="2139" />
+<TGConnectingPoint num="2" id="2140" />
+<TGConnectingPoint num="3" id="2141" />
+<TGConnectingPoint num="4" id="2142" />
+<TGConnectingPoint num="5" id="2143" />
+<TGConnectingPoint num="6" id="2144" />
+<TGConnectingPoint num="7" id="2145" />
+<TGConnectingPoint num="8" id="2146" />
+<TGConnectingPoint num="9" id="2147" />
+<accessibility />
+</COMPONENT>
+
+<COMPONENT type="5104" id="2159" >
+<cdparam x="227" y="528" />
+<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Send signal" value="pushTeaButton()" />
+<TGConnectingPoint num="0" id="2149" />
+<TGConnectingPoint num="1" id="2150" />
+<TGConnectingPoint num="2" id="2151" />
+<TGConnectingPoint num="3" id="2152" />
+<TGConnectingPoint num="4" id="2153" />
+<TGConnectingPoint num="5" id="2154" />
+<TGConnectingPoint num="6" id="2155" />
+<TGConnectingPoint num="7" id="2156" />
+<TGConnectingPoint num="8" id="2157" />
+<TGConnectingPoint num="9" id="2158" />
+<accessibility />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2200" >
+<cdparam x="185" y="436" />
+<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForSelection" />
+<TGConnectingPoint num="0" id="2160" />
+<TGConnectingPoint num="1" id="2161" />
+<TGConnectingPoint num="2" id="2162" />
+<TGConnectingPoint num="3" id="2163" />
+<TGConnectingPoint num="4" id="2164" />
+<TGConnectingPoint num="5" id="2165" />
+<TGConnectingPoint num="6" id="2166" />
+<TGConnectingPoint num="7" id="2167" />
+<TGConnectingPoint num="8" id="2168" />
+<TGConnectingPoint num="9" id="2169" />
+<TGConnectingPoint num="10" id="2170" />
+<TGConnectingPoint num="11" id="2171" />
+<TGConnectingPoint num="12" id="2172" />
+<TGConnectingPoint num="13" id="2173" />
+<TGConnectingPoint num="14" id="2174" />
+<TGConnectingPoint num="15" id="2175" />
+<TGConnectingPoint num="16" id="2176" />
+<TGConnectingPoint num="17" id="2177" />
+<TGConnectingPoint num="18" id="2178" />
+<TGConnectingPoint num="19" id="2179" />
+<TGConnectingPoint num="20" id="2180" />
+<TGConnectingPoint num="21" id="2181" />
+<TGConnectingPoint num="22" id="2182" />
+<TGConnectingPoint num="23" id="2183" />
+<TGConnectingPoint num="24" id="2184" />
+<TGConnectingPoint num="25" id="2185" />
+<TGConnectingPoint num="26" id="2186" />
+<TGConnectingPoint num="27" id="2187" />
+<TGConnectingPoint num="28" id="2188" />
+<TGConnectingPoint num="29" id="2189" />
+<TGConnectingPoint num="30" id="2190" />
+<TGConnectingPoint num="31" id="2191" />
+<TGConnectingPoint num="32" id="2192" />
+<TGConnectingPoint num="33" id="2193" />
+<TGConnectingPoint num="34" id="2194" />
+<TGConnectingPoint num="35" id="2195" />
+<TGConnectingPoint num="36" id="2196" />
+<TGConnectingPoint num="37" id="2197" />
+<TGConnectingPoint num="38" id="2198" />
+<TGConnectingPoint num="39" id="2199" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5104" id="2211" >
+<cdparam x="265" y="141" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="getCoin(x)" />
+<TGConnectingPoint num="0" id="2201" />
+<TGConnectingPoint num="1" id="2202" />
+<TGConnectingPoint num="2" id="2203" />
+<TGConnectingPoint num="3" id="2204" />
+<TGConnectingPoint num="4" id="2205" />
+<TGConnectingPoint num="5" id="2206" />
+<TGConnectingPoint num="6" id="2207" />
+<TGConnectingPoint num="7" id="2208" />
+<TGConnectingPoint num="8" id="2209" />
+<TGConnectingPoint num="9" id="2210" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="2222" >
+<cdparam x="629" y="321" />
+<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
+<TGConnectingPoint num="0" id="2212" />
+<TGConnectingPoint num="1" id="2213" />
+<TGConnectingPoint num="2" id="2214" />
+<TGConnectingPoint num="3" id="2215" />
+<TGConnectingPoint num="4" id="2216" />
+<TGConnectingPoint num="5" id="2217" />
+<TGConnectingPoint num="6" id="2218" />
+<TGConnectingPoint num="7" id="2219" />
+<TGConnectingPoint num="8" id="2220" />
+<TGConnectingPoint num="9" id="2221" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="2233" >
+<cdparam x="236" y="280" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="getCoin(x)" />
+<TGConnectingPoint num="0" id="2223" />
+<TGConnectingPoint num="1" id="2224" />
+<TGConnectingPoint num="2" id="2225" />
+<TGConnectingPoint num="3" id="2226" />
+<TGConnectingPoint num="4" id="2227" />
+<TGConnectingPoint num="5" id="2228" />
+<TGConnectingPoint num="6" id="2229" />
+<TGConnectingPoint num="7" id="2230" />
+<TGConnectingPoint num="8" id="2231" />
+<TGConnectingPoint num="9" id="2232" />
+<accessibility />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2274" >
+<cdparam x="649" y="239" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="ejectState" />
+<TGConnectingPoint num="0" id="2234" />
+<TGConnectingPoint num="1" id="2235" />
+<TGConnectingPoint num="2" id="2236" />
+<TGConnectingPoint num="3" id="2237" />
+<TGConnectingPoint num="4" id="2238" />
+<TGConnectingPoint num="5" id="2239" />
+<TGConnectingPoint num="6" id="2240" />
+<TGConnectingPoint num="7" id="2241" />
+<TGConnectingPoint num="8" id="2242" />
+<TGConnectingPoint num="9" id="2243" />
+<TGConnectingPoint num="10" id="2244" />
+<TGConnectingPoint num="11" id="2245" />
+<TGConnectingPoint num="12" id="2246" />
+<TGConnectingPoint num="13" id="2247" />
+<TGConnectingPoint num="14" id="2248" />
+<TGConnectingPoint num="15" id="2249" />
+<TGConnectingPoint num="16" id="2250" />
+<TGConnectingPoint num="17" id="2251" />
+<TGConnectingPoint num="18" id="2252" />
+<TGConnectingPoint num="19" id="2253" />
+<TGConnectingPoint num="20" id="2254" />
+<TGConnectingPoint num="21" id="2255" />
+<TGConnectingPoint num="22" id="2256" />
+<TGConnectingPoint num="23" id="2257" />
+<TGConnectingPoint num="24" id="2258" />
+<TGConnectingPoint num="25" id="2259" />
+<TGConnectingPoint num="26" id="2260" />
+<TGConnectingPoint num="27" id="2261" />
+<TGConnectingPoint num="28" id="2262" />
+<TGConnectingPoint num="29" id="2263" />
+<TGConnectingPoint num="30" id="2264" />
+<TGConnectingPoint num="31" id="2265" />
+<TGConnectingPoint num="32" id="2266" />
+<TGConnectingPoint num="33" id="2267" />
+<TGConnectingPoint num="34" id="2268" />
+<TGConnectingPoint num="35" id="2269" />
+<TGConnectingPoint num="36" id="2270" />
+<TGConnectingPoint num="37" id="2271" />
+<TGConnectingPoint num="38" id="2272" />
+<TGConnectingPoint num="39" id="2273" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="2315" >
+<cdparam x="231" y="188" />
+<sizeparam width="157" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForSecondCoin" />
+<TGConnectingPoint num="0" id="2275" />
+<TGConnectingPoint num="1" id="2276" />
+<TGConnectingPoint num="2" id="2277" />
+<TGConnectingPoint num="3" id="2278" />
+<TGConnectingPoint num="4" id="2279" />
+<TGConnectingPoint num="5" id="2280" />
+<TGConnectingPoint num="6" id="2281" />
+<TGConnectingPoint num="7" id="2282" />
+<TGConnectingPoint num="8" id="2283" />
+<TGConnectingPoint num="9" id="2284" />
+<TGConnectingPoint num="10" id="2285" />
+<TGConnectingPoint num="11" id="2286" />
+<TGConnectingPoint num="12" id="2287" />
+<TGConnectingPoint num="13" id="2288" />
+<TGConnectingPoint num="14" id="2289" />
+<TGConnectingPoint num="15" id="2290" />
+<TGConnectingPoint num="16" id="2291" />
+<TGConnectingPoint num="17" id="2292" />
+<TGConnectingPoint num="18" id="2293" />
+<TGConnectingPoint num="19" id="2294" />
+<TGConnectingPoint num="20" id="2295" />
+<TGConnectingPoint num="21" id="2296" />
+<TGConnectingPoint num="22" id="2297" />
+<TGConnectingPoint num="23" id="2298" />
+<TGConnectingPoint num="24" id="2299" />
+<TGConnectingPoint num="25" id="2300" />
+<TGConnectingPoint num="26" id="2301" />
+<TGConnectingPoint num="27" id="2302" />
+<TGConnectingPoint num="28" id="2303" />
+<TGConnectingPoint num="29" id="2304" />
+<TGConnectingPoint num="30" id="2305" />
+<TGConnectingPoint num="31" id="2306" />
+<TGConnectingPoint num="32" id="2307" />
+<TGConnectingPoint num="33" id="2308" />
+<TGConnectingPoint num="34" id="2309" />
+<TGConnectingPoint num="35" id="2310" />
+<TGConnectingPoint num="36" id="2311" />
+<TGConnectingPoint num="37" id="2312" />
+<TGConnectingPoint num="38" id="2313" />
+<TGConnectingPoint num="39" id="2314" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="2317" >
+<cdparam x="296" y="20" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="2316" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2358" >
+<cdparam x="235" y="63" />
+<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForFirstCoin" />
+<TGConnectingPoint num="0" id="2318" />
+<TGConnectingPoint num="1" id="2319" />
+<TGConnectingPoint num="2" id="2320" />
+<TGConnectingPoint num="3" id="2321" />
+<TGConnectingPoint num="4" id="2322" />
+<TGConnectingPoint num="5" id="2323" />
+<TGConnectingPoint num="6" id="2324" />
+<TGConnectingPoint num="7" id="2325" />
+<TGConnectingPoint num="8" id="2326" />
+<TGConnectingPoint num="9" id="2327" />
+<TGConnectingPoint num="10" id="2328" />
+<TGConnectingPoint num="11" id="2329" />
+<TGConnectingPoint num="12" id="2330" />
+<TGConnectingPoint num="13" id="2331" />
+<TGConnectingPoint num="14" id="2332" />
+<TGConnectingPoint num="15" id="2333" />
+<TGConnectingPoint num="16" id="2334" />
+<TGConnectingPoint num="17" id="2335" />
+<TGConnectingPoint num="18" id="2336" />
+<TGConnectingPoint num="19" id="2337" />
+<TGConnectingPoint num="20" id="2338" />
+<TGConnectingPoint num="21" id="2339" />
+<TGConnectingPoint num="22" id="2340" />
+<TGConnectingPoint num="23" id="2341" />
+<TGConnectingPoint num="24" id="2342" />
+<TGConnectingPoint num="25" id="2343" />
+<TGConnectingPoint num="26" id="2344" />
+<TGConnectingPoint num="27" id="2345" />
+<TGConnectingPoint num="28" id="2346" />
+<TGConnectingPoint num="29" id="2347" />
+<TGConnectingPoint num="30" id="2348" />
+<TGConnectingPoint num="31" id="2349" />
+<TGConnectingPoint num="32" id="2350" />
+<TGConnectingPoint num="33" id="2351" />
+<TGConnectingPoint num="34" id="2352" />
+<TGConnectingPoint num="35" id="2353" />
+<TGConnectingPoint num="36" id="2354" />
+<TGConnectingPoint num="37" id="2355" />
+<TGConnectingPoint num="38" id="2356" />
+<TGConnectingPoint num="39" id="2357" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="2399" >
+<cdparam x="221" y="748" />
+<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForFirstCoin" />
+<TGConnectingPoint num="0" id="2359" />
+<TGConnectingPoint num="1" id="2360" />
+<TGConnectingPoint num="2" id="2361" />
+<TGConnectingPoint num="3" id="2362" />
+<TGConnectingPoint num="4" id="2363" />
+<TGConnectingPoint num="5" id="2364" />
+<TGConnectingPoint num="6" id="2365" />
+<TGConnectingPoint num="7" id="2366" />
+<TGConnectingPoint num="8" id="2367" />
+<TGConnectingPoint num="9" id="2368" />
+<TGConnectingPoint num="10" id="2369" />
+<TGConnectingPoint num="11" id="2370" />
+<TGConnectingPoint num="12" id="2371" />
+<TGConnectingPoint num="13" id="2372" />
+<TGConnectingPoint num="14" id="2373" />
+<TGConnectingPoint num="15" id="2374" />
+<TGConnectingPoint num="16" id="2375" />
+<TGConnectingPoint num="17" id="2376" />
+<TGConnectingPoint num="18" id="2377" />
+<TGConnectingPoint num="19" id="2378" />
+<TGConnectingPoint num="20" id="2379" />
+<TGConnectingPoint num="21" id="2380" />
+<TGConnectingPoint num="22" id="2381" />
+<TGConnectingPoint num="23" id="2382" />
+<TGConnectingPoint num="24" id="2383" />
+<TGConnectingPoint num="25" id="2384" />
+<TGConnectingPoint num="26" id="2385" />
+<TGConnectingPoint num="27" id="2386" />
+<TGConnectingPoint num="28" id="2387" />
+<TGConnectingPoint num="29" id="2388" />
+<TGConnectingPoint num="30" id="2389" />
+<TGConnectingPoint num="31" id="2390" />
+<TGConnectingPoint num="32" id="2391" />
+<TGConnectingPoint num="33" id="2392" />
+<TGConnectingPoint num="34" id="2393" />
+<TGConnectingPoint num="35" id="2394" />
+<TGConnectingPoint num="36" id="2395" />
+<TGConnectingPoint num="37" id="2396" />
+<TGConnectingPoint num="38" id="2397" />
+<TGConnectingPoint num="39" id="2398" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="2440" >
+<cdparam x="631" y="381" />
+<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForFirstCoin" />
+<TGConnectingPoint num="0" id="2400" />
+<TGConnectingPoint num="1" id="2401" />
+<TGConnectingPoint num="2" id="2402" />
+<TGConnectingPoint num="3" id="2403" />
+<TGConnectingPoint num="4" id="2404" />
+<TGConnectingPoint num="5" id="2405" />
+<TGConnectingPoint num="6" id="2406" />
+<TGConnectingPoint num="7" id="2407" />
+<TGConnectingPoint num="8" id="2408" />
+<TGConnectingPoint num="9" id="2409" />
+<TGConnectingPoint num="10" id="2410" />
+<TGConnectingPoint num="11" id="2411" />
+<TGConnectingPoint num="12" id="2412" />
+<TGConnectingPoint num="13" id="2413" />
+<TGConnectingPoint num="14" id="2414" />
+<TGConnectingPoint num="15" id="2415" />
+<TGConnectingPoint num="16" id="2416" />
+<TGConnectingPoint num="17" id="2417" />
+<TGConnectingPoint num="18" id="2418" />
+<TGConnectingPoint num="19" id="2419" />
+<TGConnectingPoint num="20" id="2420" />
+<TGConnectingPoint num="21" id="2421" />
+<TGConnectingPoint num="22" id="2422" />
+<TGConnectingPoint num="23" id="2423" />
+<TGConnectingPoint num="24" id="2424" />
+<TGConnectingPoint num="25" id="2425" />
+<TGConnectingPoint num="26" id="2426" />
+<TGConnectingPoint num="27" id="2427" />
+<TGConnectingPoint num="28" id="2428" />
+<TGConnectingPoint num="29" id="2429" />
+<TGConnectingPoint num="30" id="2430" />
+<TGConnectingPoint num="31" id="2431" />
+<TGConnectingPoint num="32" id="2432" />
+<TGConnectingPoint num="33" id="2433" />
+<TGConnectingPoint num="34" id="2434" />
+<TGConnectingPoint num="35" id="2435" />
+<TGConnectingPoint num="36" id="2436" />
+<TGConnectingPoint num="37" id="2437" />
+<TGConnectingPoint num="38" id="2438" />
+<TGConnectingPoint num="39" id="2439" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="2447" >
+<cdparam x="363" y="193" />
+<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="2446" />
+<P1  x="363" y="204" id="2463" />
+<P2  x="362" y="257" id="2474" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2445" >
+<father id="2447" num="0" />
+<cdparam x="380" y="228" />
+<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2441" />
+<TGConnectingPoint num="1" id="2442" />
+<TGConnectingPoint num="2" id="2443" />
+<TGConnectingPoint num="3" id="2444" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="mechanicalDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2454" >
+<cdparam x="363" y="150" />
+<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="2453" />
+<P1  x="363" y="150" id="2520" />
+<P2  x="363" y="174" id="2462" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2452" >
+<father id="2454" num="0" />
+<cdparam x="363" y="190" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2448" />
+<TGConnectingPoint num="1" id="2449" />
+<TGConnectingPoint num="2" id="2450" />
+<TGConnectingPoint num="3" id="2451" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2461" >
+<cdparam x="362" y="101" />
+<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="2460" />
+<P1  x="362" y="101" id="2555" />
+<P2  x="363" y="120" id="2515" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2459" >
+<father id="2461" num="0" />
+<cdparam x="362" y="141" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2455" />
+<TGConnectingPoint num="1" id="2456" />
+<TGConnectingPoint num="2" id="2457" />
+<TGConnectingPoint num="3" id="2458" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="2472" >
+<cdparam x="338" y="179" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="push()" />
+<TGConnectingPoint num="0" id="2462" />
+<TGConnectingPoint num="1" id="2463" />
+<TGConnectingPoint num="2" id="2464" />
+<TGConnectingPoint num="3" id="2465" />
+<TGConnectingPoint num="4" id="2466" />
+<TGConnectingPoint num="5" id="2467" />
+<TGConnectingPoint num="6" id="2468" />
+<TGConnectingPoint num="7" id="2469" />
+<TGConnectingPoint num="8" id="2470" />
+<TGConnectingPoint num="9" id="2471" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2513" >
+<cdparam x="337" y="257" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="2473" />
+<TGConnectingPoint num="1" id="2474" />
+<TGConnectingPoint num="2" id="2475" />
+<TGConnectingPoint num="3" id="2476" />
+<TGConnectingPoint num="4" id="2477" />
+<TGConnectingPoint num="5" id="2478" />
+<TGConnectingPoint num="6" id="2479" />
+<TGConnectingPoint num="7" id="2480" />
+<TGConnectingPoint num="8" id="2481" />
+<TGConnectingPoint num="9" id="2482" />
+<TGConnectingPoint num="10" id="2483" />
+<TGConnectingPoint num="11" id="2484" />
+<TGConnectingPoint num="12" id="2485" />
+<TGConnectingPoint num="13" id="2486" />
+<TGConnectingPoint num="14" id="2487" />
+<TGConnectingPoint num="15" id="2488" />
+<TGConnectingPoint num="16" id="2489" />
+<TGConnectingPoint num="17" id="2490" />
+<TGConnectingPoint num="18" id="2491" />
+<TGConnectingPoint num="19" id="2492" />
+<TGConnectingPoint num="20" id="2493" />
+<TGConnectingPoint num="21" id="2494" />
+<TGConnectingPoint num="22" id="2495" />
+<TGConnectingPoint num="23" id="2496" />
+<TGConnectingPoint num="24" id="2497" />
+<TGConnectingPoint num="25" id="2498" />
+<TGConnectingPoint num="26" id="2499" />
+<TGConnectingPoint num="27" id="2500" />
+<TGConnectingPoint num="28" id="2501" />
+<TGConnectingPoint num="29" id="2502" />
+<TGConnectingPoint num="30" id="2503" />
+<TGConnectingPoint num="31" id="2504" />
+<TGConnectingPoint num="32" id="2505" />
+<TGConnectingPoint num="33" id="2506" />
+<TGConnectingPoint num="34" id="2507" />
+<TGConnectingPoint num="35" id="2508" />
+<TGConnectingPoint num="36" id="2509" />
+<TGConnectingPoint num="37" id="2510" />
+<TGConnectingPoint num="38" id="2511" />
+<TGConnectingPoint num="39" id="2512" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="2554" >
+<cdparam x="338" y="120" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="2514" />
+<TGConnectingPoint num="1" id="2515" />
+<TGConnectingPoint num="2" id="2516" />
+<TGConnectingPoint num="3" id="2517" />
+<TGConnectingPoint num="4" id="2518" />
+<TGConnectingPoint num="5" id="2519" />
+<TGConnectingPoint num="6" id="2520" />
+<TGConnectingPoint num="7" id="2521" />
+<TGConnectingPoint num="8" id="2522" />
+<TGConnectingPoint num="9" id="2523" />
+<TGConnectingPoint num="10" id="2524" />
+<TGConnectingPoint num="11" id="2525" />
+<TGConnectingPoint num="12" id="2526" />
+<TGConnectingPoint num="13" id="2527" />
+<TGConnectingPoint num="14" id="2528" />
+<TGConnectingPoint num="15" id="2529" />
+<TGConnectingPoint num="16" id="2530" />
+<TGConnectingPoint num="17" id="2531" />
+<TGConnectingPoint num="18" id="2532" />
+<TGConnectingPoint num="19" id="2533" />
+<TGConnectingPoint num="20" id="2534" />
+<TGConnectingPoint num="21" id="2535" />
+<TGConnectingPoint num="22" id="2536" />
+<TGConnectingPoint num="23" id="2537" />
+<TGConnectingPoint num="24" id="2538" />
+<TGConnectingPoint num="25" id="2539" />
+<TGConnectingPoint num="26" id="2540" />
+<TGConnectingPoint num="27" id="2541" />
+<TGConnectingPoint num="28" id="2542" />
+<TGConnectingPoint num="29" id="2543" />
+<TGConnectingPoint num="30" id="2544" />
+<TGConnectingPoint num="31" id="2545" />
+<TGConnectingPoint num="32" id="2546" />
+<TGConnectingPoint num="33" id="2547" />
+<TGConnectingPoint num="34" id="2548" />
+<TGConnectingPoint num="35" id="2549" />
+<TGConnectingPoint num="36" id="2550" />
+<TGConnectingPoint num="37" id="2551" />
+<TGConnectingPoint num="38" id="2552" />
+<TGConnectingPoint num="39" id="2553" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="2556" >
+<cdparam x="355" y="81" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2555" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="2563" >
+<cdparam x="323" y="118" />
+<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="2562" />
+<P1  x="323" y="118" id="2636" />
+<P2  x="341" y="200" id="2578" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2561" >
+<father id="2563" num="0" />
+<cdparam x="323" y="158" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2557" />
+<TGConnectingPoint num="1" id="2558" />
+<TGConnectingPoint num="2" id="2559" />
+<TGConnectingPoint num="3" id="2560" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2570" >
+<cdparam x="322" y="69" />
+<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="2569" />
+<P1  x="322" y="69" id="2671" />
+<P2  x="323" y="88" id="2631" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2568" >
+<father id="2570" num="0" />
+<cdparam x="322" y="109" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2564" />
+<TGConnectingPoint num="1" id="2565" />
+<TGConnectingPoint num="2" id="2566" />
+<TGConnectingPoint num="3" id="2567" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2577" >
+<cdparam x="365" y="135" />
+<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="2576" />
+<P1  x="341" y="230" id="2579" />
+<P2  x="387" y="300" id="2590" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2575" >
+<father id="2577" num="0" />
+<cdparam x="405" y="283" />
+<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2571" />
+<TGConnectingPoint num="1" id="2572" />
+<TGConnectingPoint num="2" id="2573" />
+<TGConnectingPoint num="3" id="2574" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="mechanicalDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="2588" >
+<cdparam x="316" y="205" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="push()" />
+<TGConnectingPoint num="0" id="2578" />
+<TGConnectingPoint num="1" id="2579" />
+<TGConnectingPoint num="2" id="2580" />
+<TGConnectingPoint num="3" id="2581" />
+<TGConnectingPoint num="4" id="2582" />
+<TGConnectingPoint num="5" id="2583" />
+<TGConnectingPoint num="6" id="2584" />
+<TGConnectingPoint num="7" id="2585" />
+<TGConnectingPoint num="8" id="2586" />
+<TGConnectingPoint num="9" id="2587" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2629" >
+<cdparam x="362" y="300" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="2589" />
+<TGConnectingPoint num="1" id="2590" />
+<TGConnectingPoint num="2" id="2591" />
+<TGConnectingPoint num="3" id="2592" />
+<TGConnectingPoint num="4" id="2593" />
+<TGConnectingPoint num="5" id="2594" />
+<TGConnectingPoint num="6" id="2595" />
+<TGConnectingPoint num="7" id="2596" />
+<TGConnectingPoint num="8" id="2597" />
+<TGConnectingPoint num="9" id="2598" />
+<TGConnectingPoint num="10" id="2599" />
+<TGConnectingPoint num="11" id="2600" />
+<TGConnectingPoint num="12" id="2601" />
+<TGConnectingPoint num="13" id="2602" />
+<TGConnectingPoint num="14" id="2603" />
+<TGConnectingPoint num="15" id="2604" />
+<TGConnectingPoint num="16" id="2605" />
+<TGConnectingPoint num="17" id="2606" />
+<TGConnectingPoint num="18" id="2607" />
+<TGConnectingPoint num="19" id="2608" />
+<TGConnectingPoint num="20" id="2609" />
+<TGConnectingPoint num="21" id="2610" />
+<TGConnectingPoint num="22" id="2611" />
+<TGConnectingPoint num="23" id="2612" />
+<TGConnectingPoint num="24" id="2613" />
+<TGConnectingPoint num="25" id="2614" />
+<TGConnectingPoint num="26" id="2615" />
+<TGConnectingPoint num="27" id="2616" />
+<TGConnectingPoint num="28" id="2617" />
+<TGConnectingPoint num="29" id="2618" />
+<TGConnectingPoint num="30" id="2619" />
+<TGConnectingPoint num="31" id="2620" />
+<TGConnectingPoint num="32" id="2621" />
+<TGConnectingPoint num="33" id="2622" />
+<TGConnectingPoint num="34" id="2623" />
+<TGConnectingPoint num="35" id="2624" />
+<TGConnectingPoint num="36" id="2625" />
+<TGConnectingPoint num="37" id="2626" />
+<TGConnectingPoint num="38" id="2627" />
+<TGConnectingPoint num="39" id="2628" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="2670" >
+<cdparam x="298" y="88" />
+<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="main" />
+<TGConnectingPoint num="0" id="2630" />
+<TGConnectingPoint num="1" id="2631" />
+<TGConnectingPoint num="2" id="2632" />
+<TGConnectingPoint num="3" id="2633" />
+<TGConnectingPoint num="4" id="2634" />
+<TGConnectingPoint num="5" id="2635" />
+<TGConnectingPoint num="6" id="2636" />
+<TGConnectingPoint num="7" id="2637" />
+<TGConnectingPoint num="8" id="2638" />
+<TGConnectingPoint num="9" id="2639" />
+<TGConnectingPoint num="10" id="2640" />
+<TGConnectingPoint num="11" id="2641" />
+<TGConnectingPoint num="12" id="2642" />
+<TGConnectingPoint num="13" id="2643" />
+<TGConnectingPoint num="14" id="2644" />
+<TGConnectingPoint num="15" id="2645" />
+<TGConnectingPoint num="16" id="2646" />
+<TGConnectingPoint num="17" id="2647" />
+<TGConnectingPoint num="18" id="2648" />
+<TGConnectingPoint num="19" id="2649" />
+<TGConnectingPoint num="20" id="2650" />
+<TGConnectingPoint num="21" id="2651" />
+<TGConnectingPoint num="22" id="2652" />
+<TGConnectingPoint num="23" id="2653" />
+<TGConnectingPoint num="24" id="2654" />
+<TGConnectingPoint num="25" id="2655" />
+<TGConnectingPoint num="26" id="2656" />
+<TGConnectingPoint num="27" id="2657" />
+<TGConnectingPoint num="28" id="2658" />
+<TGConnectingPoint num="29" id="2659" />
+<TGConnectingPoint num="30" id="2660" />
+<TGConnectingPoint num="31" id="2661" />
+<TGConnectingPoint num="32" id="2662" />
+<TGConnectingPoint num="33" id="2663" />
+<TGConnectingPoint num="34" id="2664" />
+<TGConnectingPoint num="35" id="2665" />
+<TGConnectingPoint num="36" id="2666" />
+<TGConnectingPoint num="37" id="2667" />
+<TGConnectingPoint num="38" id="2668" />
+<TGConnectingPoint num="39" id="2669" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="2672" >
+<cdparam x="315" y="49" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2671" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/ttool/src/test/resources/ui/diagram2avatar/input/FutureAirNavigationSystem.xml b/ttool/src/test/resources/ui/diagram2avatar/input/FutureAirNavigationSystem.xml
new file mode 100644
index 0000000000000000000000000000000000000000..33432047e561ab6900695e06701e762832720702
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/input/FutureAirNavigationSystem.xml
@@ -0,0 +1,9021 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<TURTLEGMODELING version="0.98-beta4">
+
+<Modeling type="Avatar Methodology" nameTab="Methodology" >
+<AvatarMethodologyDiagramPanel name="Methodology" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
+<COMPONENT type="5606" id="5" >
+<cdparam x="460" y="539" />
+<sizeparam width="300" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TGComponent" value="Prototyping" />
+<TGConnectingPoint num="0" id="1" />
+<TGConnectingPoint num="1" id="2" />
+<TGConnectingPoint num="2" id="3" />
+<TGConnectingPoint num="3" id="4" />
+</COMPONENT>
+
+<COMPONENT type="5604" id="13" >
+<cdparam x="361" y="433" />
+<sizeparam width="305" height="82" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TGComponent" value="Design" />
+<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" />
+</COMPONENT>
+<SUBCOMPONENT type="5607" id="6" >
+<father id="13" num="0" />
+<cdparam x="366" y="473" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="366" maxX="366" minY="473" maxY="473" />
+<infoparam name="value " value="Design_unlossy" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5607" id="7" >
+<father id="13" num="1" />
+<cdparam x="366" y="488" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="366" maxX="366" minY="488" maxY="488" />
+<infoparam name="value " value="Design_lossy" />
+</SUBCOMPONENT>
+
+<COMPONENT type="5603" id="21" >
+<cdparam x="259" y="340" />
+<sizeparam width="205" height="80" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TGComponent" value="Analysis" />
+<TGConnectingPoint num="0" id="16" />
+<TGConnectingPoint num="1" id="17" />
+<TGConnectingPoint num="2" id="18" />
+<TGConnectingPoint num="3" id="19" />
+<TGConnectingPoint num="4" id="20" />
+</COMPONENT>
+<SUBCOMPONENT type="5607" id="14" >
+<father id="21" num="0" />
+<cdparam x="264" y="380" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="264" maxX="264" minY="380" maxY="380" />
+<infoparam name="value " value="Analysis_unlossy" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5607" id="15" >
+<father id="21" num="1" />
+<cdparam x="264" y="395" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="264" maxX="264" minY="395" maxY="395" />
+<infoparam name="value " value="Analysis_lossy" />
+</SUBCOMPONENT>
+
+<COMPONENT type="5602" id="29" >
+<cdparam x="160" y="239" />
+<sizeparam width="200" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TGComponent" value="Requirements" />
+<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" />
+</COMPONENT>
+<SUBCOMPONENT type="5607" id="22" >
+<father id="29" num="0" />
+<cdparam x="165" y="279" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="165" maxX="165" minY="279" maxY="279" />
+<infoparam name="value " value="Requirements_Properties" />
+</SUBCOMPONENT>
+
+<COMPONENT type="5601" id="35" >
+<cdparam x="50" y="136" />
+<sizeparam width="234" height="83" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TGComponent" value="Assumptions" />
+<TGConnectingPoint num="0" id="31" />
+<TGConnectingPoint num="1" id="32" />
+<TGConnectingPoint num="2" id="33" />
+<TGConnectingPoint num="3" id="34" />
+</COMPONENT>
+<SUBCOMPONENT type="5607" id="30" >
+<father id="35" num="0" />
+<cdparam x="55" y="176" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="55" maxX="55" minY="176" maxY="176" />
+<infoparam name="value " value="Assumptions" />
+</SUBCOMPONENT>
+
+<COMPONENT type="5605" id="41" >
+<cdparam x="110" y="439" />
+<sizeparam width="180" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TGComponent" value="Properties" />
+<TGConnectingPoint num="0" id="37" />
+<TGConnectingPoint num="1" id="38" />
+<TGConnectingPoint num="2" id="39" />
+<TGConnectingPoint num="3" id="40" />
+</COMPONENT>
+<SUBCOMPONENT type="5607" id="36" >
+<father id="41" num="0" />
+<cdparam x="115" y="479" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="205" maxX="205" minY="440" maxY="440" />
+<infoparam name="value " value="Properties" />
+</SUBCOMPONENT>
+
+<COMPONENT type="301" id="58" >
+<cdparam x="16" y="10" />
+<sizeparam width="357" height="87" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="   
+    Author: Pierre de Saqui-Sannes (pdss@isae-supaero.fr)
+  
+    Last update: February 10, 2017
+    
+    TTool: java ttool.jar -experimentatal -nocolor
+ 
+" />
+<TGConnectingPoint num="0" id="42" />
+<TGConnectingPoint num="1" id="43" />
+<TGConnectingPoint num="2" id="44" />
+<TGConnectingPoint num="3" id="45" />
+<TGConnectingPoint num="4" id="46" />
+<TGConnectingPoint num="5" id="47" />
+<TGConnectingPoint num="6" id="48" />
+<TGConnectingPoint num="7" id="49" />
+<TGConnectingPoint num="8" id="50" />
+<TGConnectingPoint num="9" id="51" />
+<TGConnectingPoint num="10" id="52" />
+<TGConnectingPoint num="11" id="53" />
+<TGConnectingPoint num="12" id="54" />
+<TGConnectingPoint num="13" id="55" />
+<TGConnectingPoint num="14" id="56" />
+<TGConnectingPoint num="15" id="57" />
+<extraparam>
+<Line value="   " />
+<Line value="    Author: Pierre de Saqui-Sannes (pdss@isae-supaero.fr)" />
+<Line value="  " />
+<Line value="    Last update: February 10, 2017" />
+<Line value="    " />
+<Line value="    TTool: java ttool.jar -experimentatal -nocolor" />
+<Line value=" " />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="5608" id="60" >
+<cdparam x="180" y="309" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="59" />
+<P1  x="180" y="309" id="25" />
+<P2  x="146" y="439" id="37" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5608" id="64" >
+<cdparam x="420" y="509" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="62" />
+<TGConnectingPoint num="1" id="63" />
+<P1  x="422" y="515" id="9" />
+<P2  x="460" y="574" id="1" />
+<Point x="422" y="574" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="61" >
+<father id="64" num="0" />
+<cdparam x="422" y="574" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5608" id="68" >
+<cdparam x="320" y="409" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="66" />
+<TGConnectingPoint num="1" id="67" />
+<P1  x="320" y="420" id="17" />
+<P2  x="361" y="474" id="8" />
+<Point x="320" y="474" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="65" >
+<father id="68" num="0" />
+<cdparam x="320" y="474" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5608" id="72" >
+<cdparam x="220" y="309" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="70" />
+<TGConnectingPoint num="1" id="71" />
+<P1  x="220" y="309" id="24" />
+<P2  x="259" y="380" id="16" />
+<Point x="220" y="380" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="69" >
+<father id="72" num="0" />
+<cdparam x="220" y="380" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5608" id="76" >
+<cdparam x="120" y="209" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="74" />
+<TGConnectingPoint num="1" id="75" />
+<P1  x="120" y="219" id="31" />
+<P2  x="160" y="274" id="23" />
+<Point x="120" y="274" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="73" >
+<father id="76" num="0" />
+<cdparam x="120" y="274" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+
+</AvatarMethodologyDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="Avatar Requirement" nameTab="Requirements_Properties" >
+<AvatarRDPanel name="Original Specification" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="301" id="93" >
+<cdparam x="10" y="10" />
+<sizeparam width="663" height="255" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="UML Note" value="
+Original specification of the Initial Notification procedure
+
+
+When initiated either by flight crew action or an automatic trigger, an ATS Facilities Notification Contact message
+ is sent and Avionics Timer ATST1 is set. The aircraft AFN application then awaits an AFN Acknowledgement 
+message from ground.
+
+Subject to prior agreement with the service provider, the supplementary address field of 
+the ATS Facilities Notification Contact Message may contain an abbreviation of the ATC center address
+ to which the message should be delivered (such as the corresponding IATA or ICAO code).
+
+If a successful AFN Acnowledgement message is received within the period of time of ATST1, 
+a positive indication is given to the flight crew and timer ATST1 is cancelled. 
+The AFN acknowledgement messsage will contain the full 7-character address of the ground AFN end-system. 
+This address should be used in all subsequent AFN messages.
+
+If the aircraft AFN receives an AFN acknowledgement message with a non-zero reason code 
+or timer ATST1 expires, an error indication is given to the the flight crew.
+
+     
+" />
+<TGConnectingPoint num="0" id="77" />
+<TGConnectingPoint num="1" id="78" />
+<TGConnectingPoint num="2" id="79" />
+<TGConnectingPoint num="3" id="80" />
+<TGConnectingPoint num="4" id="81" />
+<TGConnectingPoint num="5" id="82" />
+<TGConnectingPoint num="6" id="83" />
+<TGConnectingPoint num="7" id="84" />
+<TGConnectingPoint num="8" id="85" />
+<TGConnectingPoint num="9" id="86" />
+<TGConnectingPoint num="10" id="87" />
+<TGConnectingPoint num="11" id="88" />
+<TGConnectingPoint num="12" id="89" />
+<TGConnectingPoint num="13" id="90" />
+<TGConnectingPoint num="14" id="91" />
+<TGConnectingPoint num="15" id="92" />
+<extraparam>
+<Line value="" />
+<Line value="Original specification of the Initial Notification procedure" />
+<Line value="" />
+<Line value="" />
+<Line value="When initiated either by flight crew action or an automatic trigger, an ATS Facilities Notification Contact message" />
+<Line value=" is sent and Avionics Timer ATST1 is set. The aircraft AFN application then awaits an AFN Acknowledgement " />
+<Line value="message from ground." />
+<Line value="" />
+<Line value="Subject to prior agreement with the service provider, the supplementary address field of " />
+<Line value="the ATS Facilities Notification Contact Message may contain an abbreviation of the ATC center address" />
+<Line value=" to which the message should be delivered (such as the corresponding IATA or ICAO code)." />
+<Line value="" />
+<Line value="If a successful AFN Acnowledgement message is received within the period of time of ATST1, " />
+<Line value="a positive indication is given to the flight crew and timer ATST1 is cancelled. " />
+<Line value="The AFN acknowledgement messsage will contain the full 7-character address of the ground AFN end-system. " />
+<Line value="This address should be used in all subsequent AFN messages." />
+<Line value="" />
+<Line value="If the aircraft AFN receives an AFN acknowledgement message with a non-zero reason code " />
+<Line value="or timer ATST1 expires, an error indication is given to the the flight crew." />
+<Line value="" />
+<Line value="     " />
+</extraparam>
+</COMPONENT>
+
+
+</AvatarRDPanel>
+
+<AvatarRDPanel name="RequirementDiagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
+<COMPONENT type="5200" id="137" >
+<cdparam x="411" y="121" />
+<sizeparam width="385" height="99" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="153" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Requirement" value="ProtocolCharacteristics" />
+<TGConnectingPoint num="0" id="94" />
+<TGConnectingPoint num="1" id="95" />
+<TGConnectingPoint num="2" id="96" />
+<TGConnectingPoint num="3" id="97" />
+<TGConnectingPoint num="4" id="98" />
+<TGConnectingPoint num="5" id="99" />
+<TGConnectingPoint num="6" id="100" />
+<TGConnectingPoint num="7" id="101" />
+<TGConnectingPoint num="8" id="102" />
+<TGConnectingPoint num="9" id="103" />
+<TGConnectingPoint num="10" id="104" />
+<TGConnectingPoint num="11" id="105" />
+<TGConnectingPoint num="12" id="106" />
+<TGConnectingPoint num="13" id="107" />
+<TGConnectingPoint num="14" id="108" />
+<TGConnectingPoint num="15" id="109" />
+<TGConnectingPoint num="16" id="110" />
+<TGConnectingPoint num="17" id="111" />
+<TGConnectingPoint num="18" id="112" />
+<TGConnectingPoint num="19" id="113" />
+<TGConnectingPoint num="20" id="114" />
+<TGConnectingPoint num="21" id="115" />
+<TGConnectingPoint num="22" id="116" />
+<TGConnectingPoint num="23" id="117" />
+<TGConnectingPoint num="24" id="118" />
+<TGConnectingPoint num="25" id="119" />
+<TGConnectingPoint num="26" id="120" />
+<TGConnectingPoint num="27" id="121" />
+<TGConnectingPoint num="28" id="122" />
+<TGConnectingPoint num="29" id="123" />
+<TGConnectingPoint num="30" id="124" />
+<TGConnectingPoint num="31" id="125" />
+<TGConnectingPoint num="32" id="126" />
+<TGConnectingPoint num="33" id="127" />
+<TGConnectingPoint num="34" id="128" />
+<TGConnectingPoint num="35" id="129" />
+<TGConnectingPoint num="36" id="130" />
+<TGConnectingPoint num="37" id="131" />
+<TGConnectingPoint num="38" id="132" />
+<TGConnectingPoint num="39" id="133" />
+<TGConnectingPoint num="40" id="134" />
+<TGConnectingPoint num="41" id="135" />
+<TGConnectingPoint num="42" id="136" />
+<extraparam>
+<textline data="The IN procedure is a confirmed connection setup" />
+<textline data="procedure initiated by the pilot and developed on " />
+<textline data="top of a lossy network." />
+<kind data="Functional" />
+<criticality data="Low" />
+<reqType data="0" />
+<id data="PROTOCOL" />
+<satisfied data="false" />
+<verified data="false" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5200" id="181" >
+<cdparam x="10" y="121" />
+<sizeparam width="310" height="97" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="223" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Requirement" value="FANS_Initial_Notification_Procedure" />
+<TGConnectingPoint num="0" id="138" />
+<TGConnectingPoint num="1" id="139" />
+<TGConnectingPoint num="2" id="140" />
+<TGConnectingPoint num="3" id="141" />
+<TGConnectingPoint num="4" id="142" />
+<TGConnectingPoint num="5" id="143" />
+<TGConnectingPoint num="6" id="144" />
+<TGConnectingPoint num="7" id="145" />
+<TGConnectingPoint num="8" id="146" />
+<TGConnectingPoint num="9" id="147" />
+<TGConnectingPoint num="10" id="148" />
+<TGConnectingPoint num="11" id="149" />
+<TGConnectingPoint num="12" id="150" />
+<TGConnectingPoint num="13" id="151" />
+<TGConnectingPoint num="14" id="152" />
+<TGConnectingPoint num="15" id="153" />
+<TGConnectingPoint num="16" id="154" />
+<TGConnectingPoint num="17" id="155" />
+<TGConnectingPoint num="18" id="156" />
+<TGConnectingPoint num="19" id="157" />
+<TGConnectingPoint num="20" id="158" />
+<TGConnectingPoint num="21" id="159" />
+<TGConnectingPoint num="22" id="160" />
+<TGConnectingPoint num="23" id="161" />
+<TGConnectingPoint num="24" id="162" />
+<TGConnectingPoint num="25" id="163" />
+<TGConnectingPoint num="26" id="164" />
+<TGConnectingPoint num="27" id="165" />
+<TGConnectingPoint num="28" id="166" />
+<TGConnectingPoint num="29" id="167" />
+<TGConnectingPoint num="30" id="168" />
+<TGConnectingPoint num="31" id="169" />
+<TGConnectingPoint num="32" id="170" />
+<TGConnectingPoint num="33" id="171" />
+<TGConnectingPoint num="34" id="172" />
+<TGConnectingPoint num="35" id="173" />
+<TGConnectingPoint num="36" id="174" />
+<TGConnectingPoint num="37" id="175" />
+<TGConnectingPoint num="38" id="176" />
+<TGConnectingPoint num="39" id="177" />
+<TGConnectingPoint num="40" id="178" />
+<TGConnectingPoint num="41" id="179" />
+<TGConnectingPoint num="42" id="180" />
+<extraparam>
+<textline data="The connection set up procedure" />
+<textline data="shall implement the Initial Notification" />
+<textline data="procedure defined by the FANS specification." />
+<kind data="Functional" />
+<criticality data="High" />
+<reqType data="0" />
+<id data="IN" />
+<satisfied data="false" />
+<verified data="false" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5200" id="225" >
+<cdparam x="10" y="10" />
+<sizeparam width="314" height="81" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="142" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Requirement" value="GeneralRequirement" />
+<TGConnectingPoint num="0" id="182" />
+<TGConnectingPoint num="1" id="183" />
+<TGConnectingPoint num="2" id="184" />
+<TGConnectingPoint num="3" id="185" />
+<TGConnectingPoint num="4" id="186" />
+<TGConnectingPoint num="5" id="187" />
+<TGConnectingPoint num="6" id="188" />
+<TGConnectingPoint num="7" id="189" />
+<TGConnectingPoint num="8" id="190" />
+<TGConnectingPoint num="9" id="191" />
+<TGConnectingPoint num="10" id="192" />
+<TGConnectingPoint num="11" id="193" />
+<TGConnectingPoint num="12" id="194" />
+<TGConnectingPoint num="13" id="195" />
+<TGConnectingPoint num="14" id="196" />
+<TGConnectingPoint num="15" id="197" />
+<TGConnectingPoint num="16" id="198" />
+<TGConnectingPoint num="17" id="199" />
+<TGConnectingPoint num="18" id="200" />
+<TGConnectingPoint num="19" id="201" />
+<TGConnectingPoint num="20" id="202" />
+<TGConnectingPoint num="21" id="203" />
+<TGConnectingPoint num="22" id="204" />
+<TGConnectingPoint num="23" id="205" />
+<TGConnectingPoint num="24" id="206" />
+<TGConnectingPoint num="25" id="207" />
+<TGConnectingPoint num="26" id="208" />
+<TGConnectingPoint num="27" id="209" />
+<TGConnectingPoint num="28" id="210" />
+<TGConnectingPoint num="29" id="211" />
+<TGConnectingPoint num="30" id="212" />
+<TGConnectingPoint num="31" id="213" />
+<TGConnectingPoint num="32" id="214" />
+<TGConnectingPoint num="33" id="215" />
+<TGConnectingPoint num="34" id="216" />
+<TGConnectingPoint num="35" id="217" />
+<TGConnectingPoint num="36" id="218" />
+<TGConnectingPoint num="37" id="219" />
+<TGConnectingPoint num="38" id="220" />
+<TGConnectingPoint num="39" id="221" />
+<TGConnectingPoint num="40" id="222" />
+<TGConnectingPoint num="41" id="223" />
+<TGConnectingPoint num="42" id="224" />
+<extraparam>
+<textline data="The system shall enable an aircraft " />
+<textline data="to set up a connection with a control tower." />
+<kind data="Functional" />
+<criticality data="High" />
+<reqType data="0" />
+<id data="GR" />
+<satisfied data="false" />
+<verified data="false" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5207" id="241" >
+<cdparam x="610" y="271" />
+<sizeparam width="183" height="31" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="151" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="AvatarElementReference" value="Lossy_Analysis_Design" />
+<TGConnectingPoint num="0" id="226" />
+<TGConnectingPoint num="1" id="227" />
+<TGConnectingPoint num="2" id="228" />
+<TGConnectingPoint num="3" id="229" />
+<TGConnectingPoint num="4" id="230" />
+<TGConnectingPoint num="5" id="231" />
+<TGConnectingPoint num="6" id="232" />
+<TGConnectingPoint num="7" id="233" />
+<TGConnectingPoint num="8" id="234" />
+<TGConnectingPoint num="9" id="235" />
+<TGConnectingPoint num="10" id="236" />
+<TGConnectingPoint num="11" id="237" />
+<TGConnectingPoint num="12" id="238" />
+<TGConnectingPoint num="13" id="239" />
+<TGConnectingPoint num="14" id="240" />
+</COMPONENT>
+
+<COMPONENT type="5207" id="257" >
+<cdparam x="416" y="271" />
+<sizeparam width="183" height="31" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="163" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="AvatarElementReference" value="Unlossy_Analysis_Design" />
+<TGConnectingPoint num="0" id="242" />
+<TGConnectingPoint num="1" id="243" />
+<TGConnectingPoint num="2" id="244" />
+<TGConnectingPoint num="3" id="245" />
+<TGConnectingPoint num="4" id="246" />
+<TGConnectingPoint num="5" id="247" />
+<TGConnectingPoint num="6" id="248" />
+<TGConnectingPoint num="7" id="249" />
+<TGConnectingPoint num="8" id="250" />
+<TGConnectingPoint num="9" id="251" />
+<TGConnectingPoint num="10" id="252" />
+<TGConnectingPoint num="11" id="253" />
+<TGConnectingPoint num="12" id="254" />
+<TGConnectingPoint num="13" id="255" />
+<TGConnectingPoint num="14" id="256" />
+</COMPONENT>
+
+<CONNECTOR type="5208" id="259" >
+<cdparam x="708" y="271" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;satisfy&gt;&gt;" />
+<TGConnectingPoint num="0" id="258" />
+<P1  x="701" y="271" id="233" />
+<P2  x="699" y="220" id="133" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5208" id="261" >
+<cdparam x="494" y="296" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;satisfy&gt;&gt;" />
+<TGConnectingPoint num="0" id="260" />
+<P1  x="507" y="271" id="249" />
+<P2  x="507" y="220" id="131" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5206" id="263" >
+<cdparam x="396" y="175" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;refine&gt;&gt;" />
+<TGConnectingPoint num="0" id="262" />
+<P1  x="411" y="170" id="95" />
+<P2  x="320" y="169" id="142" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5206" id="265" >
+<cdparam x="146" y="120" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;refine&gt;&gt;" />
+<TGConnectingPoint num="0" id="264" />
+<P1  x="165" y="121" id="145" />
+<P2  x="167" y="91" id="192" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</AvatarRDPanel>
+
+<AvatarPDPanel name="Property" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5312" id="267" >
+<cdparam x="444" y="383" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="reg" />
+<TGConnectingPoint num="0" id="266" />
+<P1  x="444" y="383" id="306" />
+<P2  x="444" y="431" id="310" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5312" id="269" >
+<cdparam x="475" y="306" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="reg" />
+<TGConnectingPoint num="0" id="268" />
+<P1  x="475" y="294" id="316" />
+<P2  x="464" y="343" id="301" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5312" id="271" >
+<cdparam x="423" y="175" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="reg" />
+<TGConnectingPoint num="0" id="270" />
+<P1  x="424" y="175" id="349" />
+<P2  x="424" y="343" id="299" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5311" id="273" >
+<cdparam x="179" y="234" />
+<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="272" />
+<P1  x="179" y="234" id="372" />
+<P2  x="445" y="234" id="319" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5311" id="275" >
+<cdparam x="175" y="105" />
+<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="274" />
+<P1  x="175" y="105" id="392" />
+<P2  x="445" y="214" id="317" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5311" id="277" >
+<cdparam x="175" y="158" />
+<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="276" />
+<P1  x="175" y="158" id="359" />
+<P2  x="379" y="125" id="341" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5311" id="279" >
+<cdparam x="175" y="95" />
+<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="278" />
+<P1  x="175" y="95" id="385" />
+<P2  x="379" y="95" id="338" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="301" id="296" >
+<cdparam x="72" y="433" />
+<sizeparam width="302" height="51" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="UML Note" value=" 
+ Any connection request will eventually complete,
+ either successfully or unsuccessfully.
+ 
+" />
+<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" />
+<TGConnectingPoint num="8" id="288" />
+<TGConnectingPoint num="9" id="289" />
+<TGConnectingPoint num="10" id="290" />
+<TGConnectingPoint num="11" id="291" />
+<TGConnectingPoint num="12" id="292" />
+<TGConnectingPoint num="13" id="293" />
+<TGConnectingPoint num="14" id="294" />
+<TGConnectingPoint num="15" id="295" />
+<extraparam>
+<Line value=" " />
+<Line value=" Any connection request will eventually complete," />
+<Line value=" either successfully or unsuccessfully." />
+<Line value=" " />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5309" id="309" >
+<cdparam x="404" y="343" />
+<sizeparam width="80" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="OR" />
+<TGConnectingPoint num="0" id="297" />
+<TGConnectingPoint num="1" id="298" />
+<TGConnectingPoint num="2" id="299" />
+<TGConnectingPoint num="3" id="300" />
+<TGConnectingPoint num="4" id="301" />
+<TGConnectingPoint num="5" id="302" />
+<TGConnectingPoint num="6" id="303" />
+<TGConnectingPoint num="7" id="304" />
+<TGConnectingPoint num="8" id="305" />
+<TGConnectingPoint num="9" id="306" />
+<TGConnectingPoint num="10" id="307" />
+<TGConnectingPoint num="11" id="308" />
+</COMPONENT>
+
+<COMPONENT type="5308" id="314" >
+<cdparam x="383" y="431" />
+<sizeparam width="122" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="TerminationProperty" />
+<TGConnectingPoint num="0" id="310" />
+<TGConnectingPoint num="1" id="311" />
+<TGConnectingPoint num="2" id="312" />
+<TGConnectingPoint num="3" id="313" />
+<extraparam>
+<liveness data="0" />
+<not data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5301" id="335" >
+<cdparam x="445" y="194" />
+<sizeparam width="60" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="&lt;&lt;LC&gt;&gt;" />
+<TGConnectingPoint num="0" id="315" />
+<TGConnectingPoint num="1" id="316" />
+<TGConnectingPoint num="2" id="317" />
+<TGConnectingPoint num="3" id="318" />
+<TGConnectingPoint num="4" id="319" />
+<TGConnectingPoint num="5" id="320" />
+<TGConnectingPoint num="6" id="321" />
+<TGConnectingPoint num="7" id="322" />
+<TGConnectingPoint num="8" id="323" />
+<TGConnectingPoint num="9" id="324" />
+<TGConnectingPoint num="10" id="325" />
+<TGConnectingPoint num="11" id="326" />
+<TGConnectingPoint num="12" id="327" />
+<TGConnectingPoint num="13" id="328" />
+<TGConnectingPoint num="14" id="329" />
+<TGConnectingPoint num="15" id="330" />
+<TGConnectingPoint num="16" id="331" />
+<TGConnectingPoint num="17" id="332" />
+<TGConnectingPoint num="18" id="333" />
+<TGConnectingPoint num="19" id="334" />
+</COMPONENT>
+
+<COMPONENT type="5301" id="356" >
+<cdparam x="379" y="75" />
+<sizeparam width="60" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="&lt;&lt;LC&gt;&gt;" />
+<TGConnectingPoint num="0" id="336" />
+<TGConnectingPoint num="1" id="337" />
+<TGConnectingPoint num="2" id="338" />
+<TGConnectingPoint num="3" id="339" />
+<TGConnectingPoint num="4" id="340" />
+<TGConnectingPoint num="5" id="341" />
+<TGConnectingPoint num="6" id="342" />
+<TGConnectingPoint num="7" id="343" />
+<TGConnectingPoint num="8" id="344" />
+<TGConnectingPoint num="9" id="345" />
+<TGConnectingPoint num="10" id="346" />
+<TGConnectingPoint num="11" id="347" />
+<TGConnectingPoint num="12" id="348" />
+<TGConnectingPoint num="13" id="349" />
+<TGConnectingPoint num="14" id="350" />
+<TGConnectingPoint num="15" id="351" />
+<TGConnectingPoint num="16" id="352" />
+<TGConnectingPoint num="17" id="353" />
+<TGConnectingPoint num="18" id="354" />
+<TGConnectingPoint num="19" id="355" />
+</COMPONENT>
+
+<COMPONENT type="5300" id="420" >
+<cdparam x="23" y="18" />
+<sizeparam width="214" height="280" 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="Block0" value="Pilot" />
+<TGConnectingPoint num="0" id="396" />
+<TGConnectingPoint num="1" id="397" />
+<TGConnectingPoint num="2" id="398" />
+<TGConnectingPoint num="3" id="399" />
+<TGConnectingPoint num="4" id="400" />
+<TGConnectingPoint num="5" id="401" />
+<TGConnectingPoint num="6" id="402" />
+<TGConnectingPoint num="7" id="403" />
+<TGConnectingPoint num="8" id="404" />
+<TGConnectingPoint num="9" id="405" />
+<TGConnectingPoint num="10" id="406" />
+<TGConnectingPoint num="11" id="407" />
+<TGConnectingPoint num="12" id="408" />
+<TGConnectingPoint num="13" id="409" />
+<TGConnectingPoint num="14" id="410" />
+<TGConnectingPoint num="15" id="411" />
+<TGConnectingPoint num="16" id="412" />
+<TGConnectingPoint num="17" id="413" />
+<TGConnectingPoint num="18" id="414" />
+<TGConnectingPoint num="19" id="415" />
+<TGConnectingPoint num="20" id="416" />
+<TGConnectingPoint num="21" id="417" />
+<TGConnectingPoint num="22" id="418" />
+<TGConnectingPoint num="23" id="419" />
+</COMPONENT>
+<SUBCOMPONENT type="5304" id="369" >
+<father id="420" num="0" />
+<cdparam x="75" y="138" />
+<sizeparam width="100" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="114" minY="0" maxY="240" />
+<infoparam name="TGComponent" value="INconconf" />
+<TGConnectingPoint num="0" id="357" />
+<TGConnectingPoint num="1" id="358" />
+<TGConnectingPoint num="2" id="359" />
+<TGConnectingPoint num="3" id="360" />
+<TGConnectingPoint num="4" id="361" />
+<TGConnectingPoint num="5" id="362" />
+<TGConnectingPoint num="6" id="363" />
+<TGConnectingPoint num="7" id="364" />
+<TGConnectingPoint num="8" id="365" />
+<TGConnectingPoint num="9" id="366" />
+<TGConnectingPoint num="10" id="367" />
+<TGConnectingPoint num="11" id="368" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5304" id="382" >
+<father id="420" num="1" />
+<cdparam x="79" y="214" />
+<sizeparam width="100" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="114" minY="0" maxY="240" />
+<infoparam name="TGComponent" value="INerror" />
+<TGConnectingPoint num="0" id="370" />
+<TGConnectingPoint num="1" id="371" />
+<TGConnectingPoint num="2" id="372" />
+<TGConnectingPoint num="3" id="373" />
+<TGConnectingPoint num="4" id="374" />
+<TGConnectingPoint num="5" id="375" />
+<TGConnectingPoint num="6" id="376" />
+<TGConnectingPoint num="7" id="377" />
+<TGConnectingPoint num="8" id="378" />
+<TGConnectingPoint num="9" id="379" />
+<TGConnectingPoint num="10" id="380" />
+<TGConnectingPoint num="11" id="381" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5304" id="395" >
+<father id="420" num="2" />
+<cdparam x="75" y="75" />
+<sizeparam width="100" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="114" minY="0" maxY="240" />
+<infoparam name="TGComponent" value="INconreq" />
+<TGConnectingPoint num="0" id="383" />
+<TGConnectingPoint num="1" id="384" />
+<TGConnectingPoint num="2" id="385" />
+<TGConnectingPoint num="3" id="386" />
+<TGConnectingPoint num="4" id="387" />
+<TGConnectingPoint num="5" id="388" />
+<TGConnectingPoint num="6" id="389" />
+<TGConnectingPoint num="7" id="390" />
+<TGConnectingPoint num="8" id="391" />
+<TGConnectingPoint num="9" id="392" />
+<TGConnectingPoint num="10" id="393" />
+<TGConnectingPoint num="11" id="394" />
+</SUBCOMPONENT>
+
+
+</AvatarPDPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="Avatar MAD" nameTab="Assumptions" >
+<AvatarMADPanel name="Assumptions_users" minX="10" maxX="1900" minY="10" maxY="900" zoom="1.0" >
+<COMPONENT type="5250" id="452" >
+<cdparam x="314" y="10" />
+<sizeparam width="312" height="174" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="164" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Assumption" value="Rendez_Vous_Acceptors" />
+<TGConnectingPoint num="0" id="421" />
+<TGConnectingPoint num="1" id="422" />
+<TGConnectingPoint num="2" id="423" />
+<TGConnectingPoint num="3" id="424" />
+<TGConnectingPoint num="4" id="425" />
+<TGConnectingPoint num="5" id="426" />
+<TGConnectingPoint num="6" id="427" />
+<TGConnectingPoint num="7" id="428" />
+<TGConnectingPoint num="8" id="429" />
+<TGConnectingPoint num="9" id="430" />
+<TGConnectingPoint num="10" id="431" />
+<TGConnectingPoint num="11" id="432" />
+<TGConnectingPoint num="12" id="433" />
+<TGConnectingPoint num="13" id="434" />
+<TGConnectingPoint num="14" id="435" />
+<TGConnectingPoint num="15" id="436" />
+<TGConnectingPoint num="16" id="437" />
+<TGConnectingPoint num="17" id="438" />
+<TGConnectingPoint num="18" id="439" />
+<TGConnectingPoint num="19" id="440" />
+<TGConnectingPoint num="20" id="441" />
+<TGConnectingPoint num="21" id="442" />
+<TGConnectingPoint num="22" id="443" />
+<TGConnectingPoint num="23" id="444" />
+<TGConnectingPoint num="24" id="445" />
+<TGConnectingPoint num="25" id="446" />
+<TGConnectingPoint num="26" id="447" />
+<TGConnectingPoint num="27" id="448" />
+<TGConnectingPoint num="28" id="449" />
+<TGConnectingPoint num="29" id="450" />
+<TGConnectingPoint num="30" id="451" />
+<extraparam>
+<textline data="To keep the model of the user applications" />
+<textline data="as general as possible, the state machine" />
+<textline data="of the pilot (resp. of the controller) accepts all " />
+<textline data="the rendezvous offers from the board-level" />
+<textline data="protocol (resp. the ground-level protocol)." />
+<textline data="In other words, the user-level applications" />
+<textline data="are modeled as rendezvous acceptors." />
+<type data="1" />
+<durability data="1" />
+<source data="3" />
+<status data="1" />
+<limitation data="3" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5250" id="484" >
+<cdparam x="57" y="82" />
+<sizeparam width="188" height="30" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="55" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Assumption" value="Users" />
+<TGConnectingPoint num="0" id="453" />
+<TGConnectingPoint num="1" id="454" />
+<TGConnectingPoint num="2" id="455" />
+<TGConnectingPoint num="3" id="456" />
+<TGConnectingPoint num="4" id="457" />
+<TGConnectingPoint num="5" id="458" />
+<TGConnectingPoint num="6" id="459" />
+<TGConnectingPoint num="7" id="460" />
+<TGConnectingPoint num="8" id="461" />
+<TGConnectingPoint num="9" id="462" />
+<TGConnectingPoint num="10" id="463" />
+<TGConnectingPoint num="11" id="464" />
+<TGConnectingPoint num="12" id="465" />
+<TGConnectingPoint num="13" id="466" />
+<TGConnectingPoint num="14" id="467" />
+<TGConnectingPoint num="15" id="468" />
+<TGConnectingPoint num="16" id="469" />
+<TGConnectingPoint num="17" id="470" />
+<TGConnectingPoint num="18" id="471" />
+<TGConnectingPoint num="19" id="472" />
+<TGConnectingPoint num="20" id="473" />
+<TGConnectingPoint num="21" id="474" />
+<TGConnectingPoint num="22" id="475" />
+<TGConnectingPoint num="23" id="476" />
+<TGConnectingPoint num="24" id="477" />
+<TGConnectingPoint num="25" id="478" />
+<TGConnectingPoint num="26" id="479" />
+<TGConnectingPoint num="27" id="480" />
+<TGConnectingPoint num="28" id="481" />
+<TGConnectingPoint num="29" id="482" />
+<TGConnectingPoint num="30" id="483" />
+<extraparam>
+<textline data="This assumption and its derived assumptions" />
+<textline data="address the users of the FANS protocol layer." />
+<type data="1" />
+<durability data="1" />
+<source data="3" />
+<status data="1" />
+<limitation data="3" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5252" id="512" >
+<cdparam x="627" y="301" />
+<sizeparam width="101" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="47" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarElementReference" value="Pilot" />
+<TGConnectingPoint num="0" id="485" />
+<TGConnectingPoint num="1" id="486" />
+<TGConnectingPoint num="2" id="487" />
+<TGConnectingPoint num="3" id="488" />
+<TGConnectingPoint num="4" id="489" />
+<TGConnectingPoint num="5" id="490" />
+<TGConnectingPoint num="6" id="491" />
+<TGConnectingPoint num="7" id="492" />
+<TGConnectingPoint num="8" id="493" />
+<TGConnectingPoint num="9" id="494" />
+<TGConnectingPoint num="10" id="495" />
+<TGConnectingPoint num="11" id="496" />
+<TGConnectingPoint num="12" id="497" />
+<TGConnectingPoint num="13" id="498" />
+<TGConnectingPoint num="14" id="499" />
+<TGConnectingPoint num="15" id="500" />
+<TGConnectingPoint num="16" id="501" />
+<TGConnectingPoint num="17" id="502" />
+<TGConnectingPoint num="18" id="503" />
+<TGConnectingPoint num="19" id="504" />
+<TGConnectingPoint num="20" id="505" />
+<TGConnectingPoint num="21" id="506" />
+<TGConnectingPoint num="22" id="507" />
+<TGConnectingPoint num="23" id="508" />
+<TGConnectingPoint num="24" id="509" />
+<TGConnectingPoint num="25" id="510" />
+<TGConnectingPoint num="26" id="511" />
+</COMPONENT>
+
+<COMPONENT type="5252" id="540" >
+<cdparam x="489" y="301" />
+<sizeparam width="122" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="79" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarElementReference" value="Controller" />
+<TGConnectingPoint num="0" id="513" />
+<TGConnectingPoint num="1" id="514" />
+<TGConnectingPoint num="2" id="515" />
+<TGConnectingPoint num="3" id="516" />
+<TGConnectingPoint num="4" id="517" />
+<TGConnectingPoint num="5" id="518" />
+<TGConnectingPoint num="6" id="519" />
+<TGConnectingPoint num="7" id="520" />
+<TGConnectingPoint num="8" id="521" />
+<TGConnectingPoint num="9" id="522" />
+<TGConnectingPoint num="10" id="523" />
+<TGConnectingPoint num="11" id="524" />
+<TGConnectingPoint num="12" id="525" />
+<TGConnectingPoint num="13" id="526" />
+<TGConnectingPoint num="14" id="527" />
+<TGConnectingPoint num="15" id="528" />
+<TGConnectingPoint num="16" id="529" />
+<TGConnectingPoint num="17" id="530" />
+<TGConnectingPoint num="18" id="531" />
+<TGConnectingPoint num="19" id="532" />
+<TGConnectingPoint num="20" id="533" />
+<TGConnectingPoint num="21" id="534" />
+<TGConnectingPoint num="22" id="535" />
+<TGConnectingPoint num="23" id="536" />
+<TGConnectingPoint num="24" id="537" />
+<TGConnectingPoint num="25" id="538" />
+<TGConnectingPoint num="26" id="539" />
+</COMPONENT>
+
+<COMPONENT type="5251" id="568" >
+<cdparam x="300" y="234" />
+<sizeparam width="152" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="110" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarDiagramReference" value="Design_unlossy" />
+<TGConnectingPoint num="0" id="541" />
+<TGConnectingPoint num="1" id="542" />
+<TGConnectingPoint num="2" id="543" />
+<TGConnectingPoint num="3" id="544" />
+<TGConnectingPoint num="4" id="545" />
+<TGConnectingPoint num="5" id="546" />
+<TGConnectingPoint num="6" id="547" />
+<TGConnectingPoint num="7" id="548" />
+<TGConnectingPoint num="8" id="549" />
+<TGConnectingPoint num="9" id="550" />
+<TGConnectingPoint num="10" id="551" />
+<TGConnectingPoint num="11" id="552" />
+<TGConnectingPoint num="12" id="553" />
+<TGConnectingPoint num="13" id="554" />
+<TGConnectingPoint num="14" id="555" />
+<TGConnectingPoint num="15" id="556" />
+<TGConnectingPoint num="16" id="557" />
+<TGConnectingPoint num="17" id="558" />
+<TGConnectingPoint num="18" id="559" />
+<TGConnectingPoint num="19" id="560" />
+<TGConnectingPoint num="20" id="561" />
+<TGConnectingPoint num="21" id="562" />
+<TGConnectingPoint num="22" id="563" />
+<TGConnectingPoint num="23" id="564" />
+<TGConnectingPoint num="24" id="565" />
+<TGConnectingPoint num="25" id="566" />
+<TGConnectingPoint num="26" id="567" />
+</COMPONENT>
+
+<COMPONENT type="5251" id="596" >
+<cdparam x="473" y="234" />
+<sizeparam width="152" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="96" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarDiagramReference" value="Design_lossy" />
+<TGConnectingPoint num="0" id="569" />
+<TGConnectingPoint num="1" id="570" />
+<TGConnectingPoint num="2" id="571" />
+<TGConnectingPoint num="3" id="572" />
+<TGConnectingPoint num="4" id="573" />
+<TGConnectingPoint num="5" id="574" />
+<TGConnectingPoint num="6" id="575" />
+<TGConnectingPoint num="7" id="576" />
+<TGConnectingPoint num="8" id="577" />
+<TGConnectingPoint num="9" id="578" />
+<TGConnectingPoint num="10" id="579" />
+<TGConnectingPoint num="11" id="580" />
+<TGConnectingPoint num="12" id="581" />
+<TGConnectingPoint num="13" id="582" />
+<TGConnectingPoint num="14" id="583" />
+<TGConnectingPoint num="15" id="584" />
+<TGConnectingPoint num="16" id="585" />
+<TGConnectingPoint num="17" id="586" />
+<TGConnectingPoint num="18" id="587" />
+<TGConnectingPoint num="19" id="588" />
+<TGConnectingPoint num="20" id="589" />
+<TGConnectingPoint num="21" id="590" />
+<TGConnectingPoint num="22" id="591" />
+<TGConnectingPoint num="23" id="592" />
+<TGConnectingPoint num="24" id="593" />
+<TGConnectingPoint num="25" id="594" />
+<TGConnectingPoint num="26" id="595" />
+</COMPONENT>
+
+<COMPONENT type="5252" id="624" >
+<cdparam x="357" y="303" />
+<sizeparam width="101" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="47" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarElementReference" value="Pilot" />
+<TGConnectingPoint num="0" id="597" />
+<TGConnectingPoint num="1" id="598" />
+<TGConnectingPoint num="2" id="599" />
+<TGConnectingPoint num="3" id="600" />
+<TGConnectingPoint num="4" id="601" />
+<TGConnectingPoint num="5" id="602" />
+<TGConnectingPoint num="6" id="603" />
+<TGConnectingPoint num="7" id="604" />
+<TGConnectingPoint num="8" id="605" />
+<TGConnectingPoint num="9" id="606" />
+<TGConnectingPoint num="10" id="607" />
+<TGConnectingPoint num="11" id="608" />
+<TGConnectingPoint num="12" id="609" />
+<TGConnectingPoint num="13" id="610" />
+<TGConnectingPoint num="14" id="611" />
+<TGConnectingPoint num="15" id="612" />
+<TGConnectingPoint num="16" id="613" />
+<TGConnectingPoint num="17" id="614" />
+<TGConnectingPoint num="18" id="615" />
+<TGConnectingPoint num="19" id="616" />
+<TGConnectingPoint num="20" id="617" />
+<TGConnectingPoint num="21" id="618" />
+<TGConnectingPoint num="22" id="619" />
+<TGConnectingPoint num="23" id="620" />
+<TGConnectingPoint num="24" id="621" />
+<TGConnectingPoint num="25" id="622" />
+<TGConnectingPoint num="26" id="623" />
+</COMPONENT>
+
+<COMPONENT type="5252" id="652" >
+<cdparam x="225" y="302" />
+<sizeparam width="122" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="79" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarElementReference" value="Controller" />
+<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" />
+<TGConnectingPoint num="24" id="649" />
+<TGConnectingPoint num="25" id="650" />
+<TGConnectingPoint num="26" id="651" />
+</COMPONENT>
+
+<CONNECTOR type="5255" id="654" >
+<cdparam x="392" y="184" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;impact&gt;&gt;" />
+<TGConnectingPoint num="0" id="653" />
+<P1  x="392" y="184" id="442" />
+<P2  x="376" y="234" id="548" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5257" id="656" >
+<cdparam x="286" y="302" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<TGConnectingPoint num="0" id="655" />
+<P1  x="286" y="302" id="632" />
+<P2  x="338" y="264" id="550" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5257" id="658" >
+<cdparam x="407" y="303" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<TGConnectingPoint num="0" id="657" />
+<P1  x="407" y="303" id="604" />
+<P2  x="414" y="264" id="552" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5253" id="660" >
+<cdparam x="212" y="209" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;composition&gt;&gt;" />
+<TGConnectingPoint num="0" id="659" />
+<P1  x="314" y="97" id="422" />
+<P2  x="245" y="97" id="457" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5257" id="662" >
+<cdparam x="681" y="368" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<TGConnectingPoint num="0" id="661" />
+<P1  x="550" y="301" id="520" />
+<P2  x="511" y="264" id="578" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5257" id="664" >
+<cdparam x="681" y="321" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<TGConnectingPoint num="0" id="663" />
+<P1  x="677" y="301" id="492" />
+<P2  x="587" y="264" id="580" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5255" id="666" >
+<cdparam x="368" y="339" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;impact&gt;&gt;" />
+<TGConnectingPoint num="0" id="665" />
+<P1  x="548" y="184" id="444" />
+<P2  x="549" y="234" id="576" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</AvatarMADPanel>
+
+<AvatarMADPanel name="Assumptions_protocol_layer" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="5250" id="698" >
+<cdparam x="253" y="192" />
+<sizeparam width="451" height="122" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="192" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Assumption" value="Message_Loss_Compensation" />
+<TGConnectingPoint num="0" id="667" />
+<TGConnectingPoint num="1" id="668" />
+<TGConnectingPoint num="2" id="669" />
+<TGConnectingPoint num="3" id="670" />
+<TGConnectingPoint num="4" id="671" />
+<TGConnectingPoint num="5" id="672" />
+<TGConnectingPoint num="6" id="673" />
+<TGConnectingPoint num="7" id="674" />
+<TGConnectingPoint num="8" id="675" />
+<TGConnectingPoint num="9" id="676" />
+<TGConnectingPoint num="10" id="677" />
+<TGConnectingPoint num="11" id="678" />
+<TGConnectingPoint num="12" id="679" />
+<TGConnectingPoint num="13" id="680" />
+<TGConnectingPoint num="14" id="681" />
+<TGConnectingPoint num="15" id="682" />
+<TGConnectingPoint num="16" id="683" />
+<TGConnectingPoint num="17" id="684" />
+<TGConnectingPoint num="18" id="685" />
+<TGConnectingPoint num="19" id="686" />
+<TGConnectingPoint num="20" id="687" />
+<TGConnectingPoint num="21" id="688" />
+<TGConnectingPoint num="22" id="689" />
+<TGConnectingPoint num="23" id="690" />
+<TGConnectingPoint num="24" id="691" />
+<TGConnectingPoint num="25" id="692" />
+<TGConnectingPoint num="26" id="693" />
+<TGConnectingPoint num="27" id="694" />
+<TGConnectingPoint num="28" id="695" />
+<TGConnectingPoint num="29" id="696" />
+<TGConnectingPoint num="30" id="697" />
+<extraparam>
+<textline data="Only CCs may be lost." />
+<textline data="The protocol bounds retransmissions to 3." />
+<textline data="Would the procedure fail, the pilot and the controller will be informed." />
+<type data="0" />
+<durability data="2" />
+<source data="3" />
+<status data="1" />
+<limitation data="4" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5250" id="730" >
+<cdparam x="19" y="67" />
+<sizeparam width="184" height="30" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="106" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Assumption" value="Protocol_Layer" />
+<TGConnectingPoint num="0" id="699" />
+<TGConnectingPoint num="1" id="700" />
+<TGConnectingPoint num="2" id="701" />
+<TGConnectingPoint num="3" id="702" />
+<TGConnectingPoint num="4" id="703" />
+<TGConnectingPoint num="5" id="704" />
+<TGConnectingPoint num="6" id="705" />
+<TGConnectingPoint num="7" id="706" />
+<TGConnectingPoint num="8" id="707" />
+<TGConnectingPoint num="9" id="708" />
+<TGConnectingPoint num="10" id="709" />
+<TGConnectingPoint num="11" id="710" />
+<TGConnectingPoint num="12" id="711" />
+<TGConnectingPoint num="13" id="712" />
+<TGConnectingPoint num="14" id="713" />
+<TGConnectingPoint num="15" id="714" />
+<TGConnectingPoint num="16" id="715" />
+<TGConnectingPoint num="17" id="716" />
+<TGConnectingPoint num="18" id="717" />
+<TGConnectingPoint num="19" id="718" />
+<TGConnectingPoint num="20" id="719" />
+<TGConnectingPoint num="21" id="720" />
+<TGConnectingPoint num="22" id="721" />
+<TGConnectingPoint num="23" id="722" />
+<TGConnectingPoint num="24" id="723" />
+<TGConnectingPoint num="25" id="724" />
+<TGConnectingPoint num="26" id="725" />
+<TGConnectingPoint num="27" id="726" />
+<TGConnectingPoint num="28" id="727" />
+<TGConnectingPoint num="29" id="728" />
+<TGConnectingPoint num="30" id="729" />
+<extraparam>
+<textline data="Assumption description:" />
+<textline data="Double-click to edit" />
+<type data="0" />
+<durability data="0" />
+<source data="0" />
+<status data="0" />
+<limitation data="0" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5250" id="762" >
+<cdparam x="250" y="22" />
+<sizeparam width="454" height="105" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="217" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Assumption" value="Temporal_Ordering_Of_Messages" />
+<TGConnectingPoint num="0" id="731" />
+<TGConnectingPoint num="1" id="732" />
+<TGConnectingPoint num="2" id="733" />
+<TGConnectingPoint num="3" id="734" />
+<TGConnectingPoint num="4" id="735" />
+<TGConnectingPoint num="5" id="736" />
+<TGConnectingPoint num="6" id="737" />
+<TGConnectingPoint num="7" id="738" />
+<TGConnectingPoint num="8" id="739" />
+<TGConnectingPoint num="9" id="740" />
+<TGConnectingPoint num="10" id="741" />
+<TGConnectingPoint num="11" id="742" />
+<TGConnectingPoint num="12" id="743" />
+<TGConnectingPoint num="13" id="744" />
+<TGConnectingPoint num="14" id="745" />
+<TGConnectingPoint num="15" id="746" />
+<TGConnectingPoint num="16" id="747" />
+<TGConnectingPoint num="17" id="748" />
+<TGConnectingPoint num="18" id="749" />
+<TGConnectingPoint num="19" id="750" />
+<TGConnectingPoint num="20" id="751" />
+<TGConnectingPoint num="21" id="752" />
+<TGConnectingPoint num="22" id="753" />
+<TGConnectingPoint num="23" id="754" />
+<TGConnectingPoint num="24" id="755" />
+<TGConnectingPoint num="25" id="756" />
+<TGConnectingPoint num="26" id="757" />
+<TGConnectingPoint num="27" id="758" />
+<TGConnectingPoint num="28" id="759" />
+<TGConnectingPoint num="29" id="760" />
+<TGConnectingPoint num="30" id="761" />
+<extraparam>
+<textline data="Message parameters such as the tower&apos;s address are" />
+<textline data=" not represented. This contributes to make reachability" />
+<textline data="analysis converge." />
+<type data="0" />
+<durability data="1" />
+<source data="3" />
+<status data="1" />
+<limitation data="4" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5251" id="790" >
+<cdparam x="386" y="358" />
+<sizeparam width="152" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="110" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="AvatarDiagramReference" value="Design_unlossy" />
+<TGConnectingPoint num="0" id="763" />
+<TGConnectingPoint num="1" id="764" />
+<TGConnectingPoint num="2" id="765" />
+<TGConnectingPoint num="3" id="766" />
+<TGConnectingPoint num="4" id="767" />
+<TGConnectingPoint num="5" id="768" />
+<TGConnectingPoint num="6" id="769" />
+<TGConnectingPoint num="7" id="770" />
+<TGConnectingPoint num="8" id="771" />
+<TGConnectingPoint num="9" id="772" />
+<TGConnectingPoint num="10" id="773" />
+<TGConnectingPoint num="11" id="774" />
+<TGConnectingPoint num="12" id="775" />
+<TGConnectingPoint num="13" id="776" />
+<TGConnectingPoint num="14" id="777" />
+<TGConnectingPoint num="15" id="778" />
+<TGConnectingPoint num="16" id="779" />
+<TGConnectingPoint num="17" id="780" />
+<TGConnectingPoint num="18" id="781" />
+<TGConnectingPoint num="19" id="782" />
+<TGConnectingPoint num="20" id="783" />
+<TGConnectingPoint num="21" id="784" />
+<TGConnectingPoint num="22" id="785" />
+<TGConnectingPoint num="23" id="786" />
+<TGConnectingPoint num="24" id="787" />
+<TGConnectingPoint num="25" id="788" />
+<TGConnectingPoint num="26" id="789" />
+</COMPONENT>
+
+<COMPONENT type="5252" id="818" >
+<cdparam x="443" y="427" />
+<sizeparam width="101" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="47" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="AvatarElementReference" value="Pilot" />
+<TGConnectingPoint num="0" id="791" />
+<TGConnectingPoint num="1" id="792" />
+<TGConnectingPoint num="2" id="793" />
+<TGConnectingPoint num="3" id="794" />
+<TGConnectingPoint num="4" id="795" />
+<TGConnectingPoint num="5" id="796" />
+<TGConnectingPoint num="6" id="797" />
+<TGConnectingPoint num="7" id="798" />
+<TGConnectingPoint num="8" id="799" />
+<TGConnectingPoint num="9" id="800" />
+<TGConnectingPoint num="10" id="801" />
+<TGConnectingPoint num="11" id="802" />
+<TGConnectingPoint num="12" id="803" />
+<TGConnectingPoint num="13" id="804" />
+<TGConnectingPoint num="14" id="805" />
+<TGConnectingPoint num="15" id="806" />
+<TGConnectingPoint num="16" id="807" />
+<TGConnectingPoint num="17" id="808" />
+<TGConnectingPoint num="18" id="809" />
+<TGConnectingPoint num="19" id="810" />
+<TGConnectingPoint num="20" id="811" />
+<TGConnectingPoint num="21" id="812" />
+<TGConnectingPoint num="22" id="813" />
+<TGConnectingPoint num="23" id="814" />
+<TGConnectingPoint num="24" id="815" />
+<TGConnectingPoint num="25" id="816" />
+<TGConnectingPoint num="26" id="817" />
+</COMPONENT>
+
+<COMPONENT type="5252" id="846" >
+<cdparam x="311" y="426" />
+<sizeparam width="122" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="79" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="AvatarElementReference" value="Controller" />
+<TGConnectingPoint num="0" id="819" />
+<TGConnectingPoint num="1" id="820" />
+<TGConnectingPoint num="2" id="821" />
+<TGConnectingPoint num="3" id="822" />
+<TGConnectingPoint num="4" id="823" />
+<TGConnectingPoint num="5" id="824" />
+<TGConnectingPoint num="6" id="825" />
+<TGConnectingPoint num="7" id="826" />
+<TGConnectingPoint num="8" id="827" />
+<TGConnectingPoint num="9" id="828" />
+<TGConnectingPoint num="10" id="829" />
+<TGConnectingPoint num="11" id="830" />
+<TGConnectingPoint num="12" id="831" />
+<TGConnectingPoint num="13" id="832" />
+<TGConnectingPoint num="14" id="833" />
+<TGConnectingPoint num="15" id="834" />
+<TGConnectingPoint num="16" id="835" />
+<TGConnectingPoint num="17" id="836" />
+<TGConnectingPoint num="18" id="837" />
+<TGConnectingPoint num="19" id="838" />
+<TGConnectingPoint num="20" id="839" />
+<TGConnectingPoint num="21" id="840" />
+<TGConnectingPoint num="22" id="841" />
+<TGConnectingPoint num="23" id="842" />
+<TGConnectingPoint num="24" id="843" />
+<TGConnectingPoint num="25" id="844" />
+<TGConnectingPoint num="26" id="845" />
+</COMPONENT>
+
+<CONNECTOR type="5255" id="848" >
+<cdparam x="478" y="314" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;impact&gt;&gt;" />
+<TGConnectingPoint num="0" id="847" />
+<P1  x="478" y="314" id="689" />
+<P2  x="462" y="358" id="770" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5254" id="850" >
+<cdparam x="474" y="127" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;versioning&gt;&gt;" />
+<TGConnectingPoint num="0" id="849" />
+<P1  x="477" y="127" id="741" />
+<P2  x="478" y="192" id="674" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<oldVersion data="1" />
+<newVersion data="2" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5253" id="852" >
+<cdparam x="250" y="73" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;composition&gt;&gt;" />
+<TGConnectingPoint num="0" id="851" />
+<P1  x="250" y="74" id="732" />
+<P2  x="203" y="74" id="702" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5257" id="854" >
+<cdparam x="372" y="426" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<TGConnectingPoint num="0" id="853" />
+<P1  x="372" y="426" id="826" />
+<P2  x="424" y="388" id="772" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5257" id="856" >
+<cdparam x="493" y="427" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<TGConnectingPoint num="0" id="855" />
+<P1  x="493" y="427" id="798" />
+<P2  x="500" y="388" id="774" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</AvatarMADPanel>
+
+<AvatarMADPanel name="Assumptions_underlying_network" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="5250" id="888" >
+<cdparam x="249" y="11" />
+<sizeparam width="360" height="125" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="109" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Assumption" value="PerfectMedium" />
+<TGConnectingPoint num="0" id="857" />
+<TGConnectingPoint num="1" id="858" />
+<TGConnectingPoint num="2" id="859" />
+<TGConnectingPoint num="3" id="860" />
+<TGConnectingPoint num="4" id="861" />
+<TGConnectingPoint num="5" id="862" />
+<TGConnectingPoint num="6" id="863" />
+<TGConnectingPoint num="7" id="864" />
+<TGConnectingPoint num="8" id="865" />
+<TGConnectingPoint num="9" id="866" />
+<TGConnectingPoint num="10" id="867" />
+<TGConnectingPoint num="11" id="868" />
+<TGConnectingPoint num="12" id="869" />
+<TGConnectingPoint num="13" id="870" />
+<TGConnectingPoint num="14" id="871" />
+<TGConnectingPoint num="15" id="872" />
+<TGConnectingPoint num="16" id="873" />
+<TGConnectingPoint num="17" id="874" />
+<TGConnectingPoint num="18" id="875" />
+<TGConnectingPoint num="19" id="876" />
+<TGConnectingPoint num="20" id="877" />
+<TGConnectingPoint num="21" id="878" />
+<TGConnectingPoint num="22" id="879" />
+<TGConnectingPoint num="23" id="880" />
+<TGConnectingPoint num="24" id="881" />
+<TGConnectingPoint num="25" id="882" />
+<TGConnectingPoint num="26" id="883" />
+<TGConnectingPoint num="27" id="884" />
+<TGConnectingPoint num="28" id="885" />
+<TGConnectingPoint num="29" id="886" />
+<TGConnectingPoint num="30" id="887" />
+<extraparam>
+<textline data="The network will never corrupt or duplicate messages. " />
+<textline data="Nor it will desequence messages." />
+<textline data="Transmission delay = 0 in both sense." />
+<type data="0" />
+<durability data="1" />
+<source data="3" />
+<status data="1" />
+<limitation data="3" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5250" id="920" >
+<cdparam x="10" y="35" />
+<sizeparam width="172" height="30" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="71" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Assumption" value="Network" />
+<TGConnectingPoint num="0" id="889" />
+<TGConnectingPoint num="1" id="890" />
+<TGConnectingPoint num="2" id="891" />
+<TGConnectingPoint num="3" id="892" />
+<TGConnectingPoint num="4" id="893" />
+<TGConnectingPoint num="5" id="894" />
+<TGConnectingPoint num="6" id="895" />
+<TGConnectingPoint num="7" id="896" />
+<TGConnectingPoint num="8" id="897" />
+<TGConnectingPoint num="9" id="898" />
+<TGConnectingPoint num="10" id="899" />
+<TGConnectingPoint num="11" id="900" />
+<TGConnectingPoint num="12" id="901" />
+<TGConnectingPoint num="13" id="902" />
+<TGConnectingPoint num="14" id="903" />
+<TGConnectingPoint num="15" id="904" />
+<TGConnectingPoint num="16" id="905" />
+<TGConnectingPoint num="17" id="906" />
+<TGConnectingPoint num="18" id="907" />
+<TGConnectingPoint num="19" id="908" />
+<TGConnectingPoint num="20" id="909" />
+<TGConnectingPoint num="21" id="910" />
+<TGConnectingPoint num="22" id="911" />
+<TGConnectingPoint num="23" id="912" />
+<TGConnectingPoint num="24" id="913" />
+<TGConnectingPoint num="25" id="914" />
+<TGConnectingPoint num="26" id="915" />
+<TGConnectingPoint num="27" id="916" />
+<TGConnectingPoint num="28" id="917" />
+<TGConnectingPoint num="29" id="918" />
+<TGConnectingPoint num="30" id="919" />
+<extraparam>
+<textline data="Assumption description:" />
+<textline data="Double-click to edit" />
+<type data="0" />
+<durability data="0" />
+<source data="0" />
+<status data="0" />
+<limitation data="0" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5251" id="948" >
+<cdparam x="521" y="316" />
+<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="110" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="AvatarDiagramReference" value="Design_unlossy" />
+<TGConnectingPoint num="0" id="921" />
+<TGConnectingPoint num="1" id="922" />
+<TGConnectingPoint num="2" id="923" />
+<TGConnectingPoint num="3" id="924" />
+<TGConnectingPoint num="4" id="925" />
+<TGConnectingPoint num="5" id="926" />
+<TGConnectingPoint num="6" id="927" />
+<TGConnectingPoint num="7" id="928" />
+<TGConnectingPoint num="8" id="929" />
+<TGConnectingPoint num="9" id="930" />
+<TGConnectingPoint num="10" id="931" />
+<TGConnectingPoint num="11" id="932" />
+<TGConnectingPoint num="12" id="933" />
+<TGConnectingPoint num="13" id="934" />
+<TGConnectingPoint num="14" id="935" />
+<TGConnectingPoint num="15" id="936" />
+<TGConnectingPoint num="16" id="937" />
+<TGConnectingPoint num="17" id="938" />
+<TGConnectingPoint num="18" id="939" />
+<TGConnectingPoint num="19" id="940" />
+<TGConnectingPoint num="20" id="941" />
+<TGConnectingPoint num="21" id="942" />
+<TGConnectingPoint num="22" id="943" />
+<TGConnectingPoint num="23" id="944" />
+<TGConnectingPoint num="24" id="945" />
+<TGConnectingPoint num="25" id="946" />
+<TGConnectingPoint num="26" id="947" />
+</COMPONENT>
+
+<COMPONENT type="5251" id="976" >
+<cdparam x="91" y="309" />
+<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="110" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="AvatarDiagramReference" value="Design_unlossy" />
+<TGConnectingPoint num="0" id="949" />
+<TGConnectingPoint num="1" id="950" />
+<TGConnectingPoint num="2" id="951" />
+<TGConnectingPoint num="3" id="952" />
+<TGConnectingPoint num="4" id="953" />
+<TGConnectingPoint num="5" id="954" />
+<TGConnectingPoint num="6" id="955" />
+<TGConnectingPoint num="7" id="956" />
+<TGConnectingPoint num="8" id="957" />
+<TGConnectingPoint num="9" id="958" />
+<TGConnectingPoint num="10" id="959" />
+<TGConnectingPoint num="11" id="960" />
+<TGConnectingPoint num="12" id="961" />
+<TGConnectingPoint num="13" id="962" />
+<TGConnectingPoint num="14" id="963" />
+<TGConnectingPoint num="15" id="964" />
+<TGConnectingPoint num="16" id="965" />
+<TGConnectingPoint num="17" id="966" />
+<TGConnectingPoint num="18" id="967" />
+<TGConnectingPoint num="19" id="968" />
+<TGConnectingPoint num="20" id="969" />
+<TGConnectingPoint num="21" id="970" />
+<TGConnectingPoint num="22" id="971" />
+<TGConnectingPoint num="23" id="972" />
+<TGConnectingPoint num="24" id="973" />
+<TGConnectingPoint num="25" id="974" />
+<TGConnectingPoint num="26" id="975" />
+</COMPONENT>
+
+<COMPONENT type="5250" id="1008" >
+<cdparam x="441" y="159" />
+<sizeparam width="311" height="119" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="108" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Assumption" value="Lossy_Network" />
+<TGConnectingPoint num="0" id="977" />
+<TGConnectingPoint num="1" id="978" />
+<TGConnectingPoint num="2" id="979" />
+<TGConnectingPoint num="3" id="980" />
+<TGConnectingPoint num="4" id="981" />
+<TGConnectingPoint num="5" id="982" />
+<TGConnectingPoint num="6" id="983" />
+<TGConnectingPoint num="7" id="984" />
+<TGConnectingPoint num="8" id="985" />
+<TGConnectingPoint num="9" id="986" />
+<TGConnectingPoint num="10" id="987" />
+<TGConnectingPoint num="11" id="988" />
+<TGConnectingPoint num="12" id="989" />
+<TGConnectingPoint num="13" id="990" />
+<TGConnectingPoint num="14" id="991" />
+<TGConnectingPoint num="15" id="992" />
+<TGConnectingPoint num="16" id="993" />
+<TGConnectingPoint num="17" id="994" />
+<TGConnectingPoint num="18" id="995" />
+<TGConnectingPoint num="19" id="996" />
+<TGConnectingPoint num="20" id="997" />
+<TGConnectingPoint num="21" id="998" />
+<TGConnectingPoint num="22" id="999" />
+<TGConnectingPoint num="23" id="1000" />
+<TGConnectingPoint num="24" id="1001" />
+<TGConnectingPoint num="25" id="1002" />
+<TGConnectingPoint num="26" id="1003" />
+<TGConnectingPoint num="27" id="1004" />
+<TGConnectingPoint num="28" id="1005" />
+<TGConnectingPoint num="29" id="1006" />
+<TGConnectingPoint num="30" id="1007" />
+<extraparam>
+<textline data="The network may loss one type of message:" />
+<textline data="the CC issued by the ground station after the" />
+<textline data="controller has acknowledged the connection." />
+<type data="1" />
+<durability data="2" />
+<source data="3" />
+<status data="1" />
+<limitation data="3" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5250" id="1040" >
+<cdparam x="27" y="164" />
+<sizeparam width="277" height="108" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="120" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Assumption" value="Unlossy_Network" />
+<TGConnectingPoint num="0" id="1009" />
+<TGConnectingPoint num="1" id="1010" />
+<TGConnectingPoint num="2" id="1011" />
+<TGConnectingPoint num="3" id="1012" />
+<TGConnectingPoint num="4" id="1013" />
+<TGConnectingPoint num="5" id="1014" />
+<TGConnectingPoint num="6" id="1015" />
+<TGConnectingPoint num="7" id="1016" />
+<TGConnectingPoint num="8" id="1017" />
+<TGConnectingPoint num="9" id="1018" />
+<TGConnectingPoint num="10" id="1019" />
+<TGConnectingPoint num="11" id="1020" />
+<TGConnectingPoint num="12" id="1021" />
+<TGConnectingPoint num="13" id="1022" />
+<TGConnectingPoint num="14" id="1023" />
+<TGConnectingPoint num="15" id="1024" />
+<TGConnectingPoint num="16" id="1025" />
+<TGConnectingPoint num="17" id="1026" />
+<TGConnectingPoint num="18" id="1027" />
+<TGConnectingPoint num="19" id="1028" />
+<TGConnectingPoint num="20" id="1029" />
+<TGConnectingPoint num="21" id="1030" />
+<TGConnectingPoint num="22" id="1031" />
+<TGConnectingPoint num="23" id="1032" />
+<TGConnectingPoint num="24" id="1033" />
+<TGConnectingPoint num="25" id="1034" />
+<TGConnectingPoint num="26" id="1035" />
+<TGConnectingPoint num="27" id="1036" />
+<TGConnectingPoint num="28" id="1037" />
+<TGConnectingPoint num="29" id="1038" />
+<TGConnectingPoint num="30" id="1039" />
+<extraparam>
+<textline data="The network does not loose messages." />
+<type data="1" />
+<durability data="2" />
+<source data="3" />
+<status data="1" />
+<limitation data="3" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5252" id="1068" >
+<cdparam x="96" y="375" />
+<sizeparam width="139" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="71" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="AvatarElementReference" value="Network" />
+<TGConnectingPoint num="0" id="1041" />
+<TGConnectingPoint num="1" id="1042" />
+<TGConnectingPoint num="2" id="1043" />
+<TGConnectingPoint num="3" id="1044" />
+<TGConnectingPoint num="4" id="1045" />
+<TGConnectingPoint num="5" id="1046" />
+<TGConnectingPoint num="6" id="1047" />
+<TGConnectingPoint num="7" id="1048" />
+<TGConnectingPoint num="8" id="1049" />
+<TGConnectingPoint num="9" id="1050" />
+<TGConnectingPoint num="10" id="1051" />
+<TGConnectingPoint num="11" id="1052" />
+<TGConnectingPoint num="12" id="1053" />
+<TGConnectingPoint num="13" id="1054" />
+<TGConnectingPoint num="14" id="1055" />
+<TGConnectingPoint num="15" id="1056" />
+<TGConnectingPoint num="16" id="1057" />
+<TGConnectingPoint num="17" id="1058" />
+<TGConnectingPoint num="18" id="1059" />
+<TGConnectingPoint num="19" id="1060" />
+<TGConnectingPoint num="20" id="1061" />
+<TGConnectingPoint num="21" id="1062" />
+<TGConnectingPoint num="22" id="1063" />
+<TGConnectingPoint num="23" id="1064" />
+<TGConnectingPoint num="24" id="1065" />
+<TGConnectingPoint num="25" id="1066" />
+<TGConnectingPoint num="26" id="1067" />
+</COMPONENT>
+
+<COMPONENT type="5252" id="1096" >
+<cdparam x="521" y="381" />
+<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="71" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="AvatarElementReference" value="Network" />
+<TGConnectingPoint num="0" id="1069" />
+<TGConnectingPoint num="1" id="1070" />
+<TGConnectingPoint num="2" id="1071" />
+<TGConnectingPoint num="3" id="1072" />
+<TGConnectingPoint num="4" id="1073" />
+<TGConnectingPoint num="5" id="1074" />
+<TGConnectingPoint num="6" id="1075" />
+<TGConnectingPoint num="7" id="1076" />
+<TGConnectingPoint num="8" id="1077" />
+<TGConnectingPoint num="9" id="1078" />
+<TGConnectingPoint num="10" id="1079" />
+<TGConnectingPoint num="11" id="1080" />
+<TGConnectingPoint num="12" id="1081" />
+<TGConnectingPoint num="13" id="1082" />
+<TGConnectingPoint num="14" id="1083" />
+<TGConnectingPoint num="15" id="1084" />
+<TGConnectingPoint num="16" id="1085" />
+<TGConnectingPoint num="17" id="1086" />
+<TGConnectingPoint num="18" id="1087" />
+<TGConnectingPoint num="19" id="1088" />
+<TGConnectingPoint num="20" id="1089" />
+<TGConnectingPoint num="21" id="1090" />
+<TGConnectingPoint num="22" id="1091" />
+<TGConnectingPoint num="23" id="1092" />
+<TGConnectingPoint num="24" id="1093" />
+<TGConnectingPoint num="25" id="1094" />
+<TGConnectingPoint num="26" id="1095" />
+</COMPONENT>
+
+<CONNECTOR type="5253" id="1098" >
+<cdparam x="148" y="165" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;composition&gt;&gt;" />
+<TGConnectingPoint num="0" id="1097" />
+<P1  x="96" y="164" id="1015" />
+<P2  x="96" y="65" id="899" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5253" id="1100" >
+<cdparam x="247" y="40" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;composition&gt;&gt;" />
+<TGConnectingPoint num="0" id="1099" />
+<P1  x="249" y="42" id="857" />
+<P2  x="182" y="42" id="892" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5257" id="1102" >
+<cdparam x="707" y="544" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<TGConnectingPoint num="0" id="1101" />
+<P1  x="596" y="381" id="1076" />
+<P2  x="596" y="346" id="931" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5255" id="1104" >
+<cdparam x="304" y="548" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;impact&gt;&gt;" />
+<TGConnectingPoint num="0" id="1103" />
+<P1  x="596" y="278" id="999" />
+<P2  x="596" y="316" id="928" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5257" id="1106" >
+<cdparam x="706" y="420" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<TGConnectingPoint num="0" id="1105" />
+<P1  x="165" y="375" id="1048" />
+<P2  x="166" y="339" id="959" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5255" id="1108" >
+<cdparam x="306" y="417" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;impact&gt;&gt;" />
+<TGConnectingPoint num="0" id="1107" />
+<P1  x="165" y="272" id="1031" />
+<P2  x="166" y="309" id="956" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5254" id="1110" >
+<cdparam x="739" y="293" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;versioning&gt;&gt;" />
+<TGConnectingPoint num="0" id="1109" />
+<P1  x="304" y="218" id="1013" />
+<P2  x="441" y="218" id="978" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<oldVersion data="1" />
+<newVersion data="2" />
+</extraparam>
+</CONNECTOR>
+
+</AvatarMADPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="Avatar Analysis" nameTab="Analysis_unlossy" >
+<UseCaseDiagramPanel name="Use Case Diagram" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="703" id="1143" >
+<cdparam x="161" y="140" />
+<sizeparam width="74" height="50" minWidth="40" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="actor" value="Network" />
+<TGConnectingPoint num="0" id="1111" />
+<TGConnectingPoint num="1" id="1112" />
+<TGConnectingPoint num="2" id="1113" />
+<TGConnectingPoint num="3" id="1114" />
+<TGConnectingPoint num="4" id="1115" />
+<TGConnectingPoint num="5" id="1116" />
+<TGConnectingPoint num="6" id="1117" />
+<TGConnectingPoint num="7" id="1118" />
+<TGConnectingPoint num="8" id="1119" />
+<TGConnectingPoint num="9" id="1120" />
+<TGConnectingPoint num="10" id="1121" />
+<TGConnectingPoint num="11" id="1122" />
+<TGConnectingPoint num="12" id="1123" />
+<TGConnectingPoint num="13" id="1124" />
+<TGConnectingPoint num="14" id="1125" />
+<TGConnectingPoint num="15" id="1126" />
+<TGConnectingPoint num="16" id="1127" />
+<TGConnectingPoint num="17" id="1128" />
+<TGConnectingPoint num="18" id="1129" />
+<TGConnectingPoint num="19" id="1130" />
+<TGConnectingPoint num="20" id="1131" />
+<TGConnectingPoint num="21" id="1132" />
+<TGConnectingPoint num="22" id="1133" />
+<TGConnectingPoint num="23" id="1134" />
+<TGConnectingPoint num="24" id="1135" />
+<TGConnectingPoint num="25" id="1136" />
+<TGConnectingPoint num="26" id="1137" />
+<TGConnectingPoint num="27" id="1138" />
+<TGConnectingPoint num="28" id="1139" />
+<TGConnectingPoint num="29" id="1140" />
+<TGConnectingPoint num="30" id="1141" />
+<TGConnectingPoint num="31" id="1142" />
+</COMPONENT>
+
+<COMPONENT type="700" id="1176" >
+<cdparam x="332" y="38" />
+<sizeparam width="30" height="70" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="actor" value="Controller" />
+<TGConnectingPoint num="0" id="1144" />
+<TGConnectingPoint num="1" id="1145" />
+<TGConnectingPoint num="2" id="1146" />
+<TGConnectingPoint num="3" id="1147" />
+<TGConnectingPoint num="4" id="1148" />
+<TGConnectingPoint num="5" id="1149" />
+<TGConnectingPoint num="6" id="1150" />
+<TGConnectingPoint num="7" id="1151" />
+<TGConnectingPoint num="8" id="1152" />
+<TGConnectingPoint num="9" id="1153" />
+<TGConnectingPoint num="10" id="1154" />
+<TGConnectingPoint num="11" id="1155" />
+<TGConnectingPoint num="12" id="1156" />
+<TGConnectingPoint num="13" id="1157" />
+<TGConnectingPoint num="14" id="1158" />
+<TGConnectingPoint num="15" id="1159" />
+<TGConnectingPoint num="16" id="1160" />
+<TGConnectingPoint num="17" id="1161" />
+<TGConnectingPoint num="18" id="1162" />
+<TGConnectingPoint num="19" id="1163" />
+<TGConnectingPoint num="20" id="1164" />
+<TGConnectingPoint num="21" id="1165" />
+<TGConnectingPoint num="22" id="1166" />
+<TGConnectingPoint num="23" id="1167" />
+<TGConnectingPoint num="24" id="1168" />
+<TGConnectingPoint num="25" id="1169" />
+<TGConnectingPoint num="26" id="1170" />
+<TGConnectingPoint num="27" id="1171" />
+<TGConnectingPoint num="28" id="1172" />
+<TGConnectingPoint num="29" id="1173" />
+<TGConnectingPoint num="30" id="1174" />
+<TGConnectingPoint num="31" id="1175" />
+</COMPONENT>
+
+<COMPONENT type="701" id="1201" >
+<cdparam x="146" y="53" />
+<sizeparam width="104" height="40" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Use case" value="InitialNotification" />
+<TGConnectingPoint num="0" id="1177" />
+<TGConnectingPoint num="1" id="1178" />
+<TGConnectingPoint num="2" id="1179" />
+<TGConnectingPoint num="3" id="1180" />
+<TGConnectingPoint num="4" id="1181" />
+<TGConnectingPoint num="5" id="1182" />
+<TGConnectingPoint num="6" id="1183" />
+<TGConnectingPoint num="7" id="1184" />
+<TGConnectingPoint num="8" id="1185" />
+<TGConnectingPoint num="9" id="1186" />
+<TGConnectingPoint num="10" id="1187" />
+<TGConnectingPoint num="11" id="1188" />
+<TGConnectingPoint num="12" id="1189" />
+<TGConnectingPoint num="13" id="1190" />
+<TGConnectingPoint num="14" id="1191" />
+<TGConnectingPoint num="15" id="1192" />
+<TGConnectingPoint num="16" id="1193" />
+<TGConnectingPoint num="17" id="1194" />
+<TGConnectingPoint num="18" id="1195" />
+<TGConnectingPoint num="19" id="1196" />
+<TGConnectingPoint num="20" id="1197" />
+<TGConnectingPoint num="21" id="1198" />
+<TGConnectingPoint num="22" id="1199" />
+<TGConnectingPoint num="23" id="1200" />
+<extraparam>
+<info extension="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="700" id="1234" >
+<cdparam x="31" y="38" />
+<sizeparam width="30" height="70" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="actor" value="Pilot" />
+<TGConnectingPoint num="0" id="1202" />
+<TGConnectingPoint num="1" id="1203" />
+<TGConnectingPoint num="2" id="1204" />
+<TGConnectingPoint num="3" id="1205" />
+<TGConnectingPoint num="4" id="1206" />
+<TGConnectingPoint num="5" id="1207" />
+<TGConnectingPoint num="6" id="1208" />
+<TGConnectingPoint num="7" id="1209" />
+<TGConnectingPoint num="8" id="1210" />
+<TGConnectingPoint num="9" id="1211" />
+<TGConnectingPoint num="10" id="1212" />
+<TGConnectingPoint num="11" id="1213" />
+<TGConnectingPoint num="12" id="1214" />
+<TGConnectingPoint num="13" id="1215" />
+<TGConnectingPoint num="14" id="1216" />
+<TGConnectingPoint num="15" id="1217" />
+<TGConnectingPoint num="16" id="1218" />
+<TGConnectingPoint num="17" id="1219" />
+<TGConnectingPoint num="18" id="1220" />
+<TGConnectingPoint num="19" id="1221" />
+<TGConnectingPoint num="20" id="1222" />
+<TGConnectingPoint num="21" id="1223" />
+<TGConnectingPoint num="22" id="1224" />
+<TGConnectingPoint num="23" id="1225" />
+<TGConnectingPoint num="24" id="1226" />
+<TGConnectingPoint num="25" id="1227" />
+<TGConnectingPoint num="26" id="1228" />
+<TGConnectingPoint num="27" id="1229" />
+<TGConnectingPoint num="28" id="1230" />
+<TGConnectingPoint num="29" id="1231" />
+<TGConnectingPoint num="30" id="1232" />
+<TGConnectingPoint num="31" id="1233" />
+</COMPONENT>
+
+<COMPONENT type="702" id="1243" >
+<cdparam x="92" y="21" />
+<sizeparam width="216" height="105" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="border" value="Communication_System" />
+<TGConnectingPoint num="0" id="1235" />
+<TGConnectingPoint num="1" id="1236" />
+<TGConnectingPoint num="2" id="1237" />
+<TGConnectingPoint num="3" id="1238" />
+<TGConnectingPoint num="4" id="1239" />
+<TGConnectingPoint num="5" id="1240" />
+<TGConnectingPoint num="6" id="1241" />
+<TGConnectingPoint num="7" id="1242" />
+</COMPONENT>
+
+<CONNECTOR type="110" id="1244" >
+<cdparam x="207" y="162" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="198" y="140" id="1116" />
+<P2  x="198" y="93" id="1180" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="110" id="1245" >
+<cdparam x="247" y="66" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Use case to actor" value="null" />
+<P1  x="250" y="73" id="1179" />
+<P2  x="332" y="73" id="1146" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="110" id="1246" >
+<cdparam x="10" y="10" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from actor to Use case" value="null" />
+<P1  x="61" y="73" id="1211" />
+<P2  x="146" y="73" id="1178" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</UseCaseDiagramPanel>
+
+<SequenceDiagramPanel name="Nominal_Service" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="606" id="1272" >
+<cdparam x="513" y="64" />
+<sizeparam width="10" height="265" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Controller" value="AirTrafficController" />
+<TGConnectingPoint num="0" id="1247" />
+<TGConnectingPoint num="1" id="1248" />
+<TGConnectingPoint num="2" id="1249" />
+<TGConnectingPoint num="3" id="1250" />
+<TGConnectingPoint num="4" id="1251" />
+<TGConnectingPoint num="5" id="1252" />
+<TGConnectingPoint num="6" id="1253" />
+<TGConnectingPoint num="7" id="1254" />
+<TGConnectingPoint num="8" id="1255" />
+<TGConnectingPoint num="9" id="1256" />
+<TGConnectingPoint num="10" id="1257" />
+<TGConnectingPoint num="11" id="1258" />
+<TGConnectingPoint num="12" id="1259" />
+<TGConnectingPoint num="13" id="1260" />
+<TGConnectingPoint num="14" id="1261" />
+<TGConnectingPoint num="15" id="1262" />
+<TGConnectingPoint num="16" id="1263" />
+<TGConnectingPoint num="17" id="1264" />
+<TGConnectingPoint num="18" id="1265" />
+<TGConnectingPoint num="19" id="1266" />
+<TGConnectingPoint num="20" id="1267" />
+<TGConnectingPoint num="21" id="1268" />
+<TGConnectingPoint num="22" id="1269" />
+<TGConnectingPoint num="23" id="1270" />
+<TGConnectingPoint num="24" id="1271" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1299" >
+<cdparam x="280" y="64" />
+<sizeparam width="10" height="273" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CommunicationSystem" value="FANS_Pilot_ATC_Communication_System" />
+<TGConnectingPoint num="0" id="1273" />
+<TGConnectingPoint num="1" id="1274" />
+<TGConnectingPoint num="2" id="1275" />
+<TGConnectingPoint num="3" id="1276" />
+<TGConnectingPoint num="4" id="1277" />
+<TGConnectingPoint num="5" id="1278" />
+<TGConnectingPoint num="6" id="1279" />
+<TGConnectingPoint num="7" id="1280" />
+<TGConnectingPoint num="8" id="1281" />
+<TGConnectingPoint num="9" id="1282" />
+<TGConnectingPoint num="10" id="1283" />
+<TGConnectingPoint num="11" id="1284" />
+<TGConnectingPoint num="12" id="1285" />
+<TGConnectingPoint num="13" id="1286" />
+<TGConnectingPoint num="14" id="1287" />
+<TGConnectingPoint num="15" id="1288" />
+<TGConnectingPoint num="16" id="1289" />
+<TGConnectingPoint num="17" id="1290" />
+<TGConnectingPoint num="18" id="1291" />
+<TGConnectingPoint num="19" id="1292" />
+<TGConnectingPoint num="20" id="1293" />
+<TGConnectingPoint num="21" id="1294" />
+<TGConnectingPoint num="22" id="1295" />
+<TGConnectingPoint num="23" id="1296" />
+<TGConnectingPoint num="24" id="1297" />
+<TGConnectingPoint num="25" id="1298" />
+<extraparam>
+<Actor data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1325" >
+<cdparam x="60" y="64" />
+<sizeparam width="10" height="265" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Pilot" value="Pilot" />
+<TGConnectingPoint num="0" id="1300" />
+<TGConnectingPoint num="1" id="1301" />
+<TGConnectingPoint num="2" id="1302" />
+<TGConnectingPoint num="3" id="1303" />
+<TGConnectingPoint num="4" id="1304" />
+<TGConnectingPoint num="5" id="1305" />
+<TGConnectingPoint num="6" id="1306" />
+<TGConnectingPoint num="7" id="1307" />
+<TGConnectingPoint num="8" id="1308" />
+<TGConnectingPoint num="9" id="1309" />
+<TGConnectingPoint num="10" id="1310" />
+<TGConnectingPoint num="11" id="1311" />
+<TGConnectingPoint num="12" id="1312" />
+<TGConnectingPoint num="13" id="1313" />
+<TGConnectingPoint num="14" id="1314" />
+<TGConnectingPoint num="15" id="1315" />
+<TGConnectingPoint num="16" id="1316" />
+<TGConnectingPoint num="17" id="1317" />
+<TGConnectingPoint num="18" id="1318" />
+<TGConnectingPoint num="19" id="1319" />
+<TGConnectingPoint num="20" id="1320" />
+<TGConnectingPoint num="21" id="1321" />
+<TGConnectingPoint num="22" id="1322" />
+<TGConnectingPoint num="23" id="1323" />
+<TGConnectingPoint num="24" id="1324" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="107" id="1326" >
+<cdparam x="235" y="184" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconconf" />
+<P1  x="285" y="184" id="1284" />
+<P2  x="65" y="184" id="1311" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="1327" >
+<cdparam x="385" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconresp" />
+<P1  x="518" y="154" id="1255" />
+<P2  x="285" y="154" id="1281" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="1328" >
+<cdparam x="235" y="124" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconind" />
+<P1  x="285" y="124" id="1278" />
+<P2  x="518" y="124" id="1252" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="1329" >
+<cdparam x="85" y="104" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconreq" />
+<P1  x="65" y="104" id="1303" />
+<P2  x="285" y="104" id="1276" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</SequenceDiagramPanel>
+
+<SequenceDiagramPanel name="Nominal_Protocol" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="301" id="1346" >
+<cdparam x="135" y="360" />
+<sizeparam width="596" height="63" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="
+ Black arrows: the protocol layer communicates by rendezvous with its upper layer.
+ 
+ Basic arrows: the protocol layer communicates via FIFO queues with the network service it relies on.
+    
+" />
+<TGConnectingPoint num="0" id="1330" />
+<TGConnectingPoint num="1" id="1331" />
+<TGConnectingPoint num="2" id="1332" />
+<TGConnectingPoint num="3" id="1333" />
+<TGConnectingPoint num="4" id="1334" />
+<TGConnectingPoint num="5" id="1335" />
+<TGConnectingPoint num="6" id="1336" />
+<TGConnectingPoint num="7" id="1337" />
+<TGConnectingPoint num="8" id="1338" />
+<TGConnectingPoint num="9" id="1339" />
+<TGConnectingPoint num="10" id="1340" />
+<TGConnectingPoint num="11" id="1341" />
+<TGConnectingPoint num="12" id="1342" />
+<TGConnectingPoint num="13" id="1343" />
+<TGConnectingPoint num="14" id="1344" />
+<TGConnectingPoint num="15" id="1345" />
+<extraparam>
+<Line value="" />
+<Line value=" Black arrows: the protocol layer communicates by rendezvous with its upper layer." />
+<Line value=" " />
+<Line value=" Basic arrows: the protocol layer communicates via FIFO queues with the network service it relies on." />
+<Line value="    " />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1371" >
+<cdparam x="502" y="78" />
+<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="GroundCommunication" value="GroundCommunication" />
+<TGConnectingPoint num="0" id="1347" />
+<TGConnectingPoint num="1" id="1348" />
+<TGConnectingPoint num="2" id="1349" />
+<TGConnectingPoint num="3" id="1350" />
+<TGConnectingPoint num="4" id="1351" />
+<TGConnectingPoint num="5" id="1352" />
+<TGConnectingPoint num="6" id="1353" />
+<TGConnectingPoint num="7" id="1354" />
+<TGConnectingPoint num="8" id="1355" />
+<TGConnectingPoint num="9" id="1356" />
+<TGConnectingPoint num="10" id="1357" />
+<TGConnectingPoint num="11" id="1358" />
+<TGConnectingPoint num="12" id="1359" />
+<TGConnectingPoint num="13" id="1360" />
+<TGConnectingPoint num="14" id="1361" />
+<TGConnectingPoint num="15" id="1362" />
+<TGConnectingPoint num="16" id="1363" />
+<TGConnectingPoint num="17" id="1364" />
+<TGConnectingPoint num="18" id="1365" />
+<TGConnectingPoint num="19" id="1366" />
+<TGConnectingPoint num="20" id="1367" />
+<TGConnectingPoint num="21" id="1368" />
+<TGConnectingPoint num="22" id="1369" />
+<TGConnectingPoint num="23" id="1370" />
+<extraparam>
+<Actor data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1396" >
+<cdparam x="343" y="78" />
+<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Network" value="Network" />
+<TGConnectingPoint num="0" id="1372" />
+<TGConnectingPoint num="1" id="1373" />
+<TGConnectingPoint num="2" id="1374" />
+<TGConnectingPoint num="3" id="1375" />
+<TGConnectingPoint num="4" id="1376" />
+<TGConnectingPoint num="5" id="1377" />
+<TGConnectingPoint num="6" id="1378" />
+<TGConnectingPoint num="7" id="1379" />
+<TGConnectingPoint num="8" id="1380" />
+<TGConnectingPoint num="9" id="1381" />
+<TGConnectingPoint num="10" id="1382" />
+<TGConnectingPoint num="11" id="1383" />
+<TGConnectingPoint num="12" id="1384" />
+<TGConnectingPoint num="13" id="1385" />
+<TGConnectingPoint num="14" id="1386" />
+<TGConnectingPoint num="15" id="1387" />
+<TGConnectingPoint num="16" id="1388" />
+<TGConnectingPoint num="17" id="1389" />
+<TGConnectingPoint num="18" id="1390" />
+<TGConnectingPoint num="19" id="1391" />
+<TGConnectingPoint num="20" id="1392" />
+<TGConnectingPoint num="21" id="1393" />
+<TGConnectingPoint num="22" id="1394" />
+<TGConnectingPoint num="23" id="1395" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1421" >
+<cdparam x="199" y="78" />
+<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="OnboardCommunication" value="OnboardCommunication" />
+<TGConnectingPoint num="0" id="1397" />
+<TGConnectingPoint num="1" id="1398" />
+<TGConnectingPoint num="2" id="1399" />
+<TGConnectingPoint num="3" id="1400" />
+<TGConnectingPoint num="4" id="1401" />
+<TGConnectingPoint num="5" id="1402" />
+<TGConnectingPoint num="6" id="1403" />
+<TGConnectingPoint num="7" id="1404" />
+<TGConnectingPoint num="8" id="1405" />
+<TGConnectingPoint num="9" id="1406" />
+<TGConnectingPoint num="10" id="1407" />
+<TGConnectingPoint num="11" id="1408" />
+<TGConnectingPoint num="12" id="1409" />
+<TGConnectingPoint num="13" id="1410" />
+<TGConnectingPoint num="14" id="1411" />
+<TGConnectingPoint num="15" id="1412" />
+<TGConnectingPoint num="16" id="1413" />
+<TGConnectingPoint num="17" id="1414" />
+<TGConnectingPoint num="18" id="1415" />
+<TGConnectingPoint num="19" id="1416" />
+<TGConnectingPoint num="20" id="1417" />
+<TGConnectingPoint num="21" id="1418" />
+<TGConnectingPoint num="22" id="1419" />
+<TGConnectingPoint num="23" id="1420" />
+<extraparam>
+<Actor data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1446" >
+<cdparam x="680" y="78" />
+<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Controller" value="AirTrafficController" />
+<TGConnectingPoint num="0" id="1422" />
+<TGConnectingPoint num="1" id="1423" />
+<TGConnectingPoint num="2" id="1424" />
+<TGConnectingPoint num="3" id="1425" />
+<TGConnectingPoint num="4" id="1426" />
+<TGConnectingPoint num="5" id="1427" />
+<TGConnectingPoint num="6" id="1428" />
+<TGConnectingPoint num="7" id="1429" />
+<TGConnectingPoint num="8" id="1430" />
+<TGConnectingPoint num="9" id="1431" />
+<TGConnectingPoint num="10" id="1432" />
+<TGConnectingPoint num="11" id="1433" />
+<TGConnectingPoint num="12" id="1434" />
+<TGConnectingPoint num="13" id="1435" />
+<TGConnectingPoint num="14" id="1436" />
+<TGConnectingPoint num="15" id="1437" />
+<TGConnectingPoint num="16" id="1438" />
+<TGConnectingPoint num="17" id="1439" />
+<TGConnectingPoint num="18" id="1440" />
+<TGConnectingPoint num="19" id="1441" />
+<TGConnectingPoint num="20" id="1442" />
+<TGConnectingPoint num="21" id="1443" />
+<TGConnectingPoint num="22" id="1444" />
+<TGConnectingPoint num="23" id="1445" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1471" >
+<cdparam x="36" y="78" />
+<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Pilot" value="Pilot" />
+<TGConnectingPoint num="0" id="1447" />
+<TGConnectingPoint num="1" id="1448" />
+<TGConnectingPoint num="2" id="1449" />
+<TGConnectingPoint num="3" id="1450" />
+<TGConnectingPoint num="4" id="1451" />
+<TGConnectingPoint num="5" id="1452" />
+<TGConnectingPoint num="6" id="1453" />
+<TGConnectingPoint num="7" id="1454" />
+<TGConnectingPoint num="8" id="1455" />
+<TGConnectingPoint num="9" id="1456" />
+<TGConnectingPoint num="10" id="1457" />
+<TGConnectingPoint num="11" id="1458" />
+<TGConnectingPoint num="12" id="1459" />
+<TGConnectingPoint num="13" id="1460" />
+<TGConnectingPoint num="14" id="1461" />
+<TGConnectingPoint num="15" id="1462" />
+<TGConnectingPoint num="16" id="1463" />
+<TGConnectingPoint num="17" id="1464" />
+<TGConnectingPoint num="18" id="1465" />
+<TGConnectingPoint num="19" id="1466" />
+<TGConnectingPoint num="20" id="1467" />
+<TGConnectingPoint num="21" id="1468" />
+<TGConnectingPoint num="22" id="1469" />
+<TGConnectingPoint num="23" id="1470" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="106" id="1472" >
+<cdparam x="348" y="258" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CC" />
+<P1  x="348" y="258" id="1389" />
+<P2  x="204" y="258" id="1414" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="1473" >
+<cdparam x="507" y="228" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CC" />
+<P1  x="507" y="228" id="1361" />
+<P2  x="348" y="228" id="1386" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="1474" >
+<cdparam x="348" y="148" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="348" y="148" id="1378" />
+<P2  x="507" y="148" id="1353" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="1475" >
+<cdparam x="204" y="128" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="204" y="128" id="1401" />
+<P2  x="348" y="128" id="1376" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="1476" >
+<cdparam x="12" y="115" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="conreq" />
+<P1  x="41" y="108" id="1449" />
+<P2  x="204" y="108" id="1399" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="1477" >
+<cdparam x="202" y="280" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="conconf" />
+<P1  x="204" y="278" id="1416" />
+<P2  x="41" y="278" id="1466" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="1478" >
+<cdparam x="685" y="199" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="conresp" />
+<P1  x="685" y="198" id="1433" />
+<P2  x="507" y="198" id="1358" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="1479" >
+<cdparam x="507" y="169" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="conind" />
+<P1  x="507" y="168" id="1355" />
+<P2  x="685" y="168" id="1430" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</SequenceDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="Avatar Analysis" nameTab="Analysis_lossy" >
+<UseCaseDiagramPanel name="Use Case Diagram" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="703" id="1512" >
+<cdparam x="171" y="157" />
+<sizeparam width="74" height="50" minWidth="40" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="actor" value="Network" />
+<TGConnectingPoint num="0" id="1480" />
+<TGConnectingPoint num="1" id="1481" />
+<TGConnectingPoint num="2" id="1482" />
+<TGConnectingPoint num="3" id="1483" />
+<TGConnectingPoint num="4" id="1484" />
+<TGConnectingPoint num="5" id="1485" />
+<TGConnectingPoint num="6" id="1486" />
+<TGConnectingPoint num="7" id="1487" />
+<TGConnectingPoint num="8" id="1488" />
+<TGConnectingPoint num="9" id="1489" />
+<TGConnectingPoint num="10" id="1490" />
+<TGConnectingPoint num="11" id="1491" />
+<TGConnectingPoint num="12" id="1492" />
+<TGConnectingPoint num="13" id="1493" />
+<TGConnectingPoint num="14" id="1494" />
+<TGConnectingPoint num="15" id="1495" />
+<TGConnectingPoint num="16" id="1496" />
+<TGConnectingPoint num="17" id="1497" />
+<TGConnectingPoint num="18" id="1498" />
+<TGConnectingPoint num="19" id="1499" />
+<TGConnectingPoint num="20" id="1500" />
+<TGConnectingPoint num="21" id="1501" />
+<TGConnectingPoint num="22" id="1502" />
+<TGConnectingPoint num="23" id="1503" />
+<TGConnectingPoint num="24" id="1504" />
+<TGConnectingPoint num="25" id="1505" />
+<TGConnectingPoint num="26" id="1506" />
+<TGConnectingPoint num="27" id="1507" />
+<TGConnectingPoint num="28" id="1508" />
+<TGConnectingPoint num="29" id="1509" />
+<TGConnectingPoint num="30" id="1510" />
+<TGConnectingPoint num="31" id="1511" />
+</COMPONENT>
+
+<COMPONENT type="700" id="1545" >
+<cdparam x="342" y="55" />
+<sizeparam width="30" height="70" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="actor" value="Controller" />
+<TGConnectingPoint num="0" id="1513" />
+<TGConnectingPoint num="1" id="1514" />
+<TGConnectingPoint num="2" id="1515" />
+<TGConnectingPoint num="3" id="1516" />
+<TGConnectingPoint num="4" id="1517" />
+<TGConnectingPoint num="5" id="1518" />
+<TGConnectingPoint num="6" id="1519" />
+<TGConnectingPoint num="7" id="1520" />
+<TGConnectingPoint num="8" id="1521" />
+<TGConnectingPoint num="9" id="1522" />
+<TGConnectingPoint num="10" id="1523" />
+<TGConnectingPoint num="11" id="1524" />
+<TGConnectingPoint num="12" id="1525" />
+<TGConnectingPoint num="13" id="1526" />
+<TGConnectingPoint num="14" id="1527" />
+<TGConnectingPoint num="15" id="1528" />
+<TGConnectingPoint num="16" id="1529" />
+<TGConnectingPoint num="17" id="1530" />
+<TGConnectingPoint num="18" id="1531" />
+<TGConnectingPoint num="19" id="1532" />
+<TGConnectingPoint num="20" id="1533" />
+<TGConnectingPoint num="21" id="1534" />
+<TGConnectingPoint num="22" id="1535" />
+<TGConnectingPoint num="23" id="1536" />
+<TGConnectingPoint num="24" id="1537" />
+<TGConnectingPoint num="25" id="1538" />
+<TGConnectingPoint num="26" id="1539" />
+<TGConnectingPoint num="27" id="1540" />
+<TGConnectingPoint num="28" id="1541" />
+<TGConnectingPoint num="29" id="1542" />
+<TGConnectingPoint num="30" id="1543" />
+<TGConnectingPoint num="31" id="1544" />
+</COMPONENT>
+
+<COMPONENT type="701" id="1570" >
+<cdparam x="156" y="70" />
+<sizeparam width="104" height="40" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Use case" value="InitialNotification" />
+<TGConnectingPoint num="0" id="1546" />
+<TGConnectingPoint num="1" id="1547" />
+<TGConnectingPoint num="2" id="1548" />
+<TGConnectingPoint num="3" id="1549" />
+<TGConnectingPoint num="4" id="1550" />
+<TGConnectingPoint num="5" id="1551" />
+<TGConnectingPoint num="6" id="1552" />
+<TGConnectingPoint num="7" id="1553" />
+<TGConnectingPoint num="8" id="1554" />
+<TGConnectingPoint num="9" id="1555" />
+<TGConnectingPoint num="10" id="1556" />
+<TGConnectingPoint num="11" id="1557" />
+<TGConnectingPoint num="12" id="1558" />
+<TGConnectingPoint num="13" id="1559" />
+<TGConnectingPoint num="14" id="1560" />
+<TGConnectingPoint num="15" id="1561" />
+<TGConnectingPoint num="16" id="1562" />
+<TGConnectingPoint num="17" id="1563" />
+<TGConnectingPoint num="18" id="1564" />
+<TGConnectingPoint num="19" id="1565" />
+<TGConnectingPoint num="20" id="1566" />
+<TGConnectingPoint num="21" id="1567" />
+<TGConnectingPoint num="22" id="1568" />
+<TGConnectingPoint num="23" id="1569" />
+<extraparam>
+<info extension="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="700" id="1603" >
+<cdparam x="41" y="55" />
+<sizeparam width="30" height="70" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="actor" value="Pilot" />
+<TGConnectingPoint num="0" id="1571" />
+<TGConnectingPoint num="1" id="1572" />
+<TGConnectingPoint num="2" id="1573" />
+<TGConnectingPoint num="3" id="1574" />
+<TGConnectingPoint num="4" id="1575" />
+<TGConnectingPoint num="5" id="1576" />
+<TGConnectingPoint num="6" id="1577" />
+<TGConnectingPoint num="7" id="1578" />
+<TGConnectingPoint num="8" id="1579" />
+<TGConnectingPoint num="9" id="1580" />
+<TGConnectingPoint num="10" id="1581" />
+<TGConnectingPoint num="11" id="1582" />
+<TGConnectingPoint num="12" id="1583" />
+<TGConnectingPoint num="13" id="1584" />
+<TGConnectingPoint num="14" id="1585" />
+<TGConnectingPoint num="15" id="1586" />
+<TGConnectingPoint num="16" id="1587" />
+<TGConnectingPoint num="17" id="1588" />
+<TGConnectingPoint num="18" id="1589" />
+<TGConnectingPoint num="19" id="1590" />
+<TGConnectingPoint num="20" id="1591" />
+<TGConnectingPoint num="21" id="1592" />
+<TGConnectingPoint num="22" id="1593" />
+<TGConnectingPoint num="23" id="1594" />
+<TGConnectingPoint num="24" id="1595" />
+<TGConnectingPoint num="25" id="1596" />
+<TGConnectingPoint num="26" id="1597" />
+<TGConnectingPoint num="27" id="1598" />
+<TGConnectingPoint num="28" id="1599" />
+<TGConnectingPoint num="29" id="1600" />
+<TGConnectingPoint num="30" id="1601" />
+<TGConnectingPoint num="31" id="1602" />
+</COMPONENT>
+
+<COMPONENT type="702" id="1612" >
+<cdparam x="102" y="38" />
+<sizeparam width="216" height="105" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="border" value="Communication_System" />
+<TGConnectingPoint num="0" id="1604" />
+<TGConnectingPoint num="1" id="1605" />
+<TGConnectingPoint num="2" id="1606" />
+<TGConnectingPoint num="3" id="1607" />
+<TGConnectingPoint num="4" id="1608" />
+<TGConnectingPoint num="5" id="1609" />
+<TGConnectingPoint num="6" id="1610" />
+<TGConnectingPoint num="7" id="1611" />
+</COMPONENT>
+
+<CONNECTOR type="110" id="1613" >
+<cdparam x="217" y="179" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="208" y="157" id="1485" />
+<P2  x="208" y="110" id="1549" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="110" id="1614" >
+<cdparam x="257" y="83" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Use case to actor" value="null" />
+<P1  x="260" y="90" id="1548" />
+<P2  x="342" y="90" id="1515" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="110" id="1615" >
+<cdparam x="32" y="20" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from actor to Use case" value="null" />
+<P1  x="71" y="90" id="1580" />
+<P2  x="156" y="90" id="1547" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</UseCaseDiagramPanel>
+
+<SequenceDiagramPanel name="error_service" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="301" id="1632" >
+<cdparam x="231" y="215" />
+<sizeparam width="43" height="15" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="UML Note" value="Lost
+" />
+<TGConnectingPoint num="0" id="1616" />
+<TGConnectingPoint num="1" id="1617" />
+<TGConnectingPoint num="2" id="1618" />
+<TGConnectingPoint num="3" id="1619" />
+<TGConnectingPoint num="4" id="1620" />
+<TGConnectingPoint num="5" id="1621" />
+<TGConnectingPoint num="6" id="1622" />
+<TGConnectingPoint num="7" id="1623" />
+<TGConnectingPoint num="8" id="1624" />
+<TGConnectingPoint num="9" id="1625" />
+<TGConnectingPoint num="10" id="1626" />
+<TGConnectingPoint num="11" id="1627" />
+<TGConnectingPoint num="12" id="1628" />
+<TGConnectingPoint num="13" id="1629" />
+<TGConnectingPoint num="14" id="1630" />
+<TGConnectingPoint num="15" id="1631" />
+<extraparam>
+<Line value="Lost" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="601" id="1642" >
+<cdparam x="208" y="261" />
+<sizeparam width="40" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Line of relative time constraint" value="rtc" />
+<TGConnectingPoint num="0" id="1633" />
+<TGConnectingPoint num="1" id="1634" />
+<TGConnectingPoint num="2" id="1635" />
+<TGConnectingPoint num="3" id="1636" />
+<TGConnectingPoint num="4" id="1637" />
+<TGConnectingPoint num="5" id="1638" />
+<TGConnectingPoint num="6" id="1639" />
+<TGConnectingPoint num="7" id="1640" />
+<TGConnectingPoint num="8" id="1641" />
+</COMPONENT>
+
+<COMPONENT type="601" id="1652" >
+<cdparam x="208" y="132" />
+<sizeparam width="40" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Line of relative time constraint" value="rtc" />
+<TGConnectingPoint num="0" id="1643" />
+<TGConnectingPoint num="1" id="1644" />
+<TGConnectingPoint num="2" id="1645" />
+<TGConnectingPoint num="3" id="1646" />
+<TGConnectingPoint num="4" id="1647" />
+<TGConnectingPoint num="5" id="1648" />
+<TGConnectingPoint num="6" id="1649" />
+<TGConnectingPoint num="7" id="1650" />
+<TGConnectingPoint num="8" id="1651" />
+</COMPONENT>
+
+<COMPONENT type="606" id="1678" >
+<cdparam x="404" y="72" />
+<sizeparam width="10" height="265" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Controller" value="AirTrafficController" />
+<TGConnectingPoint num="0" id="1653" />
+<TGConnectingPoint num="1" id="1654" />
+<TGConnectingPoint num="2" id="1655" />
+<TGConnectingPoint num="3" id="1656" />
+<TGConnectingPoint num="4" id="1657" />
+<TGConnectingPoint num="5" id="1658" />
+<TGConnectingPoint num="6" id="1659" />
+<TGConnectingPoint num="7" id="1660" />
+<TGConnectingPoint num="8" id="1661" />
+<TGConnectingPoint num="9" id="1662" />
+<TGConnectingPoint num="10" id="1663" />
+<TGConnectingPoint num="11" id="1664" />
+<TGConnectingPoint num="12" id="1665" />
+<TGConnectingPoint num="13" id="1666" />
+<TGConnectingPoint num="14" id="1667" />
+<TGConnectingPoint num="15" id="1668" />
+<TGConnectingPoint num="16" id="1669" />
+<TGConnectingPoint num="17" id="1670" />
+<TGConnectingPoint num="18" id="1671" />
+<TGConnectingPoint num="19" id="1672" />
+<TGConnectingPoint num="20" id="1673" />
+<TGConnectingPoint num="21" id="1674" />
+<TGConnectingPoint num="22" id="1675" />
+<TGConnectingPoint num="23" id="1676" />
+<TGConnectingPoint num="24" id="1677" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1705" >
+<cdparam x="231" y="72" />
+<sizeparam width="10" height="273" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="CommunicationSystem" value="FANS_Pilot_ATC_Communication_System" />
+<TGConnectingPoint num="0" id="1679" />
+<TGConnectingPoint num="1" id="1680" />
+<TGConnectingPoint num="2" id="1681" />
+<TGConnectingPoint num="3" id="1682" />
+<TGConnectingPoint num="4" id="1683" />
+<TGConnectingPoint num="5" id="1684" />
+<TGConnectingPoint num="6" id="1685" />
+<TGConnectingPoint num="7" id="1686" />
+<TGConnectingPoint num="8" id="1687" />
+<TGConnectingPoint num="9" id="1688" />
+<TGConnectingPoint num="10" id="1689" />
+<TGConnectingPoint num="11" id="1690" />
+<TGConnectingPoint num="12" id="1691" />
+<TGConnectingPoint num="13" id="1692" />
+<TGConnectingPoint num="14" id="1693" />
+<TGConnectingPoint num="15" id="1694" />
+<TGConnectingPoint num="16" id="1695" />
+<TGConnectingPoint num="17" id="1696" />
+<TGConnectingPoint num="18" id="1697" />
+<TGConnectingPoint num="19" id="1698" />
+<TGConnectingPoint num="20" id="1699" />
+<TGConnectingPoint num="21" id="1700" />
+<TGConnectingPoint num="22" id="1701" />
+<TGConnectingPoint num="23" id="1702" />
+<TGConnectingPoint num="24" id="1703" />
+<TGConnectingPoint num="25" id="1704" />
+<extraparam>
+<Actor data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1731" >
+<cdparam x="45" y="72" />
+<sizeparam width="10" height="265" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Pilot" value="Pilot" />
+<TGConnectingPoint num="0" id="1706" />
+<TGConnectingPoint num="1" id="1707" />
+<TGConnectingPoint num="2" id="1708" />
+<TGConnectingPoint num="3" id="1709" />
+<TGConnectingPoint num="4" id="1710" />
+<TGConnectingPoint num="5" id="1711" />
+<TGConnectingPoint num="6" id="1712" />
+<TGConnectingPoint num="7" id="1713" />
+<TGConnectingPoint num="8" id="1714" />
+<TGConnectingPoint num="9" id="1715" />
+<TGConnectingPoint num="10" id="1716" />
+<TGConnectingPoint num="11" id="1717" />
+<TGConnectingPoint num="12" id="1718" />
+<TGConnectingPoint num="13" id="1719" />
+<TGConnectingPoint num="14" id="1720" />
+<TGConnectingPoint num="15" id="1721" />
+<TGConnectingPoint num="16" id="1722" />
+<TGConnectingPoint num="17" id="1723" />
+<TGConnectingPoint num="18" id="1724" />
+<TGConnectingPoint num="19" id="1725" />
+<TGConnectingPoint num="20" id="1726" />
+<TGConnectingPoint num="21" id="1727" />
+<TGConnectingPoint num="22" id="1728" />
+<TGConnectingPoint num="23" id="1729" />
+<TGConnectingPoint num="24" id="1730" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="107" id="1732" >
+<cdparam x="409" y="182" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconresp" />
+<P1  x="409" y="182" id="1663" />
+<P2  x="236" y="182" id="1689" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="109" id="1733" >
+<cdparam x="218" y="132" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="relative time constraint" value="{ATST1..ATST1}" />
+<P1  x="218" y="132" id="1643" />
+<P2  x="218" y="261" id="1633" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Interval minConstraint="ATST1" maxConstraint="ATST1" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="107" id="1734" >
+<cdparam x="236" y="261" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INerror" />
+<P1  x="236" y="262" id="1697" />
+<P2  x="50" y="262" id="1724" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="1735" >
+<cdparam x="220" y="132" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconind" />
+<P1  x="236" y="132" id="1684" />
+<P2  x="409" y="132" id="1658" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="1736" >
+<cdparam x="70" y="112" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconreq" />
+<P1  x="50" y="112" id="1709" />
+<P2  x="236" y="112" id="1682" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</SequenceDiagramPanel>
+
+<SequenceDiagramPanel name="lost_and_sucessful_retransmissions" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="605" id="1745" >
+<cdparam x="219" y="274" />
+<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="timer expiration" value="{timer=ATST1}" />
+<TGConnectingPoint num="0" id="1737" />
+<TGConnectingPoint num="1" id="1738" />
+<TGConnectingPoint num="2" id="1739" />
+<TGConnectingPoint num="3" id="1740" />
+<TGConnectingPoint num="4" id="1741" />
+<TGConnectingPoint num="5" id="1742" />
+<TGConnectingPoint num="6" id="1743" />
+<TGConnectingPoint num="7" id="1744" />
+<extraparam>
+<Interval timer="ATST1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="603" id="1754" >
+<cdparam x="221" y="151" />
+<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="setting timer" value="{timer=ATST1, duration=10}" />
+<TGConnectingPoint num="0" id="1746" />
+<TGConnectingPoint num="1" id="1747" />
+<TGConnectingPoint num="2" id="1748" />
+<TGConnectingPoint num="3" id="1749" />
+<TGConnectingPoint num="4" id="1750" />
+<TGConnectingPoint num="5" id="1751" />
+<TGConnectingPoint num="6" id="1752" />
+<TGConnectingPoint num="7" id="1753" />
+<extraparam>
+<Interval timer="ATST1" duration="10" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1804" >
+<cdparam x="620" y="86" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="330" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="GroundCommunication" value="GroundCommunication" />
+<TGConnectingPoint num="0" id="1755" />
+<TGConnectingPoint num="1" id="1756" />
+<TGConnectingPoint num="2" id="1757" />
+<TGConnectingPoint num="3" id="1758" />
+<TGConnectingPoint num="4" id="1759" />
+<TGConnectingPoint num="5" id="1760" />
+<TGConnectingPoint num="6" id="1761" />
+<TGConnectingPoint num="7" id="1762" />
+<TGConnectingPoint num="8" id="1763" />
+<TGConnectingPoint num="9" id="1764" />
+<TGConnectingPoint num="10" id="1765" />
+<TGConnectingPoint num="11" id="1766" />
+<TGConnectingPoint num="12" id="1767" />
+<TGConnectingPoint num="13" id="1768" />
+<TGConnectingPoint num="14" id="1769" />
+<TGConnectingPoint num="15" id="1770" />
+<TGConnectingPoint num="16" id="1771" />
+<TGConnectingPoint num="17" id="1772" />
+<TGConnectingPoint num="18" id="1773" />
+<TGConnectingPoint num="19" id="1774" />
+<TGConnectingPoint num="20" id="1775" />
+<TGConnectingPoint num="21" id="1776" />
+<TGConnectingPoint num="22" id="1777" />
+<TGConnectingPoint num="23" id="1778" />
+<TGConnectingPoint num="24" id="1779" />
+<TGConnectingPoint num="25" id="1780" />
+<TGConnectingPoint num="26" id="1781" />
+<TGConnectingPoint num="27" id="1782" />
+<TGConnectingPoint num="28" id="1783" />
+<TGConnectingPoint num="29" id="1784" />
+<TGConnectingPoint num="30" id="1785" />
+<TGConnectingPoint num="31" id="1786" />
+<TGConnectingPoint num="32" id="1787" />
+<TGConnectingPoint num="33" id="1788" />
+<TGConnectingPoint num="34" id="1789" />
+<TGConnectingPoint num="35" id="1790" />
+<TGConnectingPoint num="36" id="1791" />
+<TGConnectingPoint num="37" id="1792" />
+<TGConnectingPoint num="38" id="1793" />
+<TGConnectingPoint num="39" id="1794" />
+<TGConnectingPoint num="40" id="1795" />
+<TGConnectingPoint num="41" id="1796" />
+<TGConnectingPoint num="42" id="1797" />
+<TGConnectingPoint num="43" id="1798" />
+<TGConnectingPoint num="44" id="1799" />
+<TGConnectingPoint num="45" id="1800" />
+<TGConnectingPoint num="46" id="1801" />
+<TGConnectingPoint num="47" id="1802" />
+<TGConnectingPoint num="48" id="1803" />
+<extraparam>
+<Actor data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1854" >
+<cdparam x="473" y="86" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Network" value="Network" />
+<TGConnectingPoint num="0" id="1805" />
+<TGConnectingPoint num="1" id="1806" />
+<TGConnectingPoint num="2" id="1807" />
+<TGConnectingPoint num="3" id="1808" />
+<TGConnectingPoint num="4" id="1809" />
+<TGConnectingPoint num="5" id="1810" />
+<TGConnectingPoint num="6" id="1811" />
+<TGConnectingPoint num="7" id="1812" />
+<TGConnectingPoint num="8" id="1813" />
+<TGConnectingPoint num="9" id="1814" />
+<TGConnectingPoint num="10" id="1815" />
+<TGConnectingPoint num="11" id="1816" />
+<TGConnectingPoint num="12" id="1817" />
+<TGConnectingPoint num="13" id="1818" />
+<TGConnectingPoint num="14" id="1819" />
+<TGConnectingPoint num="15" id="1820" />
+<TGConnectingPoint num="16" id="1821" />
+<TGConnectingPoint num="17" id="1822" />
+<TGConnectingPoint num="18" id="1823" />
+<TGConnectingPoint num="19" id="1824" />
+<TGConnectingPoint num="20" id="1825" />
+<TGConnectingPoint num="21" id="1826" />
+<TGConnectingPoint num="22" id="1827" />
+<TGConnectingPoint num="23" id="1828" />
+<TGConnectingPoint num="24" id="1829" />
+<TGConnectingPoint num="25" id="1830" />
+<TGConnectingPoint num="26" id="1831" />
+<TGConnectingPoint num="27" id="1832" />
+<TGConnectingPoint num="28" id="1833" />
+<TGConnectingPoint num="29" id="1834" />
+<TGConnectingPoint num="30" id="1835" />
+<TGConnectingPoint num="31" id="1836" />
+<TGConnectingPoint num="32" id="1837" />
+<TGConnectingPoint num="33" id="1838" />
+<TGConnectingPoint num="34" id="1839" />
+<TGConnectingPoint num="35" id="1840" />
+<TGConnectingPoint num="36" id="1841" />
+<TGConnectingPoint num="37" id="1842" />
+<TGConnectingPoint num="38" id="1843" />
+<TGConnectingPoint num="39" id="1844" />
+<TGConnectingPoint num="40" id="1845" />
+<TGConnectingPoint num="41" id="1846" />
+<TGConnectingPoint num="42" id="1847" />
+<TGConnectingPoint num="43" id="1848" />
+<TGConnectingPoint num="44" id="1849" />
+<TGConnectingPoint num="45" id="1850" />
+<TGConnectingPoint num="46" id="1851" />
+<TGConnectingPoint num="47" id="1852" />
+<TGConnectingPoint num="48" id="1853" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="1922" >
+<cdparam x="201" y="86" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="283" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="OnboardCommunication" value="OnboardCommunication" />
+<TGConnectingPoint num="0" id="1873" />
+<TGConnectingPoint num="1" id="1874" />
+<TGConnectingPoint num="2" id="1875" />
+<TGConnectingPoint num="3" id="1876" />
+<TGConnectingPoint num="4" id="1877" />
+<TGConnectingPoint num="5" id="1878" />
+<TGConnectingPoint num="6" id="1879" />
+<TGConnectingPoint num="7" id="1880" />
+<TGConnectingPoint num="8" id="1881" />
+<TGConnectingPoint num="9" id="1882" />
+<TGConnectingPoint num="10" id="1883" />
+<TGConnectingPoint num="11" id="1884" />
+<TGConnectingPoint num="12" id="1885" />
+<TGConnectingPoint num="13" id="1886" />
+<TGConnectingPoint num="14" id="1887" />
+<TGConnectingPoint num="15" id="1888" />
+<TGConnectingPoint num="16" id="1889" />
+<TGConnectingPoint num="17" id="1890" />
+<TGConnectingPoint num="18" id="1891" />
+<TGConnectingPoint num="19" id="1892" />
+<TGConnectingPoint num="20" id="1893" />
+<TGConnectingPoint num="21" id="1894" />
+<TGConnectingPoint num="22" id="1895" />
+<TGConnectingPoint num="23" id="1896" />
+<TGConnectingPoint num="24" id="1897" />
+<TGConnectingPoint num="25" id="1898" />
+<TGConnectingPoint num="26" id="1899" />
+<TGConnectingPoint num="27" id="1900" />
+<TGConnectingPoint num="28" id="1901" />
+<TGConnectingPoint num="29" id="1902" />
+<TGConnectingPoint num="30" id="1903" />
+<TGConnectingPoint num="31" id="1904" />
+<TGConnectingPoint num="32" id="1905" />
+<TGConnectingPoint num="33" id="1906" />
+<TGConnectingPoint num="34" id="1907" />
+<TGConnectingPoint num="35" id="1908" />
+<TGConnectingPoint num="36" id="1909" />
+<TGConnectingPoint num="37" id="1910" />
+<TGConnectingPoint num="38" id="1911" />
+<TGConnectingPoint num="39" id="1912" />
+<TGConnectingPoint num="40" id="1913" />
+<TGConnectingPoint num="41" id="1914" />
+<TGConnectingPoint num="42" id="1915" />
+<TGConnectingPoint num="43" id="1916" />
+<TGConnectingPoint num="44" id="1917" />
+<TGConnectingPoint num="45" id="1918" />
+<TGConnectingPoint num="46" id="1919" />
+<TGConnectingPoint num="47" id="1920" />
+<TGConnectingPoint num="48" id="1921" />
+<extraparam>
+<Actor data="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="604" id="1863" >
+<father id="1922" num="0" />
+<cdparam x="219" y="448" />
+<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="18" maxX="18" minY="-2" maxY="478" />
+<infoparam name="timer cancellation" value="{timer=ATST1}" />
+<TGConnectingPoint num="0" id="1855" />
+<TGConnectingPoint num="1" id="1856" />
+<TGConnectingPoint num="2" id="1857" />
+<TGConnectingPoint num="3" id="1858" />
+<TGConnectingPoint num="4" id="1859" />
+<TGConnectingPoint num="5" id="1860" />
+<TGConnectingPoint num="6" id="1861" />
+<TGConnectingPoint num="7" id="1862" />
+<extraparam>
+<Interval timer="ATST1" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="603" id="1872" >
+<father id="1922" num="1" />
+<cdparam x="219" y="344" />
+<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="18" maxX="18" minY="-2" maxY="478" />
+<infoparam name="setting timer" value="{timer=ATST1, duration=10}" />
+<TGConnectingPoint num="0" id="1864" />
+<TGConnectingPoint num="1" id="1865" />
+<TGConnectingPoint num="2" id="1866" />
+<TGConnectingPoint num="3" id="1867" />
+<TGConnectingPoint num="4" id="1868" />
+<TGConnectingPoint num="5" id="1869" />
+<TGConnectingPoint num="6" id="1870" />
+<TGConnectingPoint num="7" id="1871" />
+<extraparam>
+<Interval timer="ATST1" duration="10" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="606" id="1972" >
+<cdparam x="799" y="86" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="310" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Controller" value="AirTrafficController" />
+<TGConnectingPoint num="0" id="1923" />
+<TGConnectingPoint num="1" id="1924" />
+<TGConnectingPoint num="2" id="1925" />
+<TGConnectingPoint num="3" id="1926" />
+<TGConnectingPoint num="4" id="1927" />
+<TGConnectingPoint num="5" id="1928" />
+<TGConnectingPoint num="6" id="1929" />
+<TGConnectingPoint num="7" id="1930" />
+<TGConnectingPoint num="8" id="1931" />
+<TGConnectingPoint num="9" id="1932" />
+<TGConnectingPoint num="10" id="1933" />
+<TGConnectingPoint num="11" id="1934" />
+<TGConnectingPoint num="12" id="1935" />
+<TGConnectingPoint num="13" id="1936" />
+<TGConnectingPoint num="14" id="1937" />
+<TGConnectingPoint num="15" id="1938" />
+<TGConnectingPoint num="16" id="1939" />
+<TGConnectingPoint num="17" id="1940" />
+<TGConnectingPoint num="18" id="1941" />
+<TGConnectingPoint num="19" id="1942" />
+<TGConnectingPoint num="20" id="1943" />
+<TGConnectingPoint num="21" id="1944" />
+<TGConnectingPoint num="22" id="1945" />
+<TGConnectingPoint num="23" id="1946" />
+<TGConnectingPoint num="24" id="1947" />
+<TGConnectingPoint num="25" id="1948" />
+<TGConnectingPoint num="26" id="1949" />
+<TGConnectingPoint num="27" id="1950" />
+<TGConnectingPoint num="28" id="1951" />
+<TGConnectingPoint num="29" id="1952" />
+<TGConnectingPoint num="30" id="1953" />
+<TGConnectingPoint num="31" id="1954" />
+<TGConnectingPoint num="32" id="1955" />
+<TGConnectingPoint num="33" id="1956" />
+<TGConnectingPoint num="34" id="1957" />
+<TGConnectingPoint num="35" id="1958" />
+<TGConnectingPoint num="36" id="1959" />
+<TGConnectingPoint num="37" id="1960" />
+<TGConnectingPoint num="38" id="1961" />
+<TGConnectingPoint num="39" id="1962" />
+<TGConnectingPoint num="40" id="1963" />
+<TGConnectingPoint num="41" id="1964" />
+<TGConnectingPoint num="42" id="1965" />
+<TGConnectingPoint num="43" id="1966" />
+<TGConnectingPoint num="44" id="1967" />
+<TGConnectingPoint num="45" id="1968" />
+<TGConnectingPoint num="46" id="1969" />
+<TGConnectingPoint num="47" id="1970" />
+<TGConnectingPoint num="48" id="1971" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="2022" >
+<cdparam x="38" y="86" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Pilot" value="Pilot" />
+<TGConnectingPoint num="0" id="1973" />
+<TGConnectingPoint num="1" id="1974" />
+<TGConnectingPoint num="2" id="1975" />
+<TGConnectingPoint num="3" id="1976" />
+<TGConnectingPoint num="4" id="1977" />
+<TGConnectingPoint num="5" id="1978" />
+<TGConnectingPoint num="6" id="1979" />
+<TGConnectingPoint num="7" id="1980" />
+<TGConnectingPoint num="8" id="1981" />
+<TGConnectingPoint num="9" id="1982" />
+<TGConnectingPoint num="10" id="1983" />
+<TGConnectingPoint num="11" id="1984" />
+<TGConnectingPoint num="12" id="1985" />
+<TGConnectingPoint num="13" id="1986" />
+<TGConnectingPoint num="14" id="1987" />
+<TGConnectingPoint num="15" id="1988" />
+<TGConnectingPoint num="16" id="1989" />
+<TGConnectingPoint num="17" id="1990" />
+<TGConnectingPoint num="18" id="1991" />
+<TGConnectingPoint num="19" id="1992" />
+<TGConnectingPoint num="20" id="1993" />
+<TGConnectingPoint num="21" id="1994" />
+<TGConnectingPoint num="22" id="1995" />
+<TGConnectingPoint num="23" id="1996" />
+<TGConnectingPoint num="24" id="1997" />
+<TGConnectingPoint num="25" id="1998" />
+<TGConnectingPoint num="26" id="1999" />
+<TGConnectingPoint num="27" id="2000" />
+<TGConnectingPoint num="28" id="2001" />
+<TGConnectingPoint num="29" id="2002" />
+<TGConnectingPoint num="30" id="2003" />
+<TGConnectingPoint num="31" id="2004" />
+<TGConnectingPoint num="32" id="2005" />
+<TGConnectingPoint num="33" id="2006" />
+<TGConnectingPoint num="34" id="2007" />
+<TGConnectingPoint num="35" id="2008" />
+<TGConnectingPoint num="36" id="2009" />
+<TGConnectingPoint num="37" id="2010" />
+<TGConnectingPoint num="38" id="2011" />
+<TGConnectingPoint num="39" id="2012" />
+<TGConnectingPoint num="40" id="2013" />
+<TGConnectingPoint num="41" id="2014" />
+<TGConnectingPoint num="42" id="2015" />
+<TGConnectingPoint num="43" id="2016" />
+<TGConnectingPoint num="44" id="2017" />
+<TGConnectingPoint num="45" id="2018" />
+<TGConnectingPoint num="46" id="2019" />
+<TGConnectingPoint num="47" id="2020" />
+<TGConnectingPoint num="48" id="2021" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="2039" >
+<cdparam x="390" y="245" />
+<sizeparam width="73" height="39" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="UML Note" value="    
+CC is lost
+   
+" />
+<TGConnectingPoint num="0" id="2023" />
+<TGConnectingPoint num="1" id="2024" />
+<TGConnectingPoint num="2" id="2025" />
+<TGConnectingPoint num="3" id="2026" />
+<TGConnectingPoint num="4" id="2027" />
+<TGConnectingPoint num="5" id="2028" />
+<TGConnectingPoint num="6" id="2029" />
+<TGConnectingPoint num="7" id="2030" />
+<TGConnectingPoint num="8" id="2031" />
+<TGConnectingPoint num="9" id="2032" />
+<TGConnectingPoint num="10" id="2033" />
+<TGConnectingPoint num="11" id="2034" />
+<TGConnectingPoint num="12" id="2035" />
+<TGConnectingPoint num="13" id="2036" />
+<TGConnectingPoint num="14" id="2037" />
+<TGConnectingPoint num="15" id="2038" />
+<extraparam>
+<Line value="    " />
+<Line value="CC is lost" />
+<Line value="   " />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="107" id="2040" >
+<cdparam x="625" y="366" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconind" />
+<P1  x="625" y="366" id="1782" />
+<P2  x="804" y="366" id="1950" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2041" >
+<cdparam x="206" y="456" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconconf" />
+<P1  x="206" y="486" id="1912" />
+<P2  x="43" y="486" id="2012" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2042" >
+<cdparam x="478" y="436" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CC" />
+<P1  x="478" y="436" id="1839" />
+<P2  x="206" y="436" id="1907" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2043" >
+<cdparam x="625" y="416" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CC" />
+<P1  x="625" y="416" id="1787" />
+<P2  x="478" y="416" id="1837" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2044" >
+<cdparam x="804" y="396" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconresp" />
+<P1  x="804" y="396" id="1953" />
+<P2  x="625" y="396" id="1785" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2045" >
+<cdparam x="466" y="346" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="478" y="346" id="1830" />
+<P2  x="625" y="346" id="1780" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2046" >
+<cdparam x="206" y="326" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="206" y="326" id="1896" />
+<P2  x="478" y="326" id="1828" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2047" >
+<cdparam x="625" y="236" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CC" />
+<P1  x="625" y="226" id="1768" />
+<P2  x="478" y="226" id="1818" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2048" >
+<cdparam x="466" y="156" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="478" y="156" id="1811" />
+<P2  x="625" y="156" id="1761" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2049" >
+<cdparam x="206" y="136" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="206" y="136" id="1877" />
+<P2  x="478" y="136" id="1809" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2050" >
+<cdparam x="15" y="123" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconreq" />
+<P1  x="43" y="116" id="1975" />
+<P2  x="206" y="116" id="1875" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2051" >
+<cdparam x="803" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconresp" />
+<P1  x="804" y="206" id="1934" />
+<P2  x="625" y="206" id="1766" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2052" >
+<cdparam x="625" y="177" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconind" />
+<P1  x="625" y="176" id="1763" />
+<P2  x="804" y="176" id="1931" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</SequenceDiagramPanel>
+
+<SequenceDiagramPanel name="unsuccesful_retransmissions" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="605" id="2061" >
+<cdparam x="217" y="690" />
+<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="timer expiration" value="{timer=ATST1}" />
+<TGConnectingPoint num="0" id="2053" />
+<TGConnectingPoint num="1" id="2054" />
+<TGConnectingPoint num="2" id="2055" />
+<TGConnectingPoint num="3" id="2056" />
+<TGConnectingPoint num="4" id="2057" />
+<TGConnectingPoint num="5" id="2058" />
+<TGConnectingPoint num="6" id="2059" />
+<TGConnectingPoint num="7" id="2060" />
+<extraparam>
+<Interval timer="ATST1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="605" id="2070" >
+<cdparam x="214" y="264" />
+<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="timer expiration" value="{timer=ATST1}" />
+<TGConnectingPoint num="0" id="2062" />
+<TGConnectingPoint num="1" id="2063" />
+<TGConnectingPoint num="2" id="2064" />
+<TGConnectingPoint num="3" id="2065" />
+<TGConnectingPoint num="4" id="2066" />
+<TGConnectingPoint num="5" id="2067" />
+<TGConnectingPoint num="6" id="2068" />
+<TGConnectingPoint num="7" id="2069" />
+<extraparam>
+<Interval timer="ATST1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="603" id="2079" >
+<cdparam x="216" y="141" />
+<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="setting timer" value="{timer=ATST1, duration=10}" />
+<TGConnectingPoint num="0" id="2071" />
+<TGConnectingPoint num="1" id="2072" />
+<TGConnectingPoint num="2" id="2073" />
+<TGConnectingPoint num="3" id="2074" />
+<TGConnectingPoint num="4" id="2075" />
+<TGConnectingPoint num="5" id="2076" />
+<TGConnectingPoint num="6" id="2077" />
+<TGConnectingPoint num="7" id="2078" />
+<extraparam>
+<Interval timer="ATST1" duration="10" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="2154" >
+<cdparam x="615" y="76" />
+<sizeparam width="10" height="750" minWidth="10" minHeight="330" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="GroundCommunication" value="GroundCommunication" />
+<TGConnectingPoint num="0" id="2080" />
+<TGConnectingPoint num="1" id="2081" />
+<TGConnectingPoint num="2" id="2082" />
+<TGConnectingPoint num="3" id="2083" />
+<TGConnectingPoint num="4" id="2084" />
+<TGConnectingPoint num="5" id="2085" />
+<TGConnectingPoint num="6" id="2086" />
+<TGConnectingPoint num="7" id="2087" />
+<TGConnectingPoint num="8" id="2088" />
+<TGConnectingPoint num="9" id="2089" />
+<TGConnectingPoint num="10" id="2090" />
+<TGConnectingPoint num="11" id="2091" />
+<TGConnectingPoint num="12" id="2092" />
+<TGConnectingPoint num="13" id="2093" />
+<TGConnectingPoint num="14" id="2094" />
+<TGConnectingPoint num="15" id="2095" />
+<TGConnectingPoint num="16" id="2096" />
+<TGConnectingPoint num="17" id="2097" />
+<TGConnectingPoint num="18" id="2098" />
+<TGConnectingPoint num="19" id="2099" />
+<TGConnectingPoint num="20" id="2100" />
+<TGConnectingPoint num="21" id="2101" />
+<TGConnectingPoint num="22" id="2102" />
+<TGConnectingPoint num="23" id="2103" />
+<TGConnectingPoint num="24" id="2104" />
+<TGConnectingPoint num="25" id="2105" />
+<TGConnectingPoint num="26" id="2106" />
+<TGConnectingPoint num="27" id="2107" />
+<TGConnectingPoint num="28" id="2108" />
+<TGConnectingPoint num="29" id="2109" />
+<TGConnectingPoint num="30" id="2110" />
+<TGConnectingPoint num="31" id="2111" />
+<TGConnectingPoint num="32" id="2112" />
+<TGConnectingPoint num="33" id="2113" />
+<TGConnectingPoint num="34" id="2114" />
+<TGConnectingPoint num="35" id="2115" />
+<TGConnectingPoint num="36" id="2116" />
+<TGConnectingPoint num="37" id="2117" />
+<TGConnectingPoint num="38" id="2118" />
+<TGConnectingPoint num="39" id="2119" />
+<TGConnectingPoint num="40" id="2120" />
+<TGConnectingPoint num="41" id="2121" />
+<TGConnectingPoint num="42" id="2122" />
+<TGConnectingPoint num="43" id="2123" />
+<TGConnectingPoint num="44" id="2124" />
+<TGConnectingPoint num="45" id="2125" />
+<TGConnectingPoint num="46" id="2126" />
+<TGConnectingPoint num="47" id="2127" />
+<TGConnectingPoint num="48" id="2128" />
+<TGConnectingPoint num="49" id="2129" />
+<TGConnectingPoint num="50" id="2130" />
+<TGConnectingPoint num="51" id="2131" />
+<TGConnectingPoint num="52" id="2132" />
+<TGConnectingPoint num="53" id="2133" />
+<TGConnectingPoint num="54" id="2134" />
+<TGConnectingPoint num="55" id="2135" />
+<TGConnectingPoint num="56" id="2136" />
+<TGConnectingPoint num="57" id="2137" />
+<TGConnectingPoint num="58" id="2138" />
+<TGConnectingPoint num="59" id="2139" />
+<TGConnectingPoint num="60" id="2140" />
+<TGConnectingPoint num="61" id="2141" />
+<TGConnectingPoint num="62" id="2142" />
+<TGConnectingPoint num="63" id="2143" />
+<TGConnectingPoint num="64" id="2144" />
+<TGConnectingPoint num="65" id="2145" />
+<TGConnectingPoint num="66" id="2146" />
+<TGConnectingPoint num="67" id="2147" />
+<TGConnectingPoint num="68" id="2148" />
+<TGConnectingPoint num="69" id="2149" />
+<TGConnectingPoint num="70" id="2150" />
+<TGConnectingPoint num="71" id="2151" />
+<TGConnectingPoint num="72" id="2152" />
+<TGConnectingPoint num="73" id="2153" />
+<extraparam>
+<Actor data="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="2229" >
+<cdparam x="442" y="76" />
+<sizeparam width="10" height="750" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Network" value="Network" />
+<TGConnectingPoint num="0" id="2155" />
+<TGConnectingPoint num="1" id="2156" />
+<TGConnectingPoint num="2" id="2157" />
+<TGConnectingPoint num="3" id="2158" />
+<TGConnectingPoint num="4" id="2159" />
+<TGConnectingPoint num="5" id="2160" />
+<TGConnectingPoint num="6" id="2161" />
+<TGConnectingPoint num="7" id="2162" />
+<TGConnectingPoint num="8" id="2163" />
+<TGConnectingPoint num="9" id="2164" />
+<TGConnectingPoint num="10" id="2165" />
+<TGConnectingPoint num="11" id="2166" />
+<TGConnectingPoint num="12" id="2167" />
+<TGConnectingPoint num="13" id="2168" />
+<TGConnectingPoint num="14" id="2169" />
+<TGConnectingPoint num="15" id="2170" />
+<TGConnectingPoint num="16" id="2171" />
+<TGConnectingPoint num="17" id="2172" />
+<TGConnectingPoint num="18" id="2173" />
+<TGConnectingPoint num="19" id="2174" />
+<TGConnectingPoint num="20" id="2175" />
+<TGConnectingPoint num="21" id="2176" />
+<TGConnectingPoint num="22" id="2177" />
+<TGConnectingPoint num="23" id="2178" />
+<TGConnectingPoint num="24" id="2179" />
+<TGConnectingPoint num="25" id="2180" />
+<TGConnectingPoint num="26" id="2181" />
+<TGConnectingPoint num="27" id="2182" />
+<TGConnectingPoint num="28" id="2183" />
+<TGConnectingPoint num="29" id="2184" />
+<TGConnectingPoint num="30" id="2185" />
+<TGConnectingPoint num="31" id="2186" />
+<TGConnectingPoint num="32" id="2187" />
+<TGConnectingPoint num="33" id="2188" />
+<TGConnectingPoint num="34" id="2189" />
+<TGConnectingPoint num="35" id="2190" />
+<TGConnectingPoint num="36" id="2191" />
+<TGConnectingPoint num="37" id="2192" />
+<TGConnectingPoint num="38" id="2193" />
+<TGConnectingPoint num="39" id="2194" />
+<TGConnectingPoint num="40" id="2195" />
+<TGConnectingPoint num="41" id="2196" />
+<TGConnectingPoint num="42" id="2197" />
+<TGConnectingPoint num="43" id="2198" />
+<TGConnectingPoint num="44" id="2199" />
+<TGConnectingPoint num="45" id="2200" />
+<TGConnectingPoint num="46" id="2201" />
+<TGConnectingPoint num="47" id="2202" />
+<TGConnectingPoint num="48" id="2203" />
+<TGConnectingPoint num="49" id="2204" />
+<TGConnectingPoint num="50" id="2205" />
+<TGConnectingPoint num="51" id="2206" />
+<TGConnectingPoint num="52" id="2207" />
+<TGConnectingPoint num="53" id="2208" />
+<TGConnectingPoint num="54" id="2209" />
+<TGConnectingPoint num="55" id="2210" />
+<TGConnectingPoint num="56" id="2211" />
+<TGConnectingPoint num="57" id="2212" />
+<TGConnectingPoint num="58" id="2213" />
+<TGConnectingPoint num="59" id="2214" />
+<TGConnectingPoint num="60" id="2215" />
+<TGConnectingPoint num="61" id="2216" />
+<TGConnectingPoint num="62" id="2217" />
+<TGConnectingPoint num="63" id="2218" />
+<TGConnectingPoint num="64" id="2219" />
+<TGConnectingPoint num="65" id="2220" />
+<TGConnectingPoint num="66" id="2221" />
+<TGConnectingPoint num="67" id="2222" />
+<TGConnectingPoint num="68" id="2223" />
+<TGConnectingPoint num="69" id="2224" />
+<TGConnectingPoint num="70" id="2225" />
+<TGConnectingPoint num="71" id="2226" />
+<TGConnectingPoint num="72" id="2227" />
+<TGConnectingPoint num="73" id="2228" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="2322" >
+<cdparam x="196" y="76" />
+<sizeparam width="10" height="750" minWidth="10" minHeight="283" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="OnboardCommunication" value="OnboardCommunication" />
+<TGConnectingPoint num="0" id="2248" />
+<TGConnectingPoint num="1" id="2249" />
+<TGConnectingPoint num="2" id="2250" />
+<TGConnectingPoint num="3" id="2251" />
+<TGConnectingPoint num="4" id="2252" />
+<TGConnectingPoint num="5" id="2253" />
+<TGConnectingPoint num="6" id="2254" />
+<TGConnectingPoint num="7" id="2255" />
+<TGConnectingPoint num="8" id="2256" />
+<TGConnectingPoint num="9" id="2257" />
+<TGConnectingPoint num="10" id="2258" />
+<TGConnectingPoint num="11" id="2259" />
+<TGConnectingPoint num="12" id="2260" />
+<TGConnectingPoint num="13" id="2261" />
+<TGConnectingPoint num="14" id="2262" />
+<TGConnectingPoint num="15" id="2263" />
+<TGConnectingPoint num="16" id="2264" />
+<TGConnectingPoint num="17" id="2265" />
+<TGConnectingPoint num="18" id="2266" />
+<TGConnectingPoint num="19" id="2267" />
+<TGConnectingPoint num="20" id="2268" />
+<TGConnectingPoint num="21" id="2269" />
+<TGConnectingPoint num="22" id="2270" />
+<TGConnectingPoint num="23" id="2271" />
+<TGConnectingPoint num="24" id="2272" />
+<TGConnectingPoint num="25" id="2273" />
+<TGConnectingPoint num="26" id="2274" />
+<TGConnectingPoint num="27" id="2275" />
+<TGConnectingPoint num="28" id="2276" />
+<TGConnectingPoint num="29" id="2277" />
+<TGConnectingPoint num="30" id="2278" />
+<TGConnectingPoint num="31" id="2279" />
+<TGConnectingPoint num="32" id="2280" />
+<TGConnectingPoint num="33" id="2281" />
+<TGConnectingPoint num="34" id="2282" />
+<TGConnectingPoint num="35" id="2283" />
+<TGConnectingPoint num="36" id="2284" />
+<TGConnectingPoint num="37" id="2285" />
+<TGConnectingPoint num="38" id="2286" />
+<TGConnectingPoint num="39" id="2287" />
+<TGConnectingPoint num="40" id="2288" />
+<TGConnectingPoint num="41" id="2289" />
+<TGConnectingPoint num="42" id="2290" />
+<TGConnectingPoint num="43" id="2291" />
+<TGConnectingPoint num="44" id="2292" />
+<TGConnectingPoint num="45" id="2293" />
+<TGConnectingPoint num="46" id="2294" />
+<TGConnectingPoint num="47" id="2295" />
+<TGConnectingPoint num="48" id="2296" />
+<TGConnectingPoint num="49" id="2297" />
+<TGConnectingPoint num="50" id="2298" />
+<TGConnectingPoint num="51" id="2299" />
+<TGConnectingPoint num="52" id="2300" />
+<TGConnectingPoint num="53" id="2301" />
+<TGConnectingPoint num="54" id="2302" />
+<TGConnectingPoint num="55" id="2303" />
+<TGConnectingPoint num="56" id="2304" />
+<TGConnectingPoint num="57" id="2305" />
+<TGConnectingPoint num="58" id="2306" />
+<TGConnectingPoint num="59" id="2307" />
+<TGConnectingPoint num="60" id="2308" />
+<TGConnectingPoint num="61" id="2309" />
+<TGConnectingPoint num="62" id="2310" />
+<TGConnectingPoint num="63" id="2311" />
+<TGConnectingPoint num="64" id="2312" />
+<TGConnectingPoint num="65" id="2313" />
+<TGConnectingPoint num="66" id="2314" />
+<TGConnectingPoint num="67" id="2315" />
+<TGConnectingPoint num="68" id="2316" />
+<TGConnectingPoint num="69" id="2317" />
+<TGConnectingPoint num="70" id="2318" />
+<TGConnectingPoint num="71" id="2319" />
+<TGConnectingPoint num="72" id="2320" />
+<TGConnectingPoint num="73" id="2321" />
+<extraparam>
+<Actor data="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="605" id="2238" >
+<father id="2322" num="0" />
+<cdparam x="214" y="497" />
+<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="18" maxX="18" minY="-2" maxY="728" />
+<infoparam name="timer expiration" value="{timer=ATST1}" />
+<TGConnectingPoint num="0" id="2230" />
+<TGConnectingPoint num="1" id="2231" />
+<TGConnectingPoint num="2" id="2232" />
+<TGConnectingPoint num="3" id="2233" />
+<TGConnectingPoint num="4" id="2234" />
+<TGConnectingPoint num="5" id="2235" />
+<TGConnectingPoint num="6" id="2236" />
+<TGConnectingPoint num="7" id="2237" />
+<extraparam>
+<Interval timer="ATST1" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="603" id="2247" >
+<father id="2322" num="1" />
+<cdparam x="214" y="334" />
+<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="18" maxX="18" minY="-2" maxY="728" />
+<infoparam name="setting timer" value="{timer=ATST1, duration=10}" />
+<TGConnectingPoint num="0" id="2239" />
+<TGConnectingPoint num="1" id="2240" />
+<TGConnectingPoint num="2" id="2241" />
+<TGConnectingPoint num="3" id="2242" />
+<TGConnectingPoint num="4" id="2243" />
+<TGConnectingPoint num="5" id="2244" />
+<TGConnectingPoint num="6" id="2245" />
+<TGConnectingPoint num="7" id="2246" />
+<extraparam>
+<Interval timer="ATST1" duration="10" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="606" id="2397" >
+<cdparam x="794" y="76" />
+<sizeparam width="10" height="750" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Controller" value="AirTrafficController" />
+<TGConnectingPoint num="0" id="2323" />
+<TGConnectingPoint num="1" id="2324" />
+<TGConnectingPoint num="2" id="2325" />
+<TGConnectingPoint num="3" id="2326" />
+<TGConnectingPoint num="4" id="2327" />
+<TGConnectingPoint num="5" id="2328" />
+<TGConnectingPoint num="6" id="2329" />
+<TGConnectingPoint num="7" id="2330" />
+<TGConnectingPoint num="8" id="2331" />
+<TGConnectingPoint num="9" id="2332" />
+<TGConnectingPoint num="10" id="2333" />
+<TGConnectingPoint num="11" id="2334" />
+<TGConnectingPoint num="12" id="2335" />
+<TGConnectingPoint num="13" id="2336" />
+<TGConnectingPoint num="14" id="2337" />
+<TGConnectingPoint num="15" id="2338" />
+<TGConnectingPoint num="16" id="2339" />
+<TGConnectingPoint num="17" id="2340" />
+<TGConnectingPoint num="18" id="2341" />
+<TGConnectingPoint num="19" id="2342" />
+<TGConnectingPoint num="20" id="2343" />
+<TGConnectingPoint num="21" id="2344" />
+<TGConnectingPoint num="22" id="2345" />
+<TGConnectingPoint num="23" id="2346" />
+<TGConnectingPoint num="24" id="2347" />
+<TGConnectingPoint num="25" id="2348" />
+<TGConnectingPoint num="26" id="2349" />
+<TGConnectingPoint num="27" id="2350" />
+<TGConnectingPoint num="28" id="2351" />
+<TGConnectingPoint num="29" id="2352" />
+<TGConnectingPoint num="30" id="2353" />
+<TGConnectingPoint num="31" id="2354" />
+<TGConnectingPoint num="32" id="2355" />
+<TGConnectingPoint num="33" id="2356" />
+<TGConnectingPoint num="34" id="2357" />
+<TGConnectingPoint num="35" id="2358" />
+<TGConnectingPoint num="36" id="2359" />
+<TGConnectingPoint num="37" id="2360" />
+<TGConnectingPoint num="38" id="2361" />
+<TGConnectingPoint num="39" id="2362" />
+<TGConnectingPoint num="40" id="2363" />
+<TGConnectingPoint num="41" id="2364" />
+<TGConnectingPoint num="42" id="2365" />
+<TGConnectingPoint num="43" id="2366" />
+<TGConnectingPoint num="44" id="2367" />
+<TGConnectingPoint num="45" id="2368" />
+<TGConnectingPoint num="46" id="2369" />
+<TGConnectingPoint num="47" id="2370" />
+<TGConnectingPoint num="48" id="2371" />
+<TGConnectingPoint num="49" id="2372" />
+<TGConnectingPoint num="50" id="2373" />
+<TGConnectingPoint num="51" id="2374" />
+<TGConnectingPoint num="52" id="2375" />
+<TGConnectingPoint num="53" id="2376" />
+<TGConnectingPoint num="54" id="2377" />
+<TGConnectingPoint num="55" id="2378" />
+<TGConnectingPoint num="56" id="2379" />
+<TGConnectingPoint num="57" id="2380" />
+<TGConnectingPoint num="58" id="2381" />
+<TGConnectingPoint num="59" id="2382" />
+<TGConnectingPoint num="60" id="2383" />
+<TGConnectingPoint num="61" id="2384" />
+<TGConnectingPoint num="62" id="2385" />
+<TGConnectingPoint num="63" id="2386" />
+<TGConnectingPoint num="64" id="2387" />
+<TGConnectingPoint num="65" id="2388" />
+<TGConnectingPoint num="66" id="2389" />
+<TGConnectingPoint num="67" id="2390" />
+<TGConnectingPoint num="68" id="2391" />
+<TGConnectingPoint num="69" id="2392" />
+<TGConnectingPoint num="70" id="2393" />
+<TGConnectingPoint num="71" id="2394" />
+<TGConnectingPoint num="72" id="2395" />
+<TGConnectingPoint num="73" id="2396" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="606" id="2472" >
+<cdparam x="33" y="76" />
+<sizeparam width="10" height="750" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Pilot" value="Pilot" />
+<TGConnectingPoint num="0" id="2398" />
+<TGConnectingPoint num="1" id="2399" />
+<TGConnectingPoint num="2" id="2400" />
+<TGConnectingPoint num="3" id="2401" />
+<TGConnectingPoint num="4" id="2402" />
+<TGConnectingPoint num="5" id="2403" />
+<TGConnectingPoint num="6" id="2404" />
+<TGConnectingPoint num="7" id="2405" />
+<TGConnectingPoint num="8" id="2406" />
+<TGConnectingPoint num="9" id="2407" />
+<TGConnectingPoint num="10" id="2408" />
+<TGConnectingPoint num="11" id="2409" />
+<TGConnectingPoint num="12" id="2410" />
+<TGConnectingPoint num="13" id="2411" />
+<TGConnectingPoint num="14" id="2412" />
+<TGConnectingPoint num="15" id="2413" />
+<TGConnectingPoint num="16" id="2414" />
+<TGConnectingPoint num="17" id="2415" />
+<TGConnectingPoint num="18" id="2416" />
+<TGConnectingPoint num="19" id="2417" />
+<TGConnectingPoint num="20" id="2418" />
+<TGConnectingPoint num="21" id="2419" />
+<TGConnectingPoint num="22" id="2420" />
+<TGConnectingPoint num="23" id="2421" />
+<TGConnectingPoint num="24" id="2422" />
+<TGConnectingPoint num="25" id="2423" />
+<TGConnectingPoint num="26" id="2424" />
+<TGConnectingPoint num="27" id="2425" />
+<TGConnectingPoint num="28" id="2426" />
+<TGConnectingPoint num="29" id="2427" />
+<TGConnectingPoint num="30" id="2428" />
+<TGConnectingPoint num="31" id="2429" />
+<TGConnectingPoint num="32" id="2430" />
+<TGConnectingPoint num="33" id="2431" />
+<TGConnectingPoint num="34" id="2432" />
+<TGConnectingPoint num="35" id="2433" />
+<TGConnectingPoint num="36" id="2434" />
+<TGConnectingPoint num="37" id="2435" />
+<TGConnectingPoint num="38" id="2436" />
+<TGConnectingPoint num="39" id="2437" />
+<TGConnectingPoint num="40" id="2438" />
+<TGConnectingPoint num="41" id="2439" />
+<TGConnectingPoint num="42" id="2440" />
+<TGConnectingPoint num="43" id="2441" />
+<TGConnectingPoint num="44" id="2442" />
+<TGConnectingPoint num="45" id="2443" />
+<TGConnectingPoint num="46" id="2444" />
+<TGConnectingPoint num="47" id="2445" />
+<TGConnectingPoint num="48" id="2446" />
+<TGConnectingPoint num="49" id="2447" />
+<TGConnectingPoint num="50" id="2448" />
+<TGConnectingPoint num="51" id="2449" />
+<TGConnectingPoint num="52" id="2450" />
+<TGConnectingPoint num="53" id="2451" />
+<TGConnectingPoint num="54" id="2452" />
+<TGConnectingPoint num="55" id="2453" />
+<TGConnectingPoint num="56" id="2454" />
+<TGConnectingPoint num="57" id="2455" />
+<TGConnectingPoint num="58" id="2456" />
+<TGConnectingPoint num="59" id="2457" />
+<TGConnectingPoint num="60" id="2458" />
+<TGConnectingPoint num="61" id="2459" />
+<TGConnectingPoint num="62" id="2460" />
+<TGConnectingPoint num="63" id="2461" />
+<TGConnectingPoint num="64" id="2462" />
+<TGConnectingPoint num="65" id="2463" />
+<TGConnectingPoint num="66" id="2464" />
+<TGConnectingPoint num="67" id="2465" />
+<TGConnectingPoint num="68" id="2466" />
+<TGConnectingPoint num="69" id="2467" />
+<TGConnectingPoint num="70" id="2468" />
+<TGConnectingPoint num="71" id="2469" />
+<TGConnectingPoint num="72" id="2470" />
+<TGConnectingPoint num="73" id="2471" />
+<extraparam>
+<Actor data="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="2489" >
+<cdparam x="385" y="235" />
+<sizeparam width="73" height="39" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="UML Note" value="    
+CC is lost
+   
+" />
+<TGConnectingPoint num="0" id="2473" />
+<TGConnectingPoint num="1" id="2474" />
+<TGConnectingPoint num="2" id="2475" />
+<TGConnectingPoint num="3" id="2476" />
+<TGConnectingPoint num="4" id="2477" />
+<TGConnectingPoint num="5" id="2478" />
+<TGConnectingPoint num="6" id="2479" />
+<TGConnectingPoint num="7" id="2480" />
+<TGConnectingPoint num="8" id="2481" />
+<TGConnectingPoint num="9" id="2482" />
+<TGConnectingPoint num="10" id="2483" />
+<TGConnectingPoint num="11" id="2484" />
+<TGConnectingPoint num="12" id="2485" />
+<TGConnectingPoint num="13" id="2486" />
+<TGConnectingPoint num="14" id="2487" />
+<TGConnectingPoint num="15" id="2488" />
+<extraparam>
+<Line value="    " />
+<Line value="CC is lost" />
+<Line value="   " />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="2506" >
+<cdparam x="387" y="639" />
+<sizeparam width="73" height="39" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="UML Note" value="    
+CC is lost
+   
+" />
+<TGConnectingPoint num="0" id="2490" />
+<TGConnectingPoint num="1" id="2491" />
+<TGConnectingPoint num="2" id="2492" />
+<TGConnectingPoint num="3" id="2493" />
+<TGConnectingPoint num="4" id="2494" />
+<TGConnectingPoint num="5" id="2495" />
+<TGConnectingPoint num="6" id="2496" />
+<TGConnectingPoint num="7" id="2497" />
+<TGConnectingPoint num="8" id="2498" />
+<TGConnectingPoint num="9" id="2499" />
+<TGConnectingPoint num="10" id="2500" />
+<TGConnectingPoint num="11" id="2501" />
+<TGConnectingPoint num="12" id="2502" />
+<TGConnectingPoint num="13" id="2503" />
+<TGConnectingPoint num="14" id="2504" />
+<TGConnectingPoint num="15" id="2505" />
+<extraparam>
+<Line value="    " />
+<Line value="CC is lost" />
+<Line value="   " />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="2523" >
+<cdparam x="384" y="440" />
+<sizeparam width="73" height="39" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="UML Note" value="    
+CC is lost
+   
+" />
+<TGConnectingPoint num="0" id="2507" />
+<TGConnectingPoint num="1" id="2508" />
+<TGConnectingPoint num="2" id="2509" />
+<TGConnectingPoint num="3" id="2510" />
+<TGConnectingPoint num="4" id="2511" />
+<TGConnectingPoint num="5" id="2512" />
+<TGConnectingPoint num="6" id="2513" />
+<TGConnectingPoint num="7" id="2514" />
+<TGConnectingPoint num="8" id="2515" />
+<TGConnectingPoint num="9" id="2516" />
+<TGConnectingPoint num="10" id="2517" />
+<TGConnectingPoint num="11" id="2518" />
+<TGConnectingPoint num="12" id="2519" />
+<TGConnectingPoint num="13" id="2520" />
+<TGConnectingPoint num="14" id="2521" />
+<TGConnectingPoint num="15" id="2522" />
+<extraparam>
+<Line value="    " />
+<Line value="CC is lost" />
+<Line value="   " />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="107" id="2524" >
+<cdparam x="201" y="726" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INerror" />
+<P1  x="201" y="726" id="2312" />
+<P2  x="38" y="726" id="2462" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2525" >
+<cdparam x="620" y="616" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CC" />
+<P1  x="620" y="616" id="2133" />
+<P2  x="447" y="616" id="2208" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2526" >
+<cdparam x="799" y="596" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconresp" />
+<P1  x="799" y="596" id="2374" />
+<P2  x="620" y="596" id="2131" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2527" >
+<cdparam x="620" y="576" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconind" />
+<P1  x="620" y="576" id="2129" />
+<P2  x="799" y="576" id="2372" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2528" >
+<cdparam x="447" y="556" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="447" y="556" id="2202" />
+<P2  x="620" y="556" id="2127" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2529" >
+<cdparam x="201" y="536" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="201" y="536" id="2293" />
+<P2  x="447" y="536" id="2200" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2530" >
+<cdparam x="620" y="406" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CC" />
+<P1  x="620" y="406" id="2112" />
+<P2  x="447" y="406" id="2187" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2531" >
+<cdparam x="799" y="386" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconresp" />
+<P1  x="799" y="386" id="2353" />
+<P2  x="620" y="386" id="2110" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2534" >
+<cdparam x="620" y="356" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconind" />
+<P1  x="620" y="356" id="2107" />
+<P2  x="799" y="356" id="2350" />
+<Point x="619" y="355" />
+<Point x="621" y="355" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2532" >
+<father id="2534" num="0" />
+<cdparam x="619" y="355" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" 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" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2533" >
+<father id="2534" num="1" />
+<cdparam x="621" y="355" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" 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" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="106" id="2535" >
+<cdparam x="461" y="336" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="447" y="336" id="2180" />
+<P2  x="620" y="336" id="2105" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2536" >
+<cdparam x="201" y="316" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="201" y="316" id="2271" />
+<P2  x="447" y="316" id="2178" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2537" >
+<cdparam x="620" y="226" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CC" />
+<P1  x="620" y="216" id="2093" />
+<P2  x="447" y="216" id="2168" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2538" >
+<cdparam x="461" y="146" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="447" y="146" id="2161" />
+<P2  x="620" y="146" id="2086" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="106" id="2539" >
+<cdparam x="201" y="126" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="CR" />
+<P1  x="201" y="126" id="2252" />
+<P2  x="447" y="126" id="2159" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2540" >
+<cdparam x="10" y="113" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="INconreq" />
+<P1  x="38" y="106" id="2400" />
+<P2  x="201" y="106" id="2250" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2541" >
+<cdparam x="798" y="197" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconresp" />
+<P1  x="799" y="196" id="2334" />
+<P2  x="620" y="196" id="2091" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="107" id="2542" >
+<cdparam x="620" y="167" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from instance to instance" value="INconind" />
+<P1  x="620" y="166" id="2088" />
+<P2  x="799" y="166" id="2331" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</SequenceDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="AVATAR Design" nameTab="Design_unlossy" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<Validated value="" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="2548" >
+<cdparam x="117" y="266" />
+<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" />
+<TGConnectingPoint num="1" id="2546" />
+<TGConnectingPoint num="2" id="2547" />
+<P1  x="117" y="266" id="2601" />
+<P2  x="464" y="267" id="2627" />
+<Point x="117" y="308" />
+<Point x="464" y="308" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in CC()" />
+<osd value="out CC()" />
+<isd value="in CR()" />
+<oso value="out CR()" />
+<FIFOType asynchronous="true" size="1" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR><SUBCOMPONENT type="-1" id="2543" >
+<father id="2548" num="0" />
+<cdparam x="117" y="308" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2544" >
+<father id="2548" num="1" />
+<cdparam x="464" y="308" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5002" id="2550" >
+<cdparam x="449" y="116" />
+<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="2549" />
+<P1  x="424" y="104" id="2643" />
+<P2  x="424" y="143" id="2613" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in INconind()" />
+<osd value="out INconind()" />
+<isd value="in INconresp()" />
+<oso value="out INconresp()" />
+<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="2552" >
+<cdparam x="145" y="116" />
+<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="2551" />
+<P1  x="158" y="104" id="2668" />
+<P2  x="158" y="142" id="2588" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in INconconf()" />
+<osd value="out INconconf()" />
+<isd value="in INconreq()" />
+<oso value="out INconreq()" />
+<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="301" id="2569" >
+<cdparam x="235" y="287" />
+<sizeparam width="111" height="15" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="Unlossy channel
+" />
+<TGConnectingPoint num="0" id="2553" />
+<TGConnectingPoint num="1" id="2554" />
+<TGConnectingPoint num="2" id="2555" />
+<TGConnectingPoint num="3" id="2556" />
+<TGConnectingPoint num="4" id="2557" />
+<TGConnectingPoint num="5" id="2558" />
+<TGConnectingPoint num="6" id="2559" />
+<TGConnectingPoint num="7" id="2560" />
+<TGConnectingPoint num="8" id="2561" />
+<TGConnectingPoint num="9" id="2562" />
+<TGConnectingPoint num="10" id="2563" />
+<TGConnectingPoint num="11" id="2564" />
+<TGConnectingPoint num="12" id="2565" />
+<TGConnectingPoint num="13" id="2566" />
+<TGConnectingPoint num="14" id="2567" />
+<TGConnectingPoint num="15" id="2568" />
+<extraparam>
+<Line value="Unlossy channel" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="2586" >
+<cdparam x="10" y="332" />
+<sizeparam width="588" height="51" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="
+  Black squares: the protocol entities communicate by rendezvous with the Pilot and the Controller.
+  White squares: the protocol entities communicate bu FIFO queues with their underlying network.
+   
+" />
+<TGConnectingPoint num="0" id="2570" />
+<TGConnectingPoint num="1" id="2571" />
+<TGConnectingPoint num="2" id="2572" />
+<TGConnectingPoint num="3" id="2573" />
+<TGConnectingPoint num="4" id="2574" />
+<TGConnectingPoint num="5" id="2575" />
+<TGConnectingPoint num="6" id="2576" />
+<TGConnectingPoint num="7" id="2577" />
+<TGConnectingPoint num="8" id="2578" />
+<TGConnectingPoint num="9" id="2579" />
+<TGConnectingPoint num="10" id="2580" />
+<TGConnectingPoint num="11" id="2581" />
+<TGConnectingPoint num="12" id="2582" />
+<TGConnectingPoint num="13" id="2583" />
+<TGConnectingPoint num="14" id="2584" />
+<TGConnectingPoint num="15" id="2585" />
+<extraparam>
+<Line value="" />
+<Line value="  Black squares: the protocol entities communicate by rendezvous with the Pilot and the Controller." />
+<Line value="  White squares: the protocol entities communicate bu FIFO queues with their underlying network." />
+<Line value="   " />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="2611" >
+<cdparam x="77" y="142" />
+<sizeparam width="163" height="124" 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="OnBoardCommunication" />
+<TGConnectingPoint num="0" id="2587" />
+<TGConnectingPoint num="1" id="2588" />
+<TGConnectingPoint num="2" id="2589" />
+<TGConnectingPoint num="3" id="2590" />
+<TGConnectingPoint num="4" id="2591" />
+<TGConnectingPoint num="5" id="2592" />
+<TGConnectingPoint num="6" id="2593" />
+<TGConnectingPoint num="7" id="2594" />
+<TGConnectingPoint num="8" id="2595" />
+<TGConnectingPoint num="9" id="2596" />
+<TGConnectingPoint num="10" id="2597" />
+<TGConnectingPoint num="11" id="2598" />
+<TGConnectingPoint num="12" id="2599" />
+<TGConnectingPoint num="13" id="2600" />
+<TGConnectingPoint num="14" id="2601" />
+<TGConnectingPoint num="15" id="2602" />
+<TGConnectingPoint num="16" id="2603" />
+<TGConnectingPoint num="17" id="2604" />
+<TGConnectingPoint num="18" id="2605" />
+<TGConnectingPoint num="19" id="2606" />
+<TGConnectingPoint num="20" id="2607" />
+<TGConnectingPoint num="21" id="2608" />
+<TGConnectingPoint num="22" id="2609" />
+<TGConnectingPoint num="23" id="2610" />
+<extraparam>
+<CryptoBlock value="false" />
+<Signal value="in INconreq()" attached="false" />
+<Signal value="out INconconf()" attached="false" />
+<Signal value="out CR()" attached="false" />
+<Signal value="in CC()" attached="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="2636" >
+<cdparam x="344" y="143" />
+<sizeparam width="161" height="124" 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="GroundCommunication" />
+<TGConnectingPoint num="0" id="2612" />
+<TGConnectingPoint num="1" id="2613" />
+<TGConnectingPoint num="2" id="2614" />
+<TGConnectingPoint num="3" id="2615" />
+<TGConnectingPoint num="4" id="2616" />
+<TGConnectingPoint num="5" id="2617" />
+<TGConnectingPoint num="6" id="2618" />
+<TGConnectingPoint num="7" id="2619" />
+<TGConnectingPoint num="8" id="2620" />
+<TGConnectingPoint num="9" id="2621" />
+<TGConnectingPoint num="10" id="2622" />
+<TGConnectingPoint num="11" id="2623" />
+<TGConnectingPoint num="12" id="2624" />
+<TGConnectingPoint num="13" id="2625" />
+<TGConnectingPoint num="14" id="2626" />
+<TGConnectingPoint num="15" id="2627" />
+<TGConnectingPoint num="16" id="2628" />
+<TGConnectingPoint num="17" id="2629" />
+<TGConnectingPoint num="18" id="2630" />
+<TGConnectingPoint num="19" id="2631" />
+<TGConnectingPoint num="20" id="2632" />
+<TGConnectingPoint num="21" id="2633" />
+<TGConnectingPoint num="22" id="2634" />
+<TGConnectingPoint num="23" id="2635" />
+<extraparam>
+<CryptoBlock value="false" />
+<Signal value="in CR()" attached="false" />
+<Signal value="out CC()" attached="false" />
+<Signal value="out INconind()" attached="false" />
+<Signal value="in INconresp()" attached="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="2661" >
+<cdparam x="346" y="10" />
+<sizeparam width="157" height="94" 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="Controller" />
+<TGConnectingPoint num="0" id="2637" />
+<TGConnectingPoint num="1" id="2638" />
+<TGConnectingPoint num="2" id="2639" />
+<TGConnectingPoint num="3" id="2640" />
+<TGConnectingPoint num="4" id="2641" />
+<TGConnectingPoint num="5" id="2642" />
+<TGConnectingPoint num="6" id="2643" />
+<TGConnectingPoint num="7" id="2644" />
+<TGConnectingPoint num="8" id="2645" />
+<TGConnectingPoint num="9" id="2646" />
+<TGConnectingPoint num="10" id="2647" />
+<TGConnectingPoint num="11" id="2648" />
+<TGConnectingPoint num="12" id="2649" />
+<TGConnectingPoint num="13" id="2650" />
+<TGConnectingPoint num="14" id="2651" />
+<TGConnectingPoint num="15" id="2652" />
+<TGConnectingPoint num="16" id="2653" />
+<TGConnectingPoint num="17" id="2654" />
+<TGConnectingPoint num="18" id="2655" />
+<TGConnectingPoint num="19" id="2656" />
+<TGConnectingPoint num="20" id="2657" />
+<TGConnectingPoint num="21" id="2658" />
+<TGConnectingPoint num="22" id="2659" />
+<TGConnectingPoint num="23" id="2660" />
+<extraparam>
+<CryptoBlock value="false" />
+<Signal value="in INconind()" attached="false" />
+<Signal value="out INconresp()" attached="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="2686" >
+<cdparam x="76" y="10" />
+<sizeparam width="165" height="94" 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="Pilot" />
+<TGConnectingPoint num="0" id="2662" />
+<TGConnectingPoint num="1" id="2663" />
+<TGConnectingPoint num="2" id="2664" />
+<TGConnectingPoint num="3" id="2665" />
+<TGConnectingPoint num="4" id="2666" />
+<TGConnectingPoint num="5" id="2667" />
+<TGConnectingPoint num="6" id="2668" />
+<TGConnectingPoint num="7" id="2669" />
+<TGConnectingPoint num="8" id="2670" />
+<TGConnectingPoint num="9" id="2671" />
+<TGConnectingPoint num="10" id="2672" />
+<TGConnectingPoint num="11" id="2673" />
+<TGConnectingPoint num="12" id="2674" />
+<TGConnectingPoint num="13" id="2675" />
+<TGConnectingPoint num="14" id="2676" />
+<TGConnectingPoint num="15" id="2677" />
+<TGConnectingPoint num="16" id="2678" />
+<TGConnectingPoint num="17" id="2679" />
+<TGConnectingPoint num="18" id="2680" />
+<TGConnectingPoint num="19" id="2681" />
+<TGConnectingPoint num="20" id="2682" />
+<TGConnectingPoint num="21" id="2683" />
+<TGConnectingPoint num="22" id="2684" />
+<TGConnectingPoint num="23" id="2685" />
+<extraparam>
+<CryptoBlock value="false" />
+<Signal value="out INconreq()" attached="false" />
+<Signal value="in INconconf()" attached="false" />
+</extraparam>
+</COMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="OnBoardCommunication" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="2693" >
+<cdparam x="82" y="38" />
+<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="2692" />
+<P1  x="68" y="42" id="2944" />
+<P2  x="88" y="61" id="2904" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2691" >
+<father id="2693" num="0" />
+<cdparam x="82" y="78" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2687" />
+<TGConnectingPoint num="1" id="2688" />
+<TGConnectingPoint num="2" id="2689" />
+<TGConnectingPoint num="3" id="2690" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2700" >
+<cdparam x="88" y="111" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="2699" />
+<P1  x="88" y="111" id="2909" />
+<P2  x="88" y="133" id="2892" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2698" >
+<father id="2700" num="0" />
+<cdparam x="88" y="151" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2694" />
+<TGConnectingPoint num="1" id="2695" />
+<TGConnectingPoint num="2" id="2696" />
+<TGConnectingPoint num="3" id="2697" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2707" >
+<cdparam x="88" y="163" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="2706" />
+<P1  x="88" y="163" id="2893" />
+<P2  x="87" y="181" id="2881" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2705" >
+<father id="2707" num="0" />
+<cdparam x="88" y="203" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2701" />
+<TGConnectingPoint num="1" id="2702" />
+<TGConnectingPoint num="2" id="2703" />
+<TGConnectingPoint num="3" id="2704" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2714" >
+<cdparam x="87" y="211" />
+<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="2713" />
+<P1  x="87" y="211" id="2882" />
+<P2  x="87" y="232" id="2841" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2712" >
+<father id="2714" num="0" />
+<cdparam x="87" y="251" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2708" />
+<TGConnectingPoint num="1" id="2709" />
+<TGConnectingPoint num="2" id="2710" />
+<TGConnectingPoint num="3" id="2711" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2721" >
+<cdparam x="304" y="109" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="2720" />
+<P1  x="304" y="109" id="2805" />
+<P2  x="304" y="134" id="2788" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2719" >
+<father id="2721" num="0" />
+<cdparam x="304" y="149" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2715" />
+<TGConnectingPoint num="1" id="2716" />
+<TGConnectingPoint num="2" id="2717" />
+<TGConnectingPoint num="3" id="2718" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2728" >
+<cdparam x="304" y="164" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="2727" />
+<P1  x="304" y="164" id="2789" />
+<P2  x="304" y="188" id="2777" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2726" >
+<father id="2728" num="0" />
+<cdparam x="304" y="204" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2722" />
+<TGConnectingPoint num="1" id="2723" />
+<TGConnectingPoint num="2" id="2724" />
+<TGConnectingPoint num="3" id="2725" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2735" >
+<cdparam x="304" y="218" />
+<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="2734" />
+<P1  x="304" y="218" id="2778" />
+<P2  x="304" y="241" id="2737" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2733" >
+<father id="2735" num="0" />
+<cdparam x="304" y="258" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2729" />
+<TGConnectingPoint num="1" id="2730" />
+<TGConnectingPoint num="2" id="2731" />
+<TGConnectingPoint num="3" id="2732" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5106" id="2776" >
+<cdparam x="246" y="241" />
+<sizeparam width="117" height="47" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="CONNECTED" />
+<TGConnectingPoint num="0" id="2736" />
+<TGConnectingPoint num="1" id="2737" />
+<TGConnectingPoint num="2" id="2738" />
+<TGConnectingPoint num="3" id="2739" />
+<TGConnectingPoint num="4" id="2740" />
+<TGConnectingPoint num="5" id="2741" />
+<TGConnectingPoint num="6" id="2742" />
+<TGConnectingPoint num="7" id="2743" />
+<TGConnectingPoint num="8" id="2744" />
+<TGConnectingPoint num="9" id="2745" />
+<TGConnectingPoint num="10" id="2746" />
+<TGConnectingPoint num="11" id="2747" />
+<TGConnectingPoint num="12" id="2748" />
+<TGConnectingPoint num="13" id="2749" />
+<TGConnectingPoint num="14" id="2750" />
+<TGConnectingPoint num="15" id="2751" />
+<TGConnectingPoint num="16" id="2752" />
+<TGConnectingPoint num="17" id="2753" />
+<TGConnectingPoint num="18" id="2754" />
+<TGConnectingPoint num="19" id="2755" />
+<TGConnectingPoint num="20" id="2756" />
+<TGConnectingPoint num="21" id="2757" />
+<TGConnectingPoint num="22" id="2758" />
+<TGConnectingPoint num="23" id="2759" />
+<TGConnectingPoint num="24" id="2760" />
+<TGConnectingPoint num="25" id="2761" />
+<TGConnectingPoint num="26" id="2762" />
+<TGConnectingPoint num="27" id="2763" />
+<TGConnectingPoint num="28" id="2764" />
+<TGConnectingPoint num="29" id="2765" />
+<TGConnectingPoint num="30" id="2766" />
+<TGConnectingPoint num="31" id="2767" />
+<TGConnectingPoint num="32" id="2768" />
+<TGConnectingPoint num="33" id="2769" />
+<TGConnectingPoint num="34" id="2770" />
+<TGConnectingPoint num="35" id="2771" />
+<TGConnectingPoint num="36" id="2772" />
+<TGConnectingPoint num="37" id="2773" />
+<TGConnectingPoint num="38" id="2774" />
+<TGConnectingPoint num="39" id="2775" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="2787" >
+<cdparam x="267" y="193" />
+<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INconconf()" />
+<TGConnectingPoint num="0" id="2777" />
+<TGConnectingPoint num="1" id="2778" />
+<TGConnectingPoint num="2" id="2779" />
+<TGConnectingPoint num="3" id="2780" />
+<TGConnectingPoint num="4" id="2781" />
+<TGConnectingPoint num="5" id="2782" />
+<TGConnectingPoint num="6" id="2783" />
+<TGConnectingPoint num="7" id="2784" />
+<TGConnectingPoint num="8" id="2785" />
+<TGConnectingPoint num="9" id="2786" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="2798" >
+<cdparam x="283" y="139" />
+<sizeparam width="42" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="CC()" />
+<TGConnectingPoint num="0" id="2788" />
+<TGConnectingPoint num="1" id="2789" />
+<TGConnectingPoint num="2" id="2790" />
+<TGConnectingPoint num="3" id="2791" />
+<TGConnectingPoint num="4" id="2792" />
+<TGConnectingPoint num="5" id="2793" />
+<TGConnectingPoint num="6" id="2794" />
+<TGConnectingPoint num="7" id="2795" />
+<TGConnectingPoint num="8" id="2796" />
+<TGConnectingPoint num="9" id="2797" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2839" >
+<cdparam x="246" y="58" />
+<sizeparam width="117" height="51" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="WAIT_FOR_CONF" />
+<TGConnectingPoint num="0" id="2799" />
+<TGConnectingPoint num="1" id="2800" />
+<TGConnectingPoint num="2" id="2801" />
+<TGConnectingPoint num="3" id="2802" />
+<TGConnectingPoint num="4" id="2803" />
+<TGConnectingPoint num="5" id="2804" />
+<TGConnectingPoint num="6" id="2805" />
+<TGConnectingPoint num="7" id="2806" />
+<TGConnectingPoint num="8" id="2807" />
+<TGConnectingPoint num="9" id="2808" />
+<TGConnectingPoint num="10" id="2809" />
+<TGConnectingPoint num="11" id="2810" />
+<TGConnectingPoint num="12" id="2811" />
+<TGConnectingPoint num="13" id="2812" />
+<TGConnectingPoint num="14" id="2813" />
+<TGConnectingPoint num="15" id="2814" />
+<TGConnectingPoint num="16" id="2815" />
+<TGConnectingPoint num="17" id="2816" />
+<TGConnectingPoint num="18" id="2817" />
+<TGConnectingPoint num="19" id="2818" />
+<TGConnectingPoint num="20" id="2819" />
+<TGConnectingPoint num="21" id="2820" />
+<TGConnectingPoint num="22" id="2821" />
+<TGConnectingPoint num="23" id="2822" />
+<TGConnectingPoint num="24" id="2823" />
+<TGConnectingPoint num="25" id="2824" />
+<TGConnectingPoint num="26" id="2825" />
+<TGConnectingPoint num="27" id="2826" />
+<TGConnectingPoint num="28" id="2827" />
+<TGConnectingPoint num="29" id="2828" />
+<TGConnectingPoint num="30" id="2829" />
+<TGConnectingPoint num="31" id="2830" />
+<TGConnectingPoint num="32" id="2831" />
+<TGConnectingPoint num="33" id="2832" />
+<TGConnectingPoint num="34" id="2833" />
+<TGConnectingPoint num="35" id="2834" />
+<TGConnectingPoint num="36" id="2835" />
+<TGConnectingPoint num="37" id="2836" />
+<TGConnectingPoint num="38" id="2837" />
+<TGConnectingPoint num="39" id="2838" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="2880" >
+<cdparam x="19" y="232" />
+<sizeparam width="137" height="52" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="WAIT_FOR_CONF" />
+<TGConnectingPoint num="0" id="2840" />
+<TGConnectingPoint num="1" id="2841" />
+<TGConnectingPoint num="2" id="2842" />
+<TGConnectingPoint num="3" id="2843" />
+<TGConnectingPoint num="4" id="2844" />
+<TGConnectingPoint num="5" id="2845" />
+<TGConnectingPoint num="6" id="2846" />
+<TGConnectingPoint num="7" id="2847" />
+<TGConnectingPoint num="8" id="2848" />
+<TGConnectingPoint num="9" id="2849" />
+<TGConnectingPoint num="10" id="2850" />
+<TGConnectingPoint num="11" id="2851" />
+<TGConnectingPoint num="12" id="2852" />
+<TGConnectingPoint num="13" id="2853" />
+<TGConnectingPoint num="14" id="2854" />
+<TGConnectingPoint num="15" id="2855" />
+<TGConnectingPoint num="16" id="2856" />
+<TGConnectingPoint num="17" id="2857" />
+<TGConnectingPoint num="18" id="2858" />
+<TGConnectingPoint num="19" id="2859" />
+<TGConnectingPoint num="20" id="2860" />
+<TGConnectingPoint num="21" id="2861" />
+<TGConnectingPoint num="22" id="2862" />
+<TGConnectingPoint num="23" id="2863" />
+<TGConnectingPoint num="24" id="2864" />
+<TGConnectingPoint num="25" id="2865" />
+<TGConnectingPoint num="26" id="2866" />
+<TGConnectingPoint num="27" id="2867" />
+<TGConnectingPoint num="28" id="2868" />
+<TGConnectingPoint num="29" id="2869" />
+<TGConnectingPoint num="30" id="2870" />
+<TGConnectingPoint num="31" id="2871" />
+<TGConnectingPoint num="32" id="2872" />
+<TGConnectingPoint num="33" id="2873" />
+<TGConnectingPoint num="34" id="2874" />
+<TGConnectingPoint num="35" id="2875" />
+<TGConnectingPoint num="36" id="2876" />
+<TGConnectingPoint num="37" id="2877" />
+<TGConnectingPoint num="38" id="2878" />
+<TGConnectingPoint num="39" id="2879" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="2891" >
+<cdparam x="70" y="186" />
+<sizeparam width="34" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="CR()" />
+<TGConnectingPoint num="0" id="2881" />
+<TGConnectingPoint num="1" id="2882" />
+<TGConnectingPoint num="2" id="2883" />
+<TGConnectingPoint num="3" id="2884" />
+<TGConnectingPoint num="4" id="2885" />
+<TGConnectingPoint num="5" id="2886" />
+<TGConnectingPoint num="6" id="2887" />
+<TGConnectingPoint num="7" id="2888" />
+<TGConnectingPoint num="8" id="2889" />
+<TGConnectingPoint num="9" id="2890" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="2902" >
+<cdparam x="49" y="138" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INconreq()" />
+<TGConnectingPoint num="0" id="2892" />
+<TGConnectingPoint num="1" id="2893" />
+<TGConnectingPoint num="2" id="2894" />
+<TGConnectingPoint num="3" id="2895" />
+<TGConnectingPoint num="4" id="2896" />
+<TGConnectingPoint num="5" id="2897" />
+<TGConnectingPoint num="6" id="2898" />
+<TGConnectingPoint num="7" id="2899" />
+<TGConnectingPoint num="8" id="2900" />
+<TGConnectingPoint num="9" id="2901" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2943" >
+<cdparam x="38" y="61" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="IDLE" />
+<TGConnectingPoint num="0" id="2903" />
+<TGConnectingPoint num="1" id="2904" />
+<TGConnectingPoint num="2" id="2905" />
+<TGConnectingPoint num="3" id="2906" />
+<TGConnectingPoint num="4" id="2907" />
+<TGConnectingPoint num="5" id="2908" />
+<TGConnectingPoint num="6" id="2909" />
+<TGConnectingPoint num="7" id="2910" />
+<TGConnectingPoint num="8" id="2911" />
+<TGConnectingPoint num="9" id="2912" />
+<TGConnectingPoint num="10" id="2913" />
+<TGConnectingPoint num="11" id="2914" />
+<TGConnectingPoint num="12" id="2915" />
+<TGConnectingPoint num="13" id="2916" />
+<TGConnectingPoint num="14" id="2917" />
+<TGConnectingPoint num="15" id="2918" />
+<TGConnectingPoint num="16" id="2919" />
+<TGConnectingPoint num="17" id="2920" />
+<TGConnectingPoint num="18" id="2921" />
+<TGConnectingPoint num="19" id="2922" />
+<TGConnectingPoint num="20" id="2923" />
+<TGConnectingPoint num="21" id="2924" />
+<TGConnectingPoint num="22" id="2925" />
+<TGConnectingPoint num="23" id="2926" />
+<TGConnectingPoint num="24" id="2927" />
+<TGConnectingPoint num="25" id="2928" />
+<TGConnectingPoint num="26" id="2929" />
+<TGConnectingPoint num="27" id="2930" />
+<TGConnectingPoint num="28" id="2931" />
+<TGConnectingPoint num="29" id="2932" />
+<TGConnectingPoint num="30" id="2933" />
+<TGConnectingPoint num="31" id="2934" />
+<TGConnectingPoint num="32" id="2935" />
+<TGConnectingPoint num="33" id="2936" />
+<TGConnectingPoint num="34" id="2937" />
+<TGConnectingPoint num="35" id="2938" />
+<TGConnectingPoint num="36" id="2939" />
+<TGConnectingPoint num="37" id="2940" />
+<TGConnectingPoint num="38" id="2941" />
+<TGConnectingPoint num="39" id="2942" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="2945" >
+<cdparam x="61" y="22" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2944" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="GroundCommunication" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="2952" >
+<cdparam x="86" y="48" />
+<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="2951" />
+<P1  x="86" y="48" id="3203" />
+<P2  x="87" y="72" id="3163" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2950" >
+<father id="2952" num="0" />
+<cdparam x="86" y="88" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2946" />
+<TGConnectingPoint num="1" id="2947" />
+<TGConnectingPoint num="2" id="2948" />
+<TGConnectingPoint num="3" id="2949" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2959" >
+<cdparam x="99" y="122" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="2958" />
+<P1  x="99" y="122" id="3192" />
+<P2  x="99" y="151" id="3151" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2957" >
+<father id="2959" num="0" />
+<cdparam x="99" y="162" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2953" />
+<TGConnectingPoint num="1" id="2954" />
+<TGConnectingPoint num="2" id="2955" />
+<TGConnectingPoint num="3" id="2956" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2966" >
+<cdparam x="99" y="181" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="2965" />
+<P1  x="99" y="181" id="3152" />
+<P2  x="99" y="207" id="3140" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2964" >
+<father id="2966" num="0" />
+<cdparam x="99" y="221" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2960" />
+<TGConnectingPoint num="1" id="2961" />
+<TGConnectingPoint num="2" id="2962" />
+<TGConnectingPoint num="3" id="2963" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2973" >
+<cdparam x="99" y="237" />
+<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="2972" />
+<P1  x="99" y="237" id="3141" />
+<P2  x="99" y="262" id="3100" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2971" >
+<father id="2973" num="0" />
+<cdparam x="99" y="277" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2967" />
+<TGConnectingPoint num="1" id="2968" />
+<TGConnectingPoint num="2" id="2969" />
+<TGConnectingPoint num="3" id="2970" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2980" >
+<cdparam x="327" y="119" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="2979" />
+<P1  x="327" y="119" id="3088" />
+<P2  x="327" y="145" id="3047" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2978" >
+<father id="2980" num="0" />
+<cdparam x="327" y="159" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2974" />
+<TGConnectingPoint num="1" id="2975" />
+<TGConnectingPoint num="2" id="2976" />
+<TGConnectingPoint num="3" id="2977" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2987" >
+<cdparam x="327" y="175" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="2986" />
+<P1  x="327" y="175" id="3048" />
+<P2  x="327" y="204" id="3036" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2985" >
+<father id="2987" num="0" />
+<cdparam x="327" y="215" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2981" />
+<TGConnectingPoint num="1" id="2982" />
+<TGConnectingPoint num="2" id="2983" />
+<TGConnectingPoint num="3" id="2984" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2994" >
+<cdparam x="327" y="234" />
+<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="2993" />
+<P1  x="327" y="234" id="3037" />
+<P2  x="327" y="261" id="2996" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2992" >
+<father id="2994" num="0" />
+<cdparam x="327" y="274" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2988" />
+<TGConnectingPoint num="1" id="2989" />
+<TGConnectingPoint num="2" id="2990" />
+<TGConnectingPoint num="3" id="2991" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5106" id="3035" >
+<cdparam x="277" y="261" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="IDLE" />
+<TGConnectingPoint num="0" id="2995" />
+<TGConnectingPoint num="1" id="2996" />
+<TGConnectingPoint num="2" id="2997" />
+<TGConnectingPoint num="3" id="2998" />
+<TGConnectingPoint num="4" id="2999" />
+<TGConnectingPoint num="5" id="3000" />
+<TGConnectingPoint num="6" id="3001" />
+<TGConnectingPoint num="7" id="3002" />
+<TGConnectingPoint num="8" id="3003" />
+<TGConnectingPoint num="9" id="3004" />
+<TGConnectingPoint num="10" id="3005" />
+<TGConnectingPoint num="11" id="3006" />
+<TGConnectingPoint num="12" id="3007" />
+<TGConnectingPoint num="13" id="3008" />
+<TGConnectingPoint num="14" id="3009" />
+<TGConnectingPoint num="15" id="3010" />
+<TGConnectingPoint num="16" id="3011" />
+<TGConnectingPoint num="17" id="3012" />
+<TGConnectingPoint num="18" id="3013" />
+<TGConnectingPoint num="19" id="3014" />
+<TGConnectingPoint num="20" id="3015" />
+<TGConnectingPoint num="21" id="3016" />
+<TGConnectingPoint num="22" id="3017" />
+<TGConnectingPoint num="23" id="3018" />
+<TGConnectingPoint num="24" id="3019" />
+<TGConnectingPoint num="25" id="3020" />
+<TGConnectingPoint num="26" id="3021" />
+<TGConnectingPoint num="27" id="3022" />
+<TGConnectingPoint num="28" id="3023" />
+<TGConnectingPoint num="29" id="3024" />
+<TGConnectingPoint num="30" id="3025" />
+<TGConnectingPoint num="31" id="3026" />
+<TGConnectingPoint num="32" id="3027" />
+<TGConnectingPoint num="33" id="3028" />
+<TGConnectingPoint num="34" id="3029" />
+<TGConnectingPoint num="35" id="3030" />
+<TGConnectingPoint num="36" id="3031" />
+<TGConnectingPoint num="37" id="3032" />
+<TGConnectingPoint num="38" id="3033" />
+<TGConnectingPoint num="39" id="3034" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="3046" >
+<cdparam x="310" y="209" />
+<sizeparam width="34" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="CC()" />
+<TGConnectingPoint num="0" id="3036" />
+<TGConnectingPoint num="1" id="3037" />
+<TGConnectingPoint num="2" id="3038" />
+<TGConnectingPoint num="3" id="3039" />
+<TGConnectingPoint num="4" id="3040" />
+<TGConnectingPoint num="5" id="3041" />
+<TGConnectingPoint num="6" id="3042" />
+<TGConnectingPoint num="7" id="3043" />
+<TGConnectingPoint num="8" id="3044" />
+<TGConnectingPoint num="9" id="3045" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="3057" >
+<cdparam x="285" y="150" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INconresp()" />
+<TGConnectingPoint num="0" id="3047" />
+<TGConnectingPoint num="1" id="3048" />
+<TGConnectingPoint num="2" id="3049" />
+<TGConnectingPoint num="3" id="3050" />
+<TGConnectingPoint num="4" id="3051" />
+<TGConnectingPoint num="5" id="3052" />
+<TGConnectingPoint num="6" id="3053" />
+<TGConnectingPoint num="7" id="3054" />
+<TGConnectingPoint num="8" id="3055" />
+<TGConnectingPoint num="9" id="3056" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3098" >
+<cdparam x="254" y="69" />
+<sizeparam width="119" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="WAIT_FOR_RESP" />
+<TGConnectingPoint num="0" id="3058" />
+<TGConnectingPoint num="1" id="3059" />
+<TGConnectingPoint num="2" id="3060" />
+<TGConnectingPoint num="3" id="3061" />
+<TGConnectingPoint num="4" id="3062" />
+<TGConnectingPoint num="5" id="3063" />
+<TGConnectingPoint num="6" id="3064" />
+<TGConnectingPoint num="7" id="3065" />
+<TGConnectingPoint num="8" id="3066" />
+<TGConnectingPoint num="9" id="3067" />
+<TGConnectingPoint num="10" id="3068" />
+<TGConnectingPoint num="11" id="3069" />
+<TGConnectingPoint num="12" id="3070" />
+<TGConnectingPoint num="13" id="3071" />
+<TGConnectingPoint num="14" id="3072" />
+<TGConnectingPoint num="15" id="3073" />
+<TGConnectingPoint num="16" id="3074" />
+<TGConnectingPoint num="17" id="3075" />
+<TGConnectingPoint num="18" id="3076" />
+<TGConnectingPoint num="19" id="3077" />
+<TGConnectingPoint num="20" id="3078" />
+<TGConnectingPoint num="21" id="3079" />
+<TGConnectingPoint num="22" id="3080" />
+<TGConnectingPoint num="23" id="3081" />
+<TGConnectingPoint num="24" id="3082" />
+<TGConnectingPoint num="25" id="3083" />
+<TGConnectingPoint num="26" id="3084" />
+<TGConnectingPoint num="27" id="3085" />
+<TGConnectingPoint num="28" id="3086" />
+<TGConnectingPoint num="29" id="3087" />
+<TGConnectingPoint num="30" id="3088" />
+<TGConnectingPoint num="31" id="3089" />
+<TGConnectingPoint num="32" id="3090" />
+<TGConnectingPoint num="33" id="3091" />
+<TGConnectingPoint num="34" id="3092" />
+<TGConnectingPoint num="35" id="3093" />
+<TGConnectingPoint num="36" id="3094" />
+<TGConnectingPoint num="37" id="3095" />
+<TGConnectingPoint num="38" id="3096" />
+<TGConnectingPoint num="39" id="3097" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3139" >
+<cdparam x="39" y="262" />
+<sizeparam width="121" height="49" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="WAIT_FOR_RESP" />
+<TGConnectingPoint num="0" id="3099" />
+<TGConnectingPoint num="1" id="3100" />
+<TGConnectingPoint num="2" id="3101" />
+<TGConnectingPoint num="3" id="3102" />
+<TGConnectingPoint num="4" id="3103" />
+<TGConnectingPoint num="5" id="3104" />
+<TGConnectingPoint num="6" id="3105" />
+<TGConnectingPoint num="7" id="3106" />
+<TGConnectingPoint num="8" id="3107" />
+<TGConnectingPoint num="9" id="3108" />
+<TGConnectingPoint num="10" id="3109" />
+<TGConnectingPoint num="11" id="3110" />
+<TGConnectingPoint num="12" id="3111" />
+<TGConnectingPoint num="13" id="3112" />
+<TGConnectingPoint num="14" id="3113" />
+<TGConnectingPoint num="15" id="3114" />
+<TGConnectingPoint num="16" id="3115" />
+<TGConnectingPoint num="17" id="3116" />
+<TGConnectingPoint num="18" id="3117" />
+<TGConnectingPoint num="19" id="3118" />
+<TGConnectingPoint num="20" id="3119" />
+<TGConnectingPoint num="21" id="3120" />
+<TGConnectingPoint num="22" id="3121" />
+<TGConnectingPoint num="23" id="3122" />
+<TGConnectingPoint num="24" id="3123" />
+<TGConnectingPoint num="25" id="3124" />
+<TGConnectingPoint num="26" id="3125" />
+<TGConnectingPoint num="27" id="3126" />
+<TGConnectingPoint num="28" id="3127" />
+<TGConnectingPoint num="29" id="3128" />
+<TGConnectingPoint num="30" id="3129" />
+<TGConnectingPoint num="31" id="3130" />
+<TGConnectingPoint num="32" id="3131" />
+<TGConnectingPoint num="33" id="3132" />
+<TGConnectingPoint num="34" id="3133" />
+<TGConnectingPoint num="35" id="3134" />
+<TGConnectingPoint num="36" id="3135" />
+<TGConnectingPoint num="37" id="3136" />
+<TGConnectingPoint num="38" id="3137" />
+<TGConnectingPoint num="39" id="3138" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="3150" >
+<cdparam x="65" y="212" />
+<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INconind()" />
+<TGConnectingPoint num="0" id="3140" />
+<TGConnectingPoint num="1" id="3141" />
+<TGConnectingPoint num="2" id="3142" />
+<TGConnectingPoint num="3" id="3143" />
+<TGConnectingPoint num="4" id="3144" />
+<TGConnectingPoint num="5" id="3145" />
+<TGConnectingPoint num="6" id="3146" />
+<TGConnectingPoint num="7" id="3147" />
+<TGConnectingPoint num="8" id="3148" />
+<TGConnectingPoint num="9" id="3149" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="3161" >
+<cdparam x="78" y="156" />
+<sizeparam width="42" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="CR()" />
+<TGConnectingPoint num="0" id="3151" />
+<TGConnectingPoint num="1" id="3152" />
+<TGConnectingPoint num="2" id="3153" />
+<TGConnectingPoint num="3" id="3154" />
+<TGConnectingPoint num="4" id="3155" />
+<TGConnectingPoint num="5" id="3156" />
+<TGConnectingPoint num="6" id="3157" />
+<TGConnectingPoint num="7" id="3158" />
+<TGConnectingPoint num="8" id="3159" />
+<TGConnectingPoint num="9" id="3160" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3202" >
+<cdparam x="37" y="72" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="IDLE" />
+<TGConnectingPoint num="0" id="3162" />
+<TGConnectingPoint num="1" id="3163" />
+<TGConnectingPoint num="2" id="3164" />
+<TGConnectingPoint num="3" id="3165" />
+<TGConnectingPoint num="4" id="3166" />
+<TGConnectingPoint num="5" id="3167" />
+<TGConnectingPoint num="6" id="3168" />
+<TGConnectingPoint num="7" id="3169" />
+<TGConnectingPoint num="8" id="3170" />
+<TGConnectingPoint num="9" id="3171" />
+<TGConnectingPoint num="10" id="3172" />
+<TGConnectingPoint num="11" id="3173" />
+<TGConnectingPoint num="12" id="3174" />
+<TGConnectingPoint num="13" id="3175" />
+<TGConnectingPoint num="14" id="3176" />
+<TGConnectingPoint num="15" id="3177" />
+<TGConnectingPoint num="16" id="3178" />
+<TGConnectingPoint num="17" id="3179" />
+<TGConnectingPoint num="18" id="3180" />
+<TGConnectingPoint num="19" id="3181" />
+<TGConnectingPoint num="20" id="3182" />
+<TGConnectingPoint num="21" id="3183" />
+<TGConnectingPoint num="22" id="3184" />
+<TGConnectingPoint num="23" id="3185" />
+<TGConnectingPoint num="24" id="3186" />
+<TGConnectingPoint num="25" id="3187" />
+<TGConnectingPoint num="26" id="3188" />
+<TGConnectingPoint num="27" id="3189" />
+<TGConnectingPoint num="28" id="3190" />
+<TGConnectingPoint num="29" id="3191" />
+<TGConnectingPoint num="30" id="3192" />
+<TGConnectingPoint num="31" id="3193" />
+<TGConnectingPoint num="32" id="3194" />
+<TGConnectingPoint num="33" id="3195" />
+<TGConnectingPoint num="34" id="3196" />
+<TGConnectingPoint num="35" id="3197" />
+<TGConnectingPoint num="36" id="3198" />
+<TGConnectingPoint num="37" id="3199" />
+<TGConnectingPoint num="38" id="3200" />
+<TGConnectingPoint num="39" id="3201" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="3204" >
+<cdparam x="79" y="28" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3203" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Controller" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="3217" >
+<cdparam x="153" y="198" />
+<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="3213" />
+<TGConnectingPoint num="1" id="3214" />
+<TGConnectingPoint num="2" id="3215" />
+<TGConnectingPoint num="3" id="3216" />
+<P1  x="153" y="198" id="3264" />
+<P2  x="261" y="114" id="3297" />
+<Point x="153" y="216" />
+<Point x="309" y="216" />
+<Point x="309" y="114" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3205" >
+<father id="3217" num="0" />
+<cdparam x="153" y="216" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3206" >
+<father id="3217" num="1" />
+<cdparam x="309" y="216" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3207" >
+<father id="3217" num="2" />
+<cdparam x="309" y="114" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3212" >
+<father id="3217" num="3" />
+<cdparam x="153" y="238" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3208" />
+<TGConnectingPoint num="1" id="3209" />
+<TGConnectingPoint num="2" id="3210" />
+<TGConnectingPoint num="3" id="3211" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3230" >
+<cdparam x="247" y="197" />
+<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="3226" />
+<TGConnectingPoint num="1" id="3227" />
+<TGConnectingPoint num="2" id="3228" />
+<TGConnectingPoint num="3" id="3229" />
+<P1  x="247" y="197" id="3253" />
+<P2  x="261" y="133" id="3287" />
+<Point x="247" y="207" />
+<Point x="298" y="207" />
+<Point x="298" y="133" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3218" >
+<father id="3230" num="0" />
+<cdparam x="247" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3219" >
+<father id="3230" num="1" />
+<cdparam x="298" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3220" >
+<father id="3230" num="2" />
+<cdparam x="298" y="133" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3225" >
+<father id="3230" num="3" />
+<cdparam x="247" y="237" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3221" />
+<TGConnectingPoint num="1" id="3222" />
+<TGConnectingPoint num="2" id="3223" />
+<TGConnectingPoint num="3" id="3224" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3237" >
+<cdparam x="186" y="62" />
+<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="3236" />
+<P1  x="186" y="62" id="3315" />
+<P2  x="211" y="96" id="3275" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3235" >
+<father id="3237" num="0" />
+<cdparam x="211" y="104" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3231" />
+<TGConnectingPoint num="1" id="3232" />
+<TGConnectingPoint num="2" id="3233" />
+<TGConnectingPoint num="3" id="3234" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3244" >
+<cdparam x="161" y="146" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="3243" />
+<P1  x="186" y="146" id="3288" />
+<P2  x="153" y="168" id="3263" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3242" >
+<father id="3244" num="0" />
+<cdparam x="161" y="186" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3238" />
+<TGConnectingPoint num="1" id="3239" />
+<TGConnectingPoint num="2" id="3240" />
+<TGConnectingPoint num="3" id="3241" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3251" >
+<cdparam x="211" y="201" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="3250" />
+<P1  x="236" y="146" id="3289" />
+<P2  x="247" y="167" id="3252" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3249" >
+<father id="3251" num="0" />
+<cdparam x="211" y="241" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3245" />
+<TGConnectingPoint num="1" id="3246" />
+<TGConnectingPoint num="2" id="3247" />
+<TGConnectingPoint num="3" id="3248" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="3262" >
+<cdparam x="209" y="172" />
+<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INconresp()" />
+<TGConnectingPoint num="0" id="3252" />
+<TGConnectingPoint num="1" id="3253" />
+<TGConnectingPoint num="2" id="3254" />
+<TGConnectingPoint num="3" id="3255" />
+<TGConnectingPoint num="4" id="3256" />
+<TGConnectingPoint num="5" id="3257" />
+<TGConnectingPoint num="6" id="3258" />
+<TGConnectingPoint num="7" id="3259" />
+<TGConnectingPoint num="8" id="3260" />
+<TGConnectingPoint num="9" id="3261" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="3273" >
+<cdparam x="115" y="173" />
+<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INconind()" />
+<TGConnectingPoint num="0" id="3263" />
+<TGConnectingPoint num="1" id="3264" />
+<TGConnectingPoint num="2" id="3265" />
+<TGConnectingPoint num="3" id="3266" />
+<TGConnectingPoint num="4" id="3267" />
+<TGConnectingPoint num="5" id="3268" />
+<TGConnectingPoint num="6" id="3269" />
+<TGConnectingPoint num="7" id="3270" />
+<TGConnectingPoint num="8" id="3271" />
+<TGConnectingPoint num="9" id="3272" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3314" >
+<cdparam x="161" y="96" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="ACTIVE" />
+<TGConnectingPoint num="0" id="3274" />
+<TGConnectingPoint num="1" id="3275" />
+<TGConnectingPoint num="2" id="3276" />
+<TGConnectingPoint num="3" id="3277" />
+<TGConnectingPoint num="4" id="3278" />
+<TGConnectingPoint num="5" id="3279" />
+<TGConnectingPoint num="6" id="3280" />
+<TGConnectingPoint num="7" id="3281" />
+<TGConnectingPoint num="8" id="3282" />
+<TGConnectingPoint num="9" id="3283" />
+<TGConnectingPoint num="10" id="3284" />
+<TGConnectingPoint num="11" id="3285" />
+<TGConnectingPoint num="12" id="3286" />
+<TGConnectingPoint num="13" id="3287" />
+<TGConnectingPoint num="14" id="3288" />
+<TGConnectingPoint num="15" id="3289" />
+<TGConnectingPoint num="16" id="3290" />
+<TGConnectingPoint num="17" id="3291" />
+<TGConnectingPoint num="18" id="3292" />
+<TGConnectingPoint num="19" id="3293" />
+<TGConnectingPoint num="20" id="3294" />
+<TGConnectingPoint num="21" id="3295" />
+<TGConnectingPoint num="22" id="3296" />
+<TGConnectingPoint num="23" id="3297" />
+<TGConnectingPoint num="24" id="3298" />
+<TGConnectingPoint num="25" id="3299" />
+<TGConnectingPoint num="26" id="3300" />
+<TGConnectingPoint num="27" id="3301" />
+<TGConnectingPoint num="28" id="3302" />
+<TGConnectingPoint num="29" id="3303" />
+<TGConnectingPoint num="30" id="3304" />
+<TGConnectingPoint num="31" id="3305" />
+<TGConnectingPoint num="32" id="3306" />
+<TGConnectingPoint num="33" id="3307" />
+<TGConnectingPoint num="34" id="3308" />
+<TGConnectingPoint num="35" id="3309" />
+<TGConnectingPoint num="36" id="3310" />
+<TGConnectingPoint num="37" id="3311" />
+<TGConnectingPoint num="38" id="3312" />
+<TGConnectingPoint num="39" id="3313" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="3316" >
+<cdparam x="179" y="42" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3315" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Pilot" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="3329" >
+<cdparam x="79" y="166" />
+<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="3325" />
+<TGConnectingPoint num="1" id="3326" />
+<TGConnectingPoint num="2" id="3327" />
+<TGConnectingPoint num="3" id="3328" />
+<P1  x="79" y="166" id="3376" />
+<P2  x="216" y="78" id="3399" />
+<Point x="79" y="189" />
+<Point x="341" y="189" />
+<Point x="341" y="78" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3317" >
+<father id="3329" num="0" />
+<cdparam x="79" y="189" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3318" >
+<father id="3329" num="1" />
+<cdparam x="341" y="189" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3319" >
+<father id="3329" num="2" />
+<cdparam x="341" y="78" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3324" >
+<father id="3329" num="3" />
+<cdparam x="79" y="206" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3320" />
+<TGConnectingPoint num="1" id="3321" />
+<TGConnectingPoint num="2" id="3322" />
+<TGConnectingPoint num="3" id="3323" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3342" >
+<cdparam x="177" y="166" />
+<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="3338" />
+<TGConnectingPoint num="1" id="3339" />
+<TGConnectingPoint num="2" id="3340" />
+<TGConnectingPoint num="3" id="3341" />
+<P1  x="177" y="166" id="3365" />
+<P2  x="216" y="91" id="3392" />
+<Point x="177" y="183" />
+<Point x="330" y="183" />
+<Point x="330" y="91" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3330" >
+<father id="3342" num="0" />
+<cdparam x="177" y="183" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3331" >
+<father id="3342" num="1" />
+<cdparam x="330" y="183" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3332" >
+<father id="3342" num="2" />
+<cdparam x="330" y="91" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3337" >
+<father id="3342" num="3" />
+<cdparam x="177" y="206" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3333" />
+<TGConnectingPoint num="1" id="3334" />
+<TGConnectingPoint num="2" id="3335" />
+<TGConnectingPoint num="3" id="3336" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3349" >
+<cdparam x="165" y="44" />
+<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="3348" />
+<P1  x="165" y="44" id="3386" />
+<P2  x="166" y="66" id="3389" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3347" >
+<father id="3349" num="0" />
+<cdparam x="165" y="84" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3343" />
+<TGConnectingPoint num="1" id="3344" />
+<TGConnectingPoint num="2" id="3345" />
+<TGConnectingPoint num="3" id="3346" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3356" >
+<cdparam x="178" y="116" />
+<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="3355" />
+<P1  x="128" y="116" id="3416" />
+<P2  x="79" y="136" id="3375" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3354" >
+<father id="3356" num="0" />
+<cdparam x="178" y="156" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3350" />
+<TGConnectingPoint num="1" id="3351" />
+<TGConnectingPoint num="2" id="3352" />
+<TGConnectingPoint num="3" id="3353" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3363" >
+<cdparam x="178" y="168" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="3362" />
+<P1  x="166" y="116" id="3394" />
+<P2  x="177" y="136" id="3364" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3361" >
+<father id="3363" num="0" />
+<cdparam x="178" y="208" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3357" />
+<TGConnectingPoint num="1" id="3358" />
+<TGConnectingPoint num="2" id="3359" />
+<TGConnectingPoint num="3" id="3360" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="3374" >
+<cdparam x="136" y="141" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INconconf()" />
+<TGConnectingPoint num="0" id="3364" />
+<TGConnectingPoint num="1" id="3365" />
+<TGConnectingPoint num="2" id="3366" />
+<TGConnectingPoint num="3" id="3367" />
+<TGConnectingPoint num="4" id="3368" />
+<TGConnectingPoint num="5" id="3369" />
+<TGConnectingPoint num="6" id="3370" />
+<TGConnectingPoint num="7" id="3371" />
+<TGConnectingPoint num="8" id="3372" />
+<TGConnectingPoint num="9" id="3373" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="3385" >
+<cdparam x="44" y="141" />
+<sizeparam width="70" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INconreq()" />
+<TGConnectingPoint num="0" id="3375" />
+<TGConnectingPoint num="1" id="3376" />
+<TGConnectingPoint num="2" id="3377" />
+<TGConnectingPoint num="3" id="3378" />
+<TGConnectingPoint num="4" id="3379" />
+<TGConnectingPoint num="5" id="3380" />
+<TGConnectingPoint num="6" id="3381" />
+<TGConnectingPoint num="7" id="3382" />
+<TGConnectingPoint num="8" id="3383" />
+<TGConnectingPoint num="9" id="3384" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="3387" >
+<cdparam x="158" y="24" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3386" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3428" >
+<cdparam x="116" y="66" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="ACTIVE" />
+<TGConnectingPoint num="0" id="3388" />
+<TGConnectingPoint num="1" id="3389" />
+<TGConnectingPoint num="2" id="3390" />
+<TGConnectingPoint num="3" id="3391" />
+<TGConnectingPoint num="4" id="3392" />
+<TGConnectingPoint num="5" id="3393" />
+<TGConnectingPoint num="6" id="3394" />
+<TGConnectingPoint num="7" id="3395" />
+<TGConnectingPoint num="8" id="3396" />
+<TGConnectingPoint num="9" id="3397" />
+<TGConnectingPoint num="10" id="3398" />
+<TGConnectingPoint num="11" id="3399" />
+<TGConnectingPoint num="12" id="3400" />
+<TGConnectingPoint num="13" id="3401" />
+<TGConnectingPoint num="14" id="3402" />
+<TGConnectingPoint num="15" id="3403" />
+<TGConnectingPoint num="16" id="3404" />
+<TGConnectingPoint num="17" id="3405" />
+<TGConnectingPoint num="18" id="3406" />
+<TGConnectingPoint num="19" id="3407" />
+<TGConnectingPoint num="20" id="3408" />
+<TGConnectingPoint num="21" id="3409" />
+<TGConnectingPoint num="22" id="3410" />
+<TGConnectingPoint num="23" id="3411" />
+<TGConnectingPoint num="24" id="3412" />
+<TGConnectingPoint num="25" id="3413" />
+<TGConnectingPoint num="26" id="3414" />
+<TGConnectingPoint num="27" id="3415" />
+<TGConnectingPoint num="28" id="3416" />
+<TGConnectingPoint num="29" id="3417" />
+<TGConnectingPoint num="30" id="3418" />
+<TGConnectingPoint num="31" id="3419" />
+<TGConnectingPoint num="32" id="3420" />
+<TGConnectingPoint num="33" id="3421" />
+<TGConnectingPoint num="34" id="3422" />
+<TGConnectingPoint num="35" id="3423" />
+<TGConnectingPoint num="36" id="3424" />
+<TGConnectingPoint num="37" id="3425" />
+<TGConnectingPoint num="38" id="3426" />
+<TGConnectingPoint num="39" id="3427" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="AVATAR Design" nameTab="Design_lossy" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<Validated value="OnBoardCommunication;GroundCommunication;Controller;Pilot;" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="3434" >
+<cdparam x="117" y="266" />
+<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="3431" />
+<TGConnectingPoint num="1" id="3432" />
+<TGConnectingPoint num="2" id="3433" />
+<P1  x="118" y="320" id="3493" />
+<P2  x="463" y="311" id="3519" />
+<Point x="118" y="400" />
+<Point x="462" y="400" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<isd value="in CR()" />
+<isd value="in DR()" />
+<oso value="out CR()" />
+<oso value="out DR()" />
+<FIFOType asynchronous="true" size="1" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR><SUBCOMPONENT type="-1" id="3429" >
+<father id="3434" num="0" />
+<cdparam x="118" y="400" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3430" >
+<father id="3434" num="1" />
+<cdparam x="462" y="400" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5002" id="3440" >
+<cdparam x="158" y="266" />
+<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="3437" />
+<TGConnectingPoint num="1" id="3438" />
+<TGConnectingPoint num="2" id="3439" />
+<P1  x="161" y="320" id="3485" />
+<P2  x="424" y="311" id="3510" />
+<Point x="161" y="352" />
+<Point x="423" y="352" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in CC()" />
+<osd value="out CC()" />
+<FIFOType asynchronous="true" size="1" blocking="false" private="true" broadcast="false" lossy="true" />
+</extraparam>
+</CONNECTOR><SUBCOMPONENT type="-1" id="3435" >
+<father id="3440" num="0" />
+<cdparam x="161" y="352" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="3436" >
+<father id="3440" num="1" />
+<cdparam x="423" y="352" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5002" id="3442" >
+<cdparam x="449" y="116" />
+<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="3441" />
+<P1  x="423" y="118" id="3535" />
+<P2  x="424" y="134" id="3505" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in INconind()" />
+<iso value="in INerror_ground()" />
+<osd value="out INconind()" />
+<osd value="out INerror_ground()" />
+<isd value="in INconresp()" />
+<oso value="out INconresp()" />
+<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="3444" >
+<cdparam x="145" y="116" />
+<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="3443" />
+<P1  x="161" y="117" id="3560" />
+<P2  x="161" y="138" id="3480" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in INconconf()" />
+<iso value="in INerror()" />
+<osd value="out INconconf()" />
+<osd value="out INerror()" />
+<isd value="in INconreq()" />
+<oso value="out INconreq()" />
+<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="301" id="3461" >
+<cdparam x="204" y="333" />
+<sizeparam width="207" height="15" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="  CC may be lost (lossy channel).
+" />
+<TGConnectingPoint num="0" id="3445" />
+<TGConnectingPoint num="1" id="3446" />
+<TGConnectingPoint num="2" id="3447" />
+<TGConnectingPoint num="3" id="3448" />
+<TGConnectingPoint num="4" id="3449" />
+<TGConnectingPoint num="5" id="3450" />
+<TGConnectingPoint num="6" id="3451" />
+<TGConnectingPoint num="7" id="3452" />
+<TGConnectingPoint num="8" id="3453" />
+<TGConnectingPoint num="9" id="3454" />
+<TGConnectingPoint num="10" id="3455" />
+<TGConnectingPoint num="11" id="3456" />
+<TGConnectingPoint num="12" id="3457" />
+<TGConnectingPoint num="13" id="3458" />
+<TGConnectingPoint num="14" id="3459" />
+<TGConnectingPoint num="15" id="3460" />
+<extraparam>
+<Line value="  CC may be lost (lossy channel)." />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="3478" >
+<cdparam x="234" y="380" />
+<sizeparam width="194" height="15" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="  CRs and DRs will not be lost.
+" />
+<TGConnectingPoint num="0" id="3462" />
+<TGConnectingPoint num="1" id="3463" />
+<TGConnectingPoint num="2" id="3464" />
+<TGConnectingPoint num="3" id="3465" />
+<TGConnectingPoint num="4" id="3466" />
+<TGConnectingPoint num="5" id="3467" />
+<TGConnectingPoint num="6" id="3468" />
+<TGConnectingPoint num="7" id="3469" />
+<TGConnectingPoint num="8" id="3470" />
+<TGConnectingPoint num="9" id="3471" />
+<TGConnectingPoint num="10" id="3472" />
+<TGConnectingPoint num="11" id="3473" />
+<TGConnectingPoint num="12" id="3474" />
+<TGConnectingPoint num="13" id="3475" />
+<TGConnectingPoint num="14" id="3476" />
+<TGConnectingPoint num="15" id="3477" />
+<extraparam>
+<Line value="  CRs and DRs will not be lost." />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="3503" >
+<cdparam x="75" y="138" />
+<sizeparam width="172" height="182" 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="OnBoardCommunication" />
+<TGConnectingPoint num="0" id="3479" />
+<TGConnectingPoint num="1" id="3480" />
+<TGConnectingPoint num="2" id="3481" />
+<TGConnectingPoint num="3" id="3482" />
+<TGConnectingPoint num="4" id="3483" />
+<TGConnectingPoint num="5" id="3484" />
+<TGConnectingPoint num="6" id="3485" />
+<TGConnectingPoint num="7" id="3486" />
+<TGConnectingPoint num="8" id="3487" />
+<TGConnectingPoint num="9" id="3488" />
+<TGConnectingPoint num="10" id="3489" />
+<TGConnectingPoint num="11" id="3490" />
+<TGConnectingPoint num="12" id="3491" />
+<TGConnectingPoint num="13" id="3492" />
+<TGConnectingPoint num="14" id="3493" />
+<TGConnectingPoint num="15" id="3494" />
+<TGConnectingPoint num="16" id="3495" />
+<TGConnectingPoint num="17" id="3496" />
+<TGConnectingPoint num="18" id="3497" />
+<TGConnectingPoint num="19" id="3498" />
+<TGConnectingPoint num="20" id="3499" />
+<TGConnectingPoint num="21" id="3500" />
+<TGConnectingPoint num="22" id="3501" />
+<TGConnectingPoint num="23" id="3502" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="ATST1" value="" type="9" typeOther="" />
+<Attribute access="0" id="retransmissionCounter" value="" type="8" typeOther="" />
+<Attribute access="0" id="maxRetransmissions" value="2" type="8" typeOther="" />
+<Signal value="in INconreq()" attached="true" />
+<Signal value="out INconconf()" attached="true" />
+<Signal value="out INerror()" attached="true" />
+<Signal value="out CR()" attached="true" />
+<Signal value="in CC()" attached="true" />
+<Signal value="out DR()" attached="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="3528" >
+<cdparam x="346" y="134" />
+<sizeparam width="157" height="177" 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="GroundCommunication" />
+<TGConnectingPoint num="0" id="3504" />
+<TGConnectingPoint num="1" id="3505" />
+<TGConnectingPoint num="2" id="3506" />
+<TGConnectingPoint num="3" id="3507" />
+<TGConnectingPoint num="4" id="3508" />
+<TGConnectingPoint num="5" id="3509" />
+<TGConnectingPoint num="6" id="3510" />
+<TGConnectingPoint num="7" id="3511" />
+<TGConnectingPoint num="8" id="3512" />
+<TGConnectingPoint num="9" id="3513" />
+<TGConnectingPoint num="10" id="3514" />
+<TGConnectingPoint num="11" id="3515" />
+<TGConnectingPoint num="12" id="3516" />
+<TGConnectingPoint num="13" id="3517" />
+<TGConnectingPoint num="14" id="3518" />
+<TGConnectingPoint num="15" id="3519" />
+<TGConnectingPoint num="16" id="3520" />
+<TGConnectingPoint num="17" id="3521" />
+<TGConnectingPoint num="18" id="3522" />
+<TGConnectingPoint num="19" id="3523" />
+<TGConnectingPoint num="20" id="3524" />
+<TGConnectingPoint num="21" id="3525" />
+<TGConnectingPoint num="22" id="3526" />
+<TGConnectingPoint num="23" id="3527" />
+<extraparam>
+<CryptoBlock value="false" />
+<Signal value="in CR()" attached="true" />
+<Signal value="out CC()" attached="true" />
+<Signal value="out INconind()" attached="true" />
+<Signal value="in INconresp()" attached="true" />
+<Signal value="out INerror_ground()" attached="true" />
+<Signal value="in DR()" attached="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="3553" >
+<cdparam x="346" y="10" />
+<sizeparam width="155" height="108" 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="Controller" />
+<TGConnectingPoint num="0" id="3529" />
+<TGConnectingPoint num="1" id="3530" />
+<TGConnectingPoint num="2" id="3531" />
+<TGConnectingPoint num="3" id="3532" />
+<TGConnectingPoint num="4" id="3533" />
+<TGConnectingPoint num="5" id="3534" />
+<TGConnectingPoint num="6" id="3535" />
+<TGConnectingPoint num="7" id="3536" />
+<TGConnectingPoint num="8" id="3537" />
+<TGConnectingPoint num="9" id="3538" />
+<TGConnectingPoint num="10" id="3539" />
+<TGConnectingPoint num="11" id="3540" />
+<TGConnectingPoint num="12" id="3541" />
+<TGConnectingPoint num="13" id="3542" />
+<TGConnectingPoint num="14" id="3543" />
+<TGConnectingPoint num="15" id="3544" />
+<TGConnectingPoint num="16" id="3545" />
+<TGConnectingPoint num="17" id="3546" />
+<TGConnectingPoint num="18" id="3547" />
+<TGConnectingPoint num="19" id="3548" />
+<TGConnectingPoint num="20" id="3549" />
+<TGConnectingPoint num="21" id="3550" />
+<TGConnectingPoint num="22" id="3551" />
+<TGConnectingPoint num="23" id="3552" />
+<extraparam>
+<CryptoBlock value="false" />
+<Signal value="in INconind()" attached="true" />
+<Signal value="out INconresp()" attached="true" />
+<Signal value="in INerror_ground()" attached="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="3578" >
+<cdparam x="76" y="13" />
+<sizeparam width="171" height="104" 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="Pilot" />
+<TGConnectingPoint num="0" id="3554" />
+<TGConnectingPoint num="1" id="3555" />
+<TGConnectingPoint num="2" id="3556" />
+<TGConnectingPoint num="3" id="3557" />
+<TGConnectingPoint num="4" id="3558" />
+<TGConnectingPoint num="5" id="3559" />
+<TGConnectingPoint num="6" id="3560" />
+<TGConnectingPoint num="7" id="3561" />
+<TGConnectingPoint num="8" id="3562" />
+<TGConnectingPoint num="9" id="3563" />
+<TGConnectingPoint num="10" id="3564" />
+<TGConnectingPoint num="11" id="3565" />
+<TGConnectingPoint num="12" id="3566" />
+<TGConnectingPoint num="13" id="3567" />
+<TGConnectingPoint num="14" id="3568" />
+<TGConnectingPoint num="15" id="3569" />
+<TGConnectingPoint num="16" id="3570" />
+<TGConnectingPoint num="17" id="3571" />
+<TGConnectingPoint num="18" id="3572" />
+<TGConnectingPoint num="19" id="3573" />
+<TGConnectingPoint num="20" id="3574" />
+<TGConnectingPoint num="21" id="3575" />
+<TGConnectingPoint num="22" id="3576" />
+<TGConnectingPoint num="23" id="3577" />
+<extraparam>
+<CryptoBlock value="false" />
+<Signal value="out INconreq()" attached="true" />
+<Signal value="in INconconf()" attached="true" />
+<Signal value="in INerror()" attached="true" />
+</extraparam>
+</COMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="OnBoardCommunication" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="3585" >
+<cdparam x="473" y="237" />
+<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="3584" />
+<P1  x="472" y="233" id="3760" />
+<P2  x="472" y="260" id="3743" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3583" >
+<father id="3585" num="0" />
+<cdparam x="476" y="245" />
+<sizeparam width="35" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3579" />
+<TGConnectingPoint num="1" id="3580" />
+<TGConnectingPoint num="2" id="3581" />
+<TGConnectingPoint num="3" id="3582" />
+<extraparam>
+<guard value="[ else]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3592" >
+<cdparam x="473" y="165" />
+<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="3591" />
+<P1  x="473" y="165" id="3793" />
+<P2  x="472" y="183" id="3754" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3590" >
+<father id="3592" num="0" />
+<cdparam x="473" y="205" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3586" />
+<TGConnectingPoint num="1" id="3587" />
+<TGConnectingPoint num="2" id="3588" />
+<TGConnectingPoint num="3" id="3589" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3599" >
+<cdparam x="630" y="229" />
+<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="3598" />
+<P1  x="619" y="228" id="3771" />
+<P2  x="619" y="248" id="3885" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3597" >
+<father id="3599" num="0" />
+<cdparam x="630" y="269" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3593" />
+<TGConnectingPoint num="1" id="3594" />
+<TGConnectingPoint num="2" id="3595" />
+<TGConnectingPoint num="3" id="3596" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3606" >
+<cdparam x="619" y="174" />
+<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="3605" />
+<P1  x="619" y="174" id="3897" />
+<P2  x="619" y="198" id="3770" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3604" >
+<father id="3606" num="0" />
+<cdparam x="619" y="214" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3600" />
+<TGConnectingPoint num="1" id="3601" />
+<TGConnectingPoint num="2" id="3602" />
+<TGConnectingPoint num="3" id="3603" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3613" >
+<cdparam x="94" y="283" />
+<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="3612" />
+<P1  x="99" y="284" id="3782" />
+<P2  x="100" y="299" id="3989" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3611" >
+<father id="3613" num="0" />
+<cdparam x="94" y="323" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3607" />
+<TGConnectingPoint num="1" id="3608" />
+<TGConnectingPoint num="2" id="3609" />
+<TGConnectingPoint num="3" id="3610" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3620" >
+<cdparam x="98" y="235" />
+<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="3619" />
+<P1  x="98" y="235" id="3833" />
+<P2  x="99" y="254" id="3781" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3618" >
+<father id="3620" num="0" />
+<cdparam x="98" y="275" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3614" />
+<TGConnectingPoint num="1" id="3615" />
+<TGConnectingPoint num="2" id="3616" />
+<TGConnectingPoint num="3" id="3617" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3627" >
+<cdparam x="635" y="109" />
+<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="3626" />
+<P1  x="532" y="109" id="3935" />
+<P2  x="473" y="135" id="3792" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3625" >
+<father id="3627" num="0" />
+<cdparam x="635" y="149" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3621" />
+<TGConnectingPoint num="1" id="3622" />
+<TGConnectingPoint num="2" id="3623" />
+<TGConnectingPoint num="3" id="3624" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3634" >
+<cdparam x="86" y="162" />
+<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="3633" />
+<P1  x="86" y="162" id="4001" />
+<P2  x="86" y="193" id="3804" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3632" >
+<father id="3634" num="0" />
+<cdparam x="93" y="175" />
+<sizeparam width="155" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3628" />
+<TGConnectingPoint num="1" id="3629" />
+<TGConnectingPoint num="2" id="3630" />
+<TGConnectingPoint num="3" id="3631" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="retransmissionCounter = 0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3641" >
+<cdparam x="576" y="109" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="3640" />
+<P1  x="619" y="109" id="3938" />
+<P2  x="619" y="144" id="3896" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3639" >
+<father id="3641" num="0" />
+<cdparam x="576" y="151" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3635" />
+<TGConnectingPoint num="1" id="3636" />
+<TGConnectingPoint num="2" id="3637" />
+<TGConnectingPoint num="3" id="3638" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3648" >
+<cdparam x="85" y="210" />
+<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="3647" />
+<P1  x="100" y="329" id="3990" />
+<P2  x="100" y="351" id="3949" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3646" >
+<father id="3648" num="0" />
+<cdparam x="85" y="250" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3642" />
+<TGConnectingPoint num="1" id="3643" />
+<TGConnectingPoint num="2" id="3644" />
+<TGConnectingPoint num="3" id="3645" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3655" >
+<cdparam x="86" y="110" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="3654" />
+<P1  x="86" y="110" id="4017" />
+<P2  x="86" y="132" id="4000" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3653" >
+<father id="3655" num="0" />
+<cdparam x="86" y="150" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3649" />
+<TGConnectingPoint num="1" id="3650" />
+<TGConnectingPoint num="2" id="3651" />
+<TGConnectingPoint num="3" id="3652" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3662" >
+<cdparam x="80" y="37" />
+<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="3661" />
+<P1  x="67" y="36" id="4052" />
+<P2  x="86" y="60" id="4012" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3660" >
+<father id="3662" num="0" />
+<cdparam x="82" y="38" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3656" />
+<TGConnectingPoint num="1" id="3657" />
+<TGConnectingPoint num="2" id="3658" />
+<TGConnectingPoint num="3" id="3659" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3669" >
+<cdparam x="619" y="278" />
+<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="3668" />
+<P1  x="619" y="278" id="3886" />
+<P2  x="619" y="302" id="3845" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3667" >
+<father id="3669" num="0" />
+<cdparam x="619" y="318" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3663" />
+<TGConnectingPoint num="1" id="3664" />
+<TGConnectingPoint num="2" id="3665" />
+<TGConnectingPoint num="3" id="3666" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3676" >
+<cdparam x="286" y="212" />
+<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="3675" />
+<P1  x="447" y="208" id="3755" />
+<P2  x="138" y="208" id="3826" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3674" >
+<father id="3676" num="0" />
+<cdparam x="154" y="206" />
+<sizeparam width="302" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3670" />
+<TGConnectingPoint num="1" id="3671" />
+<TGConnectingPoint num="2" id="3672" />
+<TGConnectingPoint num="3" id="3673" />
+<extraparam>
+<guard value="[ retransmissionCounter &lt; maxRetransmissions]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="retransmissionCounter = retransmissionCounter + 1" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3683" >
+<cdparam x="473" 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="3682" />
+<P1  x="472" y="290" id="3744" />
+<P2  x="473" y="308" id="3691" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3681" >
+<father id="3683" num="0" />
+<cdparam x="466" y="297" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3677" />
+<TGConnectingPoint num="1" id="3678" />
+<TGConnectingPoint num="2" id="3679" />
+<TGConnectingPoint num="3" id="3680" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3690" >
+<cdparam x="459" y="334" />
+<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="3689" />
+<P1  x="473" y="338" id="3692" />
+<P2  x="473" y="366" id="3719" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3688" >
+<father id="3690" num="0" />
+<cdparam x="459" y="350" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3684" />
+<TGConnectingPoint num="1" id="3685" />
+<TGConnectingPoint num="2" id="3686" />
+<TGConnectingPoint num="3" id="3687" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="3701" >
+<cdparam x="456" y="313" />
+<sizeparam width="35" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="DR()" />
+<TGConnectingPoint num="0" id="3691" />
+<TGConnectingPoint num="1" id="3692" />
+<TGConnectingPoint num="2" id="3693" />
+<TGConnectingPoint num="3" id="3694" />
+<TGConnectingPoint num="4" id="3695" />
+<TGConnectingPoint num="5" id="3696" />
+<TGConnectingPoint num="6" id="3697" />
+<TGConnectingPoint num="7" id="3698" />
+<TGConnectingPoint num="8" id="3699" />
+<TGConnectingPoint num="9" id="3700" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3742" >
+<cdparam x="436" y="366" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="ERROR" />
+<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" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="3753" >
+<cdparam x="443" y="265" />
+<sizeparam width="59" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INerror()" />
+<TGConnectingPoint num="0" id="3743" />
+<TGConnectingPoint num="1" id="3744" />
+<TGConnectingPoint num="2" id="3745" />
+<TGConnectingPoint num="3" id="3746" />
+<TGConnectingPoint num="4" id="3747" />
+<TGConnectingPoint num="5" id="3748" />
+<TGConnectingPoint num="6" id="3749" />
+<TGConnectingPoint num="7" id="3750" />
+<TGConnectingPoint num="8" id="3751" />
+<TGConnectingPoint num="9" id="3752" />
+</COMPONENT>
+
+<COMPONENT type="5107" id="3769" >
+<cdparam x="457" y="193" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="3754" />
+<TGConnectingPoint num="1" id="3755" />
+<TGConnectingPoint num="2" id="3756" />
+<TGConnectingPoint num="3" id="3757" />
+<TGConnectingPoint num="4" id="3758" />
+<TGConnectingPoint num="5" id="3759" />
+<TGConnectingPoint num="6" id="3760" />
+<TGConnectingPoint num="7" id="3761" />
+<TGConnectingPoint num="8" id="3762" />
+<TGConnectingPoint num="9" id="3763" />
+<TGConnectingPoint num="10" id="3764" />
+<TGConnectingPoint num="11" id="3765" />
+<TGConnectingPoint num="12" id="3766" />
+<TGConnectingPoint num="13" id="3767" />
+<TGConnectingPoint num="14" id="3768" />
+</COMPONENT>
+
+<COMPONENT type="5110" id="3780" >
+<cdparam x="577" y="203" />
+<sizeparam width="85" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Reset timer" value="reset(ATST1)" />
+<TGConnectingPoint num="0" id="3770" />
+<TGConnectingPoint num="1" id="3771" />
+<TGConnectingPoint num="2" id="3772" />
+<TGConnectingPoint num="3" id="3773" />
+<TGConnectingPoint num="4" id="3774" />
+<TGConnectingPoint num="5" id="3775" />
+<TGConnectingPoint num="6" id="3776" />
+<TGConnectingPoint num="7" id="3777" />
+<TGConnectingPoint num="8" id="3778" />
+<TGConnectingPoint num="9" id="3779" />
+</COMPONENT>
+
+<COMPONENT type="5109" id="3791" >
+<cdparam x="36" y="259" />
+<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Set timer" value="setTimer(ATST1,10)" />
+<TGConnectingPoint num="0" id="3781" />
+<TGConnectingPoint num="1" id="3782" />
+<TGConnectingPoint num="2" id="3783" />
+<TGConnectingPoint num="3" id="3784" />
+<TGConnectingPoint num="4" id="3785" />
+<TGConnectingPoint num="5" id="3786" />
+<TGConnectingPoint num="6" id="3787" />
+<TGConnectingPoint num="7" id="3788" />
+<TGConnectingPoint num="8" id="3789" />
+<TGConnectingPoint num="9" id="3790" />
+</COMPONENT>
+
+<COMPONENT type="5111" id="3802" >
+<cdparam x="422" y="140" />
+<sizeparam width="103" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Reset timer" value="expire(ATST1)" />
+<TGConnectingPoint num="0" id="3792" />
+<TGConnectingPoint num="1" id="3793" />
+<TGConnectingPoint num="2" id="3794" />
+<TGConnectingPoint num="3" id="3795" />
+<TGConnectingPoint num="4" id="3796" />
+<TGConnectingPoint num="5" id="3797" />
+<TGConnectingPoint num="6" id="3798" />
+<TGConnectingPoint num="7" id="3799" />
+<TGConnectingPoint num="8" id="3800" />
+<TGConnectingPoint num="9" id="3801" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3843" >
+<cdparam x="35" y="193" />
+<sizeparam width="103" height="42" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="SEND" />
+<TGConnectingPoint num="0" id="3803" />
+<TGConnectingPoint num="1" id="3804" />
+<TGConnectingPoint num="2" id="3805" />
+<TGConnectingPoint num="3" id="3806" />
+<TGConnectingPoint num="4" id="3807" />
+<TGConnectingPoint num="5" id="3808" />
+<TGConnectingPoint num="6" id="3809" />
+<TGConnectingPoint num="7" id="3810" />
+<TGConnectingPoint num="8" id="3811" />
+<TGConnectingPoint num="9" id="3812" />
+<TGConnectingPoint num="10" id="3813" />
+<TGConnectingPoint num="11" id="3814" />
+<TGConnectingPoint num="12" id="3815" />
+<TGConnectingPoint num="13" id="3816" />
+<TGConnectingPoint num="14" id="3817" />
+<TGConnectingPoint num="15" id="3818" />
+<TGConnectingPoint num="16" id="3819" />
+<TGConnectingPoint num="17" id="3820" />
+<TGConnectingPoint num="18" id="3821" />
+<TGConnectingPoint num="19" id="3822" />
+<TGConnectingPoint num="20" id="3823" />
+<TGConnectingPoint num="21" id="3824" />
+<TGConnectingPoint num="22" id="3825" />
+<TGConnectingPoint num="23" id="3826" />
+<TGConnectingPoint num="24" id="3827" />
+<TGConnectingPoint num="25" id="3828" />
+<TGConnectingPoint num="26" id="3829" />
+<TGConnectingPoint num="27" id="3830" />
+<TGConnectingPoint num="28" id="3831" />
+<TGConnectingPoint num="29" id="3832" />
+<TGConnectingPoint num="30" id="3833" />
+<TGConnectingPoint num="31" id="3834" />
+<TGConnectingPoint num="32" id="3835" />
+<TGConnectingPoint num="33" id="3836" />
+<TGConnectingPoint num="34" id="3837" />
+<TGConnectingPoint num="35" id="3838" />
+<TGConnectingPoint num="36" id="3839" />
+<TGConnectingPoint num="37" id="3840" />
+<TGConnectingPoint num="38" id="3841" />
+<TGConnectingPoint num="39" id="3842" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3884" >
+<cdparam x="569" y="302" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="CONNECTED" />
+<TGConnectingPoint num="0" id="3844" />
+<TGConnectingPoint num="1" id="3845" />
+<TGConnectingPoint num="2" id="3846" />
+<TGConnectingPoint num="3" id="3847" />
+<TGConnectingPoint num="4" id="3848" />
+<TGConnectingPoint num="5" id="3849" />
+<TGConnectingPoint num="6" id="3850" />
+<TGConnectingPoint num="7" id="3851" />
+<TGConnectingPoint num="8" id="3852" />
+<TGConnectingPoint num="9" id="3853" />
+<TGConnectingPoint num="10" id="3854" />
+<TGConnectingPoint num="11" id="3855" />
+<TGConnectingPoint num="12" id="3856" />
+<TGConnectingPoint num="13" id="3857" />
+<TGConnectingPoint num="14" id="3858" />
+<TGConnectingPoint num="15" id="3859" />
+<TGConnectingPoint num="16" id="3860" />
+<TGConnectingPoint num="17" id="3861" />
+<TGConnectingPoint num="18" id="3862" />
+<TGConnectingPoint num="19" id="3863" />
+<TGConnectingPoint num="20" id="3864" />
+<TGConnectingPoint num="21" id="3865" />
+<TGConnectingPoint num="22" id="3866" />
+<TGConnectingPoint num="23" id="3867" />
+<TGConnectingPoint num="24" id="3868" />
+<TGConnectingPoint num="25" id="3869" />
+<TGConnectingPoint num="26" id="3870" />
+<TGConnectingPoint num="27" id="3871" />
+<TGConnectingPoint num="28" id="3872" />
+<TGConnectingPoint num="29" id="3873" />
+<TGConnectingPoint num="30" id="3874" />
+<TGConnectingPoint num="31" id="3875" />
+<TGConnectingPoint num="32" id="3876" />
+<TGConnectingPoint num="33" id="3877" />
+<TGConnectingPoint num="34" id="3878" />
+<TGConnectingPoint num="35" id="3879" />
+<TGConnectingPoint num="36" id="3880" />
+<TGConnectingPoint num="37" id="3881" />
+<TGConnectingPoint num="38" id="3882" />
+<TGConnectingPoint num="39" id="3883" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="3895" >
+<cdparam x="582" y="253" />
+<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INconconf()" />
+<TGConnectingPoint num="0" id="3885" />
+<TGConnectingPoint num="1" id="3886" />
+<TGConnectingPoint num="2" id="3887" />
+<TGConnectingPoint num="3" id="3888" />
+<TGConnectingPoint num="4" id="3889" />
+<TGConnectingPoint num="5" id="3890" />
+<TGConnectingPoint num="6" id="3891" />
+<TGConnectingPoint num="7" id="3892" />
+<TGConnectingPoint num="8" id="3893" />
+<TGConnectingPoint num="9" id="3894" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="3906" >
+<cdparam x="598" y="149" />
+<sizeparam width="42" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="CC()" />
+<TGConnectingPoint num="0" id="3896" />
+<TGConnectingPoint num="1" id="3897" />
+<TGConnectingPoint num="2" id="3898" />
+<TGConnectingPoint num="3" id="3899" />
+<TGConnectingPoint num="4" id="3900" />
+<TGConnectingPoint num="5" id="3901" />
+<TGConnectingPoint num="6" id="3902" />
+<TGConnectingPoint num="7" id="3903" />
+<TGConnectingPoint num="8" id="3904" />
+<TGConnectingPoint num="9" id="3905" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3947" >
+<cdparam x="518" y="58" />
+<sizeparam width="117" height="51" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="WAIT_FOR_CONF" />
+<TGConnectingPoint num="0" id="3907" />
+<TGConnectingPoint num="1" id="3908" />
+<TGConnectingPoint num="2" id="3909" />
+<TGConnectingPoint num="3" id="3910" />
+<TGConnectingPoint num="4" id="3911" />
+<TGConnectingPoint num="5" id="3912" />
+<TGConnectingPoint num="6" id="3913" />
+<TGConnectingPoint num="7" id="3914" />
+<TGConnectingPoint num="8" id="3915" />
+<TGConnectingPoint num="9" id="3916" />
+<TGConnectingPoint num="10" id="3917" />
+<TGConnectingPoint num="11" id="3918" />
+<TGConnectingPoint num="12" id="3919" />
+<TGConnectingPoint num="13" id="3920" />
+<TGConnectingPoint num="14" id="3921" />
+<TGConnectingPoint num="15" id="3922" />
+<TGConnectingPoint num="16" id="3923" />
+<TGConnectingPoint num="17" id="3924" />
+<TGConnectingPoint num="18" id="3925" />
+<TGConnectingPoint num="19" id="3926" />
+<TGConnectingPoint num="20" id="3927" />
+<TGConnectingPoint num="21" id="3928" />
+<TGConnectingPoint num="22" id="3929" />
+<TGConnectingPoint num="23" id="3930" />
+<TGConnectingPoint num="24" id="3931" />
+<TGConnectingPoint num="25" id="3932" />
+<TGConnectingPoint num="26" id="3933" />
+<TGConnectingPoint num="27" id="3934" />
+<TGConnectingPoint num="28" id="3935" />
+<TGConnectingPoint num="29" id="3936" />
+<TGConnectingPoint num="30" id="3937" />
+<TGConnectingPoint num="31" id="3938" />
+<TGConnectingPoint num="32" id="3939" />
+<TGConnectingPoint num="33" id="3940" />
+<TGConnectingPoint num="34" id="3941" />
+<TGConnectingPoint num="35" id="3942" />
+<TGConnectingPoint num="36" id="3943" />
+<TGConnectingPoint num="37" id="3944" />
+<TGConnectingPoint num="38" id="3945" />
+<TGConnectingPoint num="39" id="3946" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3988" >
+<cdparam x="32" y="351" />
+<sizeparam width="137" height="52" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="WAIT_FOR_CONF" />
+<TGConnectingPoint num="0" id="3948" />
+<TGConnectingPoint num="1" id="3949" />
+<TGConnectingPoint num="2" id="3950" />
+<TGConnectingPoint num="3" id="3951" />
+<TGConnectingPoint num="4" id="3952" />
+<TGConnectingPoint num="5" id="3953" />
+<TGConnectingPoint num="6" id="3954" />
+<TGConnectingPoint num="7" id="3955" />
+<TGConnectingPoint num="8" id="3956" />
+<TGConnectingPoint num="9" id="3957" />
+<TGConnectingPoint num="10" id="3958" />
+<TGConnectingPoint num="11" id="3959" />
+<TGConnectingPoint num="12" id="3960" />
+<TGConnectingPoint num="13" id="3961" />
+<TGConnectingPoint num="14" id="3962" />
+<TGConnectingPoint num="15" id="3963" />
+<TGConnectingPoint num="16" id="3964" />
+<TGConnectingPoint num="17" id="3965" />
+<TGConnectingPoint num="18" id="3966" />
+<TGConnectingPoint num="19" id="3967" />
+<TGConnectingPoint num="20" id="3968" />
+<TGConnectingPoint num="21" id="3969" />
+<TGConnectingPoint num="22" id="3970" />
+<TGConnectingPoint num="23" id="3971" />
+<TGConnectingPoint num="24" id="3972" />
+<TGConnectingPoint num="25" id="3973" />
+<TGConnectingPoint num="26" id="3974" />
+<TGConnectingPoint num="27" id="3975" />
+<TGConnectingPoint num="28" id="3976" />
+<TGConnectingPoint num="29" id="3977" />
+<TGConnectingPoint num="30" id="3978" />
+<TGConnectingPoint num="31" id="3979" />
+<TGConnectingPoint num="32" id="3980" />
+<TGConnectingPoint num="33" id="3981" />
+<TGConnectingPoint num="34" id="3982" />
+<TGConnectingPoint num="35" id="3983" />
+<TGConnectingPoint num="36" id="3984" />
+<TGConnectingPoint num="37" id="3985" />
+<TGConnectingPoint num="38" id="3986" />
+<TGConnectingPoint num="39" id="3987" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="3999" >
+<cdparam x="83" y="304" />
+<sizeparam width="34" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="CR()" />
+<TGConnectingPoint num="0" id="3989" />
+<TGConnectingPoint num="1" id="3990" />
+<TGConnectingPoint num="2" id="3991" />
+<TGConnectingPoint num="3" id="3992" />
+<TGConnectingPoint num="4" id="3993" />
+<TGConnectingPoint num="5" id="3994" />
+<TGConnectingPoint num="6" id="3995" />
+<TGConnectingPoint num="7" id="3996" />
+<TGConnectingPoint num="8" id="3997" />
+<TGConnectingPoint num="9" id="3998" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="4010" >
+<cdparam x="47" y="137" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INconreq()" />
+<TGConnectingPoint num="0" id="4000" />
+<TGConnectingPoint num="1" id="4001" />
+<TGConnectingPoint num="2" id="4002" />
+<TGConnectingPoint num="3" id="4003" />
+<TGConnectingPoint num="4" id="4004" />
+<TGConnectingPoint num="5" id="4005" />
+<TGConnectingPoint num="6" id="4006" />
+<TGConnectingPoint num="7" id="4007" />
+<TGConnectingPoint num="8" id="4008" />
+<TGConnectingPoint num="9" id="4009" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="4051" >
+<cdparam x="36" y="60" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="IDLE" />
+<TGConnectingPoint num="0" id="4011" />
+<TGConnectingPoint num="1" id="4012" />
+<TGConnectingPoint num="2" id="4013" />
+<TGConnectingPoint num="3" id="4014" />
+<TGConnectingPoint num="4" id="4015" />
+<TGConnectingPoint num="5" id="4016" />
+<TGConnectingPoint num="6" id="4017" />
+<TGConnectingPoint num="7" id="4018" />
+<TGConnectingPoint num="8" id="4019" />
+<TGConnectingPoint num="9" id="4020" />
+<TGConnectingPoint num="10" id="4021" />
+<TGConnectingPoint num="11" id="4022" />
+<TGConnectingPoint num="12" id="4023" />
+<TGConnectingPoint num="13" id="4024" />
+<TGConnectingPoint num="14" id="4025" />
+<TGConnectingPoint num="15" id="4026" />
+<TGConnectingPoint num="16" id="4027" />
+<TGConnectingPoint num="17" id="4028" />
+<TGConnectingPoint num="18" id="4029" />
+<TGConnectingPoint num="19" id="4030" />
+<TGConnectingPoint num="20" id="4031" />
+<TGConnectingPoint num="21" id="4032" />
+<TGConnectingPoint num="22" id="4033" />
+<TGConnectingPoint num="23" id="4034" />
+<TGConnectingPoint num="24" id="4035" />
+<TGConnectingPoint num="25" id="4036" />
+<TGConnectingPoint num="26" id="4037" />
+<TGConnectingPoint num="27" id="4038" />
+<TGConnectingPoint num="28" id="4039" />
+<TGConnectingPoint num="29" id="4040" />
+<TGConnectingPoint num="30" id="4041" />
+<TGConnectingPoint num="31" id="4042" />
+<TGConnectingPoint num="32" id="4043" />
+<TGConnectingPoint num="33" id="4044" />
+<TGConnectingPoint num="34" id="4045" />
+<TGConnectingPoint num="35" id="4046" />
+<TGConnectingPoint num="36" id="4047" />
+<TGConnectingPoint num="37" id="4048" />
+<TGConnectingPoint num="38" id="4049" />
+<TGConnectingPoint num="39" id="4050" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="4053" >
+<cdparam x="60" y="16" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="4052" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="GroundCommunication" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="4060" >
+<cdparam x="483" y="115" />
+<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="4059" />
+<P1  x="490" y="122" id="4362" />
+<P2  x="490" y="143" id="4293" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4058" >
+<father id="4060" num="0" />
+<cdparam x="486" y="129" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4054" />
+<TGConnectingPoint num="1" id="4055" />
+<TGConnectingPoint num="2" id="4056" />
+<TGConnectingPoint num="3" id="4057" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4067" >
+<cdparam x="492" y="175" />
+<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="4066" />
+<P1  x="490" y="173" id="4294" />
+<P2  x="490" y="197" id="4304" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4065" >
+<father id="4067" num="0" />
+<cdparam x="491" y="186" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4061" />
+<TGConnectingPoint num="1" id="4062" />
+<TGConnectingPoint num="2" id="4063" />
+<TGConnectingPoint num="3" id="4064" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4074" >
+<cdparam x="490" y="193" />
+<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="4073" />
+<P1  x="490" y="227" id="4305" />
+<P2  x="490" y="255" id="4316" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4072" >
+<father id="4074" num="0" />
+<cdparam x="486" y="224" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4068" />
+<TGConnectingPoint num="1" id="4069" />
+<TGConnectingPoint num="2" id="4070" />
+<TGConnectingPoint num="3" id="4071" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4081" >
+<cdparam x="86" y="48" />
+<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="4080" />
+<P1  x="75" y="47" id="4291" />
+<P2  x="87" y="72" id="4251" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4079" >
+<father id="4081" num="0" />
+<cdparam x="86" y="88" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4075" />
+<TGConnectingPoint num="1" id="4076" />
+<TGConnectingPoint num="2" id="4077" />
+<TGConnectingPoint num="3" id="4078" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4088" >
+<cdparam x="99" y="122" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="4087" />
+<P1  x="99" y="122" id="4280" />
+<P2  x="99" y="151" id="4239" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4086" >
+<father id="4088" num="0" />
+<cdparam x="99" y="162" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4082" />
+<TGConnectingPoint num="1" id="4083" />
+<TGConnectingPoint num="2" id="4084" />
+<TGConnectingPoint num="3" id="4085" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4095" >
+<cdparam x="99" y="181" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="4094" />
+<P1  x="99" y="181" id="4240" />
+<P2  x="99" y="207" id="4228" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4093" >
+<father id="4095" num="0" />
+<cdparam x="99" y="221" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4089" />
+<TGConnectingPoint num="1" id="4090" />
+<TGConnectingPoint num="2" id="4091" />
+<TGConnectingPoint num="3" id="4092" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4102" >
+<cdparam x="99" y="237" />
+<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="4101" />
+<P1  x="99" y="237" id="4229" />
+<P2  x="99" y="262" id="4188" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4100" >
+<father id="4102" num="0" />
+<cdparam x="99" y="277" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4096" />
+<TGConnectingPoint num="1" id="4097" />
+<TGConnectingPoint num="2" id="4098" />
+<TGConnectingPoint num="3" id="4099" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4109" >
+<cdparam x="327" y="119" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="4108" />
+<P1  x="327" y="119" id="4176" />
+<P2  x="327" y="145" id="4135" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4107" >
+<father id="4109" num="0" />
+<cdparam x="327" y="159" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4103" />
+<TGConnectingPoint num="1" id="4104" />
+<TGConnectingPoint num="2" id="4105" />
+<TGConnectingPoint num="3" id="4106" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4116" >
+<cdparam x="327" y="175" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="4115" />
+<P1  x="327" y="175" id="4136" />
+<P2  x="327" y="204" id="4124" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4114" >
+<father id="4116" num="0" />
+<cdparam x="327" y="215" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4110" />
+<TGConnectingPoint num="1" id="4111" />
+<TGConnectingPoint num="2" id="4112" />
+<TGConnectingPoint num="3" id="4113" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4123" >
+<cdparam x="327" y="234" />
+<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="4122" />
+<P1  x="327" y="234" id="4125" />
+<P2  x="327" y="266" id="4398" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4121" >
+<father id="4123" num="0" />
+<cdparam x="331" y="251" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4117" />
+<TGConnectingPoint num="1" id="4118" />
+<TGConnectingPoint num="2" id="4119" />
+<TGConnectingPoint num="3" id="4120" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="4134" >
+<cdparam x="310" y="209" />
+<sizeparam width="34" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="CC()" />
+<TGConnectingPoint num="0" id="4124" />
+<TGConnectingPoint num="1" id="4125" />
+<TGConnectingPoint num="2" id="4126" />
+<TGConnectingPoint num="3" id="4127" />
+<TGConnectingPoint num="4" id="4128" />
+<TGConnectingPoint num="5" id="4129" />
+<TGConnectingPoint num="6" id="4130" />
+<TGConnectingPoint num="7" id="4131" />
+<TGConnectingPoint num="8" id="4132" />
+<TGConnectingPoint num="9" id="4133" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="4145" >
+<cdparam x="285" y="150" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INconresp()" />
+<TGConnectingPoint num="0" id="4135" />
+<TGConnectingPoint num="1" id="4136" />
+<TGConnectingPoint num="2" id="4137" />
+<TGConnectingPoint num="3" id="4138" />
+<TGConnectingPoint num="4" id="4139" />
+<TGConnectingPoint num="5" id="4140" />
+<TGConnectingPoint num="6" id="4141" />
+<TGConnectingPoint num="7" id="4142" />
+<TGConnectingPoint num="8" id="4143" />
+<TGConnectingPoint num="9" id="4144" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="4186" >
+<cdparam x="254" y="69" />
+<sizeparam width="119" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="WAIT_FOR_RESP" />
+<TGConnectingPoint num="0" id="4146" />
+<TGConnectingPoint num="1" id="4147" />
+<TGConnectingPoint num="2" id="4148" />
+<TGConnectingPoint num="3" id="4149" />
+<TGConnectingPoint num="4" id="4150" />
+<TGConnectingPoint num="5" id="4151" />
+<TGConnectingPoint num="6" id="4152" />
+<TGConnectingPoint num="7" id="4153" />
+<TGConnectingPoint num="8" id="4154" />
+<TGConnectingPoint num="9" id="4155" />
+<TGConnectingPoint num="10" id="4156" />
+<TGConnectingPoint num="11" id="4157" />
+<TGConnectingPoint num="12" id="4158" />
+<TGConnectingPoint num="13" id="4159" />
+<TGConnectingPoint num="14" id="4160" />
+<TGConnectingPoint num="15" id="4161" />
+<TGConnectingPoint num="16" id="4162" />
+<TGConnectingPoint num="17" id="4163" />
+<TGConnectingPoint num="18" id="4164" />
+<TGConnectingPoint num="19" id="4165" />
+<TGConnectingPoint num="20" id="4166" />
+<TGConnectingPoint num="21" id="4167" />
+<TGConnectingPoint num="22" id="4168" />
+<TGConnectingPoint num="23" id="4169" />
+<TGConnectingPoint num="24" id="4170" />
+<TGConnectingPoint num="25" id="4171" />
+<TGConnectingPoint num="26" id="4172" />
+<TGConnectingPoint num="27" id="4173" />
+<TGConnectingPoint num="28" id="4174" />
+<TGConnectingPoint num="29" id="4175" />
+<TGConnectingPoint num="30" id="4176" />
+<TGConnectingPoint num="31" id="4177" />
+<TGConnectingPoint num="32" id="4178" />
+<TGConnectingPoint num="33" id="4179" />
+<TGConnectingPoint num="34" id="4180" />
+<TGConnectingPoint num="35" id="4181" />
+<TGConnectingPoint num="36" id="4182" />
+<TGConnectingPoint num="37" id="4183" />
+<TGConnectingPoint num="38" id="4184" />
+<TGConnectingPoint num="39" id="4185" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="4227" >
+<cdparam x="39" y="262" />
+<sizeparam width="121" height="49" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="WAIT_FOR_RESP" />
+<TGConnectingPoint num="0" id="4187" />
+<TGConnectingPoint num="1" id="4188" />
+<TGConnectingPoint num="2" id="4189" />
+<TGConnectingPoint num="3" id="4190" />
+<TGConnectingPoint num="4" id="4191" />
+<TGConnectingPoint num="5" id="4192" />
+<TGConnectingPoint num="6" id="4193" />
+<TGConnectingPoint num="7" id="4194" />
+<TGConnectingPoint num="8" id="4195" />
+<TGConnectingPoint num="9" id="4196" />
+<TGConnectingPoint num="10" id="4197" />
+<TGConnectingPoint num="11" id="4198" />
+<TGConnectingPoint num="12" id="4199" />
+<TGConnectingPoint num="13" id="4200" />
+<TGConnectingPoint num="14" id="4201" />
+<TGConnectingPoint num="15" id="4202" />
+<TGConnectingPoint num="16" id="4203" />
+<TGConnectingPoint num="17" id="4204" />
+<TGConnectingPoint num="18" id="4205" />
+<TGConnectingPoint num="19" id="4206" />
+<TGConnectingPoint num="20" id="4207" />
+<TGConnectingPoint num="21" id="4208" />
+<TGConnectingPoint num="22" id="4209" />
+<TGConnectingPoint num="23" id="4210" />
+<TGConnectingPoint num="24" id="4211" />
+<TGConnectingPoint num="25" id="4212" />
+<TGConnectingPoint num="26" id="4213" />
+<TGConnectingPoint num="27" id="4214" />
+<TGConnectingPoint num="28" id="4215" />
+<TGConnectingPoint num="29" id="4216" />
+<TGConnectingPoint num="30" id="4217" />
+<TGConnectingPoint num="31" id="4218" />
+<TGConnectingPoint num="32" id="4219" />
+<TGConnectingPoint num="33" id="4220" />
+<TGConnectingPoint num="34" id="4221" />
+<TGConnectingPoint num="35" id="4222" />
+<TGConnectingPoint num="36" id="4223" />
+<TGConnectingPoint num="37" id="4224" />
+<TGConnectingPoint num="38" id="4225" />
+<TGConnectingPoint num="39" id="4226" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="4238" >
+<cdparam x="65" y="212" />
+<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INconind()" />
+<TGConnectingPoint num="0" id="4228" />
+<TGConnectingPoint num="1" id="4229" />
+<TGConnectingPoint num="2" id="4230" />
+<TGConnectingPoint num="3" id="4231" />
+<TGConnectingPoint num="4" id="4232" />
+<TGConnectingPoint num="5" id="4233" />
+<TGConnectingPoint num="6" id="4234" />
+<TGConnectingPoint num="7" id="4235" />
+<TGConnectingPoint num="8" id="4236" />
+<TGConnectingPoint num="9" id="4237" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="4249" >
+<cdparam x="78" y="156" />
+<sizeparam width="42" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="CR()" />
+<TGConnectingPoint num="0" id="4239" />
+<TGConnectingPoint num="1" id="4240" />
+<TGConnectingPoint num="2" id="4241" />
+<TGConnectingPoint num="3" id="4242" />
+<TGConnectingPoint num="4" id="4243" />
+<TGConnectingPoint num="5" id="4244" />
+<TGConnectingPoint num="6" id="4245" />
+<TGConnectingPoint num="7" id="4246" />
+<TGConnectingPoint num="8" id="4247" />
+<TGConnectingPoint num="9" id="4248" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="4290" >
+<cdparam x="37" y="72" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="IDLE" />
+<TGConnectingPoint num="0" id="4250" />
+<TGConnectingPoint num="1" id="4251" />
+<TGConnectingPoint num="2" id="4252" />
+<TGConnectingPoint num="3" id="4253" />
+<TGConnectingPoint num="4" id="4254" />
+<TGConnectingPoint num="5" id="4255" />
+<TGConnectingPoint num="6" id="4256" />
+<TGConnectingPoint num="7" id="4257" />
+<TGConnectingPoint num="8" id="4258" />
+<TGConnectingPoint num="9" id="4259" />
+<TGConnectingPoint num="10" id="4260" />
+<TGConnectingPoint num="11" id="4261" />
+<TGConnectingPoint num="12" id="4262" />
+<TGConnectingPoint num="13" id="4263" />
+<TGConnectingPoint num="14" id="4264" />
+<TGConnectingPoint num="15" id="4265" />
+<TGConnectingPoint num="16" id="4266" />
+<TGConnectingPoint num="17" id="4267" />
+<TGConnectingPoint num="18" id="4268" />
+<TGConnectingPoint num="19" id="4269" />
+<TGConnectingPoint num="20" id="4270" />
+<TGConnectingPoint num="21" id="4271" />
+<TGConnectingPoint num="22" id="4272" />
+<TGConnectingPoint num="23" id="4273" />
+<TGConnectingPoint num="24" id="4274" />
+<TGConnectingPoint num="25" id="4275" />
+<TGConnectingPoint num="26" id="4276" />
+<TGConnectingPoint num="27" id="4277" />
+<TGConnectingPoint num="28" id="4278" />
+<TGConnectingPoint num="29" id="4279" />
+<TGConnectingPoint num="30" id="4280" />
+<TGConnectingPoint num="31" id="4281" />
+<TGConnectingPoint num="32" id="4282" />
+<TGConnectingPoint num="33" id="4283" />
+<TGConnectingPoint num="34" id="4284" />
+<TGConnectingPoint num="35" id="4285" />
+<TGConnectingPoint num="36" id="4286" />
+<TGConnectingPoint num="37" id="4287" />
+<TGConnectingPoint num="38" id="4288" />
+<TGConnectingPoint num="39" id="4289" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="4292" >
+<cdparam x="68" y="27" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="4291" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="4303" >
+<cdparam x="469" y="148" />
+<sizeparam width="43" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="DR()" />
+<TGConnectingPoint num="0" id="4293" />
+<TGConnectingPoint num="1" id="4294" />
+<TGConnectingPoint num="2" id="4295" />
+<TGConnectingPoint num="3" id="4296" />
+<TGConnectingPoint num="4" id="4297" />
+<TGConnectingPoint num="5" id="4298" />
+<TGConnectingPoint num="6" id="4299" />
+<TGConnectingPoint num="7" id="4300" />
+<TGConnectingPoint num="8" id="4301" />
+<TGConnectingPoint num="9" id="4302" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="4314" >
+<cdparam x="437" y="202" />
+<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INerror_ground()" />
+<TGConnectingPoint num="0" id="4304" />
+<TGConnectingPoint num="1" id="4305" />
+<TGConnectingPoint num="2" id="4306" />
+<TGConnectingPoint num="3" id="4307" />
+<TGConnectingPoint num="4" id="4308" />
+<TGConnectingPoint num="5" id="4309" />
+<TGConnectingPoint num="6" id="4310" />
+<TGConnectingPoint num="7" id="4311" />
+<TGConnectingPoint num="8" id="4312" />
+<TGConnectingPoint num="9" id="4313" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="4355" >
+<cdparam x="440" y="255" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="ERROR" />
+<TGConnectingPoint num="0" id="4315" />
+<TGConnectingPoint num="1" id="4316" />
+<TGConnectingPoint num="2" id="4317" />
+<TGConnectingPoint num="3" id="4318" />
+<TGConnectingPoint num="4" id="4319" />
+<TGConnectingPoint num="5" id="4320" />
+<TGConnectingPoint num="6" id="4321" />
+<TGConnectingPoint num="7" id="4322" />
+<TGConnectingPoint num="8" id="4323" />
+<TGConnectingPoint num="9" id="4324" />
+<TGConnectingPoint num="10" id="4325" />
+<TGConnectingPoint num="11" id="4326" />
+<TGConnectingPoint num="12" id="4327" />
+<TGConnectingPoint num="13" id="4328" />
+<TGConnectingPoint num="14" id="4329" />
+<TGConnectingPoint num="15" id="4330" />
+<TGConnectingPoint num="16" id="4331" />
+<TGConnectingPoint num="17" id="4332" />
+<TGConnectingPoint num="18" id="4333" />
+<TGConnectingPoint num="19" id="4334" />
+<TGConnectingPoint num="20" id="4335" />
+<TGConnectingPoint num="21" id="4336" />
+<TGConnectingPoint num="22" id="4337" />
+<TGConnectingPoint num="23" id="4338" />
+<TGConnectingPoint num="24" id="4339" />
+<TGConnectingPoint num="25" id="4340" />
+<TGConnectingPoint num="26" id="4341" />
+<TGConnectingPoint num="27" id="4342" />
+<TGConnectingPoint num="28" id="4343" />
+<TGConnectingPoint num="29" id="4344" />
+<TGConnectingPoint num="30" id="4345" />
+<TGConnectingPoint num="31" id="4346" />
+<TGConnectingPoint num="32" id="4347" />
+<TGConnectingPoint num="33" id="4348" />
+<TGConnectingPoint num="34" id="4349" />
+<TGConnectingPoint num="35" id="4350" />
+<TGConnectingPoint num="36" id="4351" />
+<TGConnectingPoint num="37" id="4352" />
+<TGConnectingPoint num="38" id="4353" />
+<TGConnectingPoint num="39" id="4354" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="4396" >
+<cdparam x="440" y="63" />
+<sizeparam width="100" height="59" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="CONNECTED" />
+<TGConnectingPoint num="0" id="4356" />
+<TGConnectingPoint num="1" id="4357" />
+<TGConnectingPoint num="2" id="4358" />
+<TGConnectingPoint num="3" id="4359" />
+<TGConnectingPoint num="4" id="4360" />
+<TGConnectingPoint num="5" id="4361" />
+<TGConnectingPoint num="6" id="4362" />
+<TGConnectingPoint num="7" id="4363" />
+<TGConnectingPoint num="8" id="4364" />
+<TGConnectingPoint num="9" id="4365" />
+<TGConnectingPoint num="10" id="4366" />
+<TGConnectingPoint num="11" id="4367" />
+<TGConnectingPoint num="12" id="4368" />
+<TGConnectingPoint num="13" id="4369" />
+<TGConnectingPoint num="14" id="4370" />
+<TGConnectingPoint num="15" id="4371" />
+<TGConnectingPoint num="16" id="4372" />
+<TGConnectingPoint num="17" id="4373" />
+<TGConnectingPoint num="18" id="4374" />
+<TGConnectingPoint num="19" id="4375" />
+<TGConnectingPoint num="20" id="4376" />
+<TGConnectingPoint num="21" id="4377" />
+<TGConnectingPoint num="22" id="4378" />
+<TGConnectingPoint num="23" id="4379" />
+<TGConnectingPoint num="24" id="4380" />
+<TGConnectingPoint num="25" id="4381" />
+<TGConnectingPoint num="26" id="4382" />
+<TGConnectingPoint num="27" id="4383" />
+<TGConnectingPoint num="28" id="4384" />
+<TGConnectingPoint num="29" id="4385" />
+<TGConnectingPoint num="30" id="4386" />
+<TGConnectingPoint num="31" id="4387" />
+<TGConnectingPoint num="32" id="4388" />
+<TGConnectingPoint num="33" id="4389" />
+<TGConnectingPoint num="34" id="4390" />
+<TGConnectingPoint num="35" id="4391" />
+<TGConnectingPoint num="36" id="4392" />
+<TGConnectingPoint num="37" id="4393" />
+<TGConnectingPoint num="38" id="4394" />
+<TGConnectingPoint num="39" id="4395" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="4437" >
+<cdparam x="277" y="266" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="CONNECTED" />
+<TGConnectingPoint num="0" id="4397" />
+<TGConnectingPoint num="1" id="4398" />
+<TGConnectingPoint num="2" id="4399" />
+<TGConnectingPoint num="3" id="4400" />
+<TGConnectingPoint num="4" id="4401" />
+<TGConnectingPoint num="5" id="4402" />
+<TGConnectingPoint num="6" id="4403" />
+<TGConnectingPoint num="7" id="4404" />
+<TGConnectingPoint num="8" id="4405" />
+<TGConnectingPoint num="9" id="4406" />
+<TGConnectingPoint num="10" id="4407" />
+<TGConnectingPoint num="11" id="4408" />
+<TGConnectingPoint num="12" id="4409" />
+<TGConnectingPoint num="13" id="4410" />
+<TGConnectingPoint num="14" id="4411" />
+<TGConnectingPoint num="15" id="4412" />
+<TGConnectingPoint num="16" id="4413" />
+<TGConnectingPoint num="17" id="4414" />
+<TGConnectingPoint num="18" id="4415" />
+<TGConnectingPoint num="19" id="4416" />
+<TGConnectingPoint num="20" id="4417" />
+<TGConnectingPoint num="21" id="4418" />
+<TGConnectingPoint num="22" id="4419" />
+<TGConnectingPoint num="23" id="4420" />
+<TGConnectingPoint num="24" id="4421" />
+<TGConnectingPoint num="25" id="4422" />
+<TGConnectingPoint num="26" id="4423" />
+<TGConnectingPoint num="27" id="4424" />
+<TGConnectingPoint num="28" id="4425" />
+<TGConnectingPoint num="29" id="4426" />
+<TGConnectingPoint num="30" id="4427" />
+<TGConnectingPoint num="31" id="4428" />
+<TGConnectingPoint num="32" id="4429" />
+<TGConnectingPoint num="33" id="4430" />
+<TGConnectingPoint num="34" id="4431" />
+<TGConnectingPoint num="35" id="4432" />
+<TGConnectingPoint num="36" id="4433" />
+<TGConnectingPoint num="37" id="4434" />
+<TGConnectingPoint num="38" id="4435" />
+<TGConnectingPoint num="39" id="4436" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Controller" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="4452" >
+<cdparam x="374" y="197" />
+<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="4447" />
+<TGConnectingPoint num="1" id="4448" />
+<TGConnectingPoint num="2" id="4449" />
+<TGConnectingPoint num="3" id="4450" />
+<TGConnectingPoint num="4" id="4451" />
+<P1  x="374" y="197" id="4510" />
+<P2  x="248" y="96" id="4561" />
+<Point x="374" y="212" />
+<Point x="441" y="212" />
+<Point x="441" y="90" />
+<Point x="274" y="90" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4438" >
+<father id="4452" num="0" />
+<cdparam x="374" y="212" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4439" >
+<father id="4452" num="1" />
+<cdparam x="441" y="212" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4440" >
+<father id="4452" num="2" />
+<cdparam x="441" y="90" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4441" >
+<father id="4452" num="3" />
+<cdparam x="274" y="90" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4446" >
+<father id="4452" num="4" />
+<cdparam x="311" y="146" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4442" />
+<TGConnectingPoint num="1" id="4443" />
+<TGConnectingPoint num="2" id="4444" />
+<TGConnectingPoint num="3" id="4445" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4461" >
+<cdparam x="261" y="102" />
+<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" />
+<TGConnectingPoint num="1" id="4460" />
+<P1  x="261" y="102" id="4564" />
+<P2  x="374" y="167" id="4509" />
+<Point x="374" y="102" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4453" >
+<father id="4461" num="0" />
+<cdparam x="374" y="102" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4458" >
+<father id="4461" num="1" />
+<cdparam x="321" y="99" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4454" />
+<TGConnectingPoint num="1" id="4455" />
+<TGConnectingPoint num="2" id="4456" />
+<TGConnectingPoint num="3" id="4457" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4474" >
+<cdparam x="153" y="198" />
+<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" />
+<TGConnectingPoint num="1" id="4471" />
+<TGConnectingPoint num="2" id="4472" />
+<TGConnectingPoint num="3" id="4473" />
+<P1  x="153" y="198" id="4532" />
+<P2  x="261" y="114" id="4565" />
+<Point x="153" y="216" />
+<Point x="309" y="216" />
+<Point x="309" y="114" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4462" >
+<father id="4474" num="0" />
+<cdparam x="153" y="216" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4463" >
+<father id="4474" num="1" />
+<cdparam x="309" y="216" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4464" >
+<father id="4474" num="2" />
+<cdparam x="309" y="114" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4469" >
+<father id="4474" num="3" />
+<cdparam x="153" y="238" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4465" />
+<TGConnectingPoint num="1" id="4466" />
+<TGConnectingPoint num="2" id="4467" />
+<TGConnectingPoint num="3" id="4468" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4487" >
+<cdparam x="247" y="197" />
+<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="4483" />
+<TGConnectingPoint num="1" id="4484" />
+<TGConnectingPoint num="2" id="4485" />
+<TGConnectingPoint num="3" id="4486" />
+<P1  x="247" y="197" id="4521" />
+<P2  x="261" y="133" id="4555" />
+<Point x="247" y="207" />
+<Point x="298" y="207" />
+<Point x="298" y="133" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4475" >
+<father id="4487" num="0" />
+<cdparam x="247" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4476" >
+<father id="4487" num="1" />
+<cdparam x="298" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4477" >
+<father id="4487" num="2" />
+<cdparam x="298" y="133" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4482" >
+<father id="4487" num="3" />
+<cdparam x="247" y="237" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4478" />
+<TGConnectingPoint num="1" id="4479" />
+<TGConnectingPoint num="2" id="4480" />
+<TGConnectingPoint num="3" id="4481" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4494" >
+<cdparam x="186" y="62" />
+<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="4493" />
+<P1  x="186" y="62" id="4583" />
+<P2  x="211" y="96" id="4543" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4492" >
+<father id="4494" num="0" />
+<cdparam x="211" y="104" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4488" />
+<TGConnectingPoint num="1" id="4489" />
+<TGConnectingPoint num="2" id="4490" />
+<TGConnectingPoint num="3" id="4491" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4501" >
+<cdparam x="161" y="146" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="4500" />
+<P1  x="186" y="146" id="4556" />
+<P2  x="153" y="168" id="4531" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4499" >
+<father id="4501" num="0" />
+<cdparam x="161" y="186" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4495" />
+<TGConnectingPoint num="1" id="4496" />
+<TGConnectingPoint num="2" id="4497" />
+<TGConnectingPoint num="3" id="4498" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4508" >
+<cdparam x="211" y="201" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="4507" />
+<P1  x="236" y="146" id="4557" />
+<P2  x="247" y="167" id="4520" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4506" >
+<father id="4508" num="0" />
+<cdparam x="211" y="241" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4502" />
+<TGConnectingPoint num="1" id="4503" />
+<TGConnectingPoint num="2" id="4504" />
+<TGConnectingPoint num="3" id="4505" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="4519" >
+<cdparam x="317" y="172" />
+<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INerror_ground()" />
+<TGConnectingPoint num="0" id="4509" />
+<TGConnectingPoint num="1" id="4510" />
+<TGConnectingPoint num="2" id="4511" />
+<TGConnectingPoint num="3" id="4512" />
+<TGConnectingPoint num="4" id="4513" />
+<TGConnectingPoint num="5" id="4514" />
+<TGConnectingPoint num="6" id="4515" />
+<TGConnectingPoint num="7" id="4516" />
+<TGConnectingPoint num="8" id="4517" />
+<TGConnectingPoint num="9" id="4518" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="4530" >
+<cdparam x="209" y="172" />
+<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INconresp()" />
+<TGConnectingPoint num="0" id="4520" />
+<TGConnectingPoint num="1" id="4521" />
+<TGConnectingPoint num="2" id="4522" />
+<TGConnectingPoint num="3" id="4523" />
+<TGConnectingPoint num="4" id="4524" />
+<TGConnectingPoint num="5" id="4525" />
+<TGConnectingPoint num="6" id="4526" />
+<TGConnectingPoint num="7" id="4527" />
+<TGConnectingPoint num="8" id="4528" />
+<TGConnectingPoint num="9" id="4529" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="4541" >
+<cdparam x="115" y="173" />
+<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INconind()" />
+<TGConnectingPoint num="0" id="4531" />
+<TGConnectingPoint num="1" id="4532" />
+<TGConnectingPoint num="2" id="4533" />
+<TGConnectingPoint num="3" id="4534" />
+<TGConnectingPoint num="4" id="4535" />
+<TGConnectingPoint num="5" id="4536" />
+<TGConnectingPoint num="6" id="4537" />
+<TGConnectingPoint num="7" id="4538" />
+<TGConnectingPoint num="8" id="4539" />
+<TGConnectingPoint num="9" id="4540" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="4582" >
+<cdparam x="161" y="96" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="ACTIVE" />
+<TGConnectingPoint num="0" id="4542" />
+<TGConnectingPoint num="1" id="4543" />
+<TGConnectingPoint num="2" id="4544" />
+<TGConnectingPoint num="3" id="4545" />
+<TGConnectingPoint num="4" id="4546" />
+<TGConnectingPoint num="5" id="4547" />
+<TGConnectingPoint num="6" id="4548" />
+<TGConnectingPoint num="7" id="4549" />
+<TGConnectingPoint num="8" id="4550" />
+<TGConnectingPoint num="9" id="4551" />
+<TGConnectingPoint num="10" id="4552" />
+<TGConnectingPoint num="11" id="4553" />
+<TGConnectingPoint num="12" id="4554" />
+<TGConnectingPoint num="13" id="4555" />
+<TGConnectingPoint num="14" id="4556" />
+<TGConnectingPoint num="15" id="4557" />
+<TGConnectingPoint num="16" id="4558" />
+<TGConnectingPoint num="17" id="4559" />
+<TGConnectingPoint num="18" id="4560" />
+<TGConnectingPoint num="19" id="4561" />
+<TGConnectingPoint num="20" id="4562" />
+<TGConnectingPoint num="21" id="4563" />
+<TGConnectingPoint num="22" id="4564" />
+<TGConnectingPoint num="23" id="4565" />
+<TGConnectingPoint num="24" id="4566" />
+<TGConnectingPoint num="25" id="4567" />
+<TGConnectingPoint num="26" id="4568" />
+<TGConnectingPoint num="27" id="4569" />
+<TGConnectingPoint num="28" id="4570" />
+<TGConnectingPoint num="29" id="4571" />
+<TGConnectingPoint num="30" id="4572" />
+<TGConnectingPoint num="31" id="4573" />
+<TGConnectingPoint num="32" id="4574" />
+<TGConnectingPoint num="33" id="4575" />
+<TGConnectingPoint num="34" id="4576" />
+<TGConnectingPoint num="35" id="4577" />
+<TGConnectingPoint num="36" id="4578" />
+<TGConnectingPoint num="37" id="4579" />
+<TGConnectingPoint num="38" id="4580" />
+<TGConnectingPoint num="39" id="4581" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="4584" >
+<cdparam x="179" y="42" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="4583" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Pilot" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="4597" >
+<cdparam x="261" y="165" />
+<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="4593" />
+<TGConnectingPoint num="1" id="4594" />
+<TGConnectingPoint num="2" id="4595" />
+<TGConnectingPoint num="3" id="4596" />
+<P1  x="271" y="165" id="4653" />
+<P2  x="216" y="109" id="4714" />
+<Point x="271" y="173" />
+<Point x="320" y="173" />
+<Point x="320" y="109" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4585" >
+<father id="4597" num="0" />
+<cdparam x="271" y="173" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4586" >
+<father id="4597" num="1" />
+<cdparam x="320" y="173" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4587" >
+<father id="4597" num="2" />
+<cdparam x="320" y="109" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4592" >
+<father id="4597" num="3" />
+<cdparam x="238" y="137" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4588" />
+<TGConnectingPoint num="1" id="4589" />
+<TGConnectingPoint num="2" id="4590" />
+<TGConnectingPoint num="3" id="4591" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4610" >
+<cdparam x="79" y="166" />
+<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="4606" />
+<TGConnectingPoint num="1" id="4607" />
+<TGConnectingPoint num="2" id="4608" />
+<TGConnectingPoint num="3" id="4609" />
+<P1  x="79" y="166" id="4675" />
+<P2  x="216" y="78" id="4698" />
+<Point x="79" y="189" />
+<Point x="341" y="189" />
+<Point x="341" y="78" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4598" >
+<father id="4610" num="0" />
+<cdparam x="79" y="189" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4599" >
+<father id="4610" num="1" />
+<cdparam x="341" y="189" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4600" >
+<father id="4610" num="2" />
+<cdparam x="341" y="78" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4605" >
+<father id="4610" num="3" />
+<cdparam x="79" y="206" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4601" />
+<TGConnectingPoint num="1" id="4602" />
+<TGConnectingPoint num="2" id="4603" />
+<TGConnectingPoint num="3" id="4604" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4623" >
+<cdparam x="177" y="166" />
+<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="4619" />
+<TGConnectingPoint num="1" id="4620" />
+<TGConnectingPoint num="2" id="4621" />
+<TGConnectingPoint num="3" id="4622" />
+<P1  x="177" y="166" id="4664" />
+<P2  x="216" y="91" id="4691" />
+<Point x="177" y="183" />
+<Point x="330" y="183" />
+<Point x="330" y="91" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4611" >
+<father id="4623" num="0" />
+<cdparam x="177" y="183" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4612" >
+<father id="4623" num="1" />
+<cdparam x="330" y="183" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4613" >
+<father id="4623" num="2" />
+<cdparam x="330" y="91" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4618" >
+<father id="4623" num="3" />
+<cdparam x="177" y="206" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4614" />
+<TGConnectingPoint num="1" id="4615" />
+<TGConnectingPoint num="2" id="4616" />
+<TGConnectingPoint num="3" id="4617" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4630" >
+<cdparam x="165" y="44" />
+<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="4629" />
+<P1  x="165" y="44" id="4685" />
+<P2  x="166" y="66" id="4688" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4628" >
+<father id="4630" num="0" />
+<cdparam x="165" y="84" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4624" />
+<TGConnectingPoint num="1" id="4625" />
+<TGConnectingPoint num="2" id="4626" />
+<TGConnectingPoint num="3" id="4627" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4637" >
+<cdparam x="178" y="116" />
+<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="4636" />
+<P1  x="128" y="116" id="4715" />
+<P2  x="79" y="136" id="4674" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4635" >
+<father id="4637" num="0" />
+<cdparam x="178" y="156" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4631" />
+<TGConnectingPoint num="1" id="4632" />
+<TGConnectingPoint num="2" id="4633" />
+<TGConnectingPoint num="3" id="4634" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4644" >
+<cdparam x="178" y="168" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="4643" />
+<P1  x="166" y="116" id="4693" />
+<P2  x="177" y="136" id="4663" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4642" >
+<father id="4644" num="0" />
+<cdparam x="178" y="208" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4638" />
+<TGConnectingPoint num="1" id="4639" />
+<TGConnectingPoint num="2" id="4640" />
+<TGConnectingPoint num="3" id="4641" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4651" >
+<cdparam x="216" y="116" />
+<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="4650" />
+<P1  x="216" y="116" id="4694" />
+<P2  x="271" y="135" id="4652" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4649" >
+<father id="4651" num="0" />
+<cdparam x="246" y="129" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="4645" />
+<TGConnectingPoint num="1" id="4646" />
+<TGConnectingPoint num="2" id="4647" />
+<TGConnectingPoint num="3" id="4648" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="4662" >
+<cdparam x="238" y="140" />
+<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INerror()" />
+<TGConnectingPoint num="0" id="4652" />
+<TGConnectingPoint num="1" id="4653" />
+<TGConnectingPoint num="2" id="4654" />
+<TGConnectingPoint num="3" id="4655" />
+<TGConnectingPoint num="4" id="4656" />
+<TGConnectingPoint num="5" id="4657" />
+<TGConnectingPoint num="6" id="4658" />
+<TGConnectingPoint num="7" id="4659" />
+<TGConnectingPoint num="8" id="4660" />
+<TGConnectingPoint num="9" id="4661" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="4673" >
+<cdparam x="136" y="141" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="INconconf()" />
+<TGConnectingPoint num="0" id="4663" />
+<TGConnectingPoint num="1" id="4664" />
+<TGConnectingPoint num="2" id="4665" />
+<TGConnectingPoint num="3" id="4666" />
+<TGConnectingPoint num="4" id="4667" />
+<TGConnectingPoint num="5" id="4668" />
+<TGConnectingPoint num="6" id="4669" />
+<TGConnectingPoint num="7" id="4670" />
+<TGConnectingPoint num="8" id="4671" />
+<TGConnectingPoint num="9" id="4672" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="4684" >
+<cdparam x="44" y="141" />
+<sizeparam width="70" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="INconreq()" />
+<TGConnectingPoint num="0" id="4674" />
+<TGConnectingPoint num="1" id="4675" />
+<TGConnectingPoint num="2" id="4676" />
+<TGConnectingPoint num="3" id="4677" />
+<TGConnectingPoint num="4" id="4678" />
+<TGConnectingPoint num="5" id="4679" />
+<TGConnectingPoint num="6" id="4680" />
+<TGConnectingPoint num="7" id="4681" />
+<TGConnectingPoint num="8" id="4682" />
+<TGConnectingPoint num="9" id="4683" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="4686" >
+<cdparam x="158" y="24" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="4685" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="4727" >
+<cdparam x="116" y="66" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="ACTIVE" />
+<TGConnectingPoint num="0" id="4687" />
+<TGConnectingPoint num="1" id="4688" />
+<TGConnectingPoint num="2" id="4689" />
+<TGConnectingPoint num="3" id="4690" />
+<TGConnectingPoint num="4" id="4691" />
+<TGConnectingPoint num="5" id="4692" />
+<TGConnectingPoint num="6" id="4693" />
+<TGConnectingPoint num="7" id="4694" />
+<TGConnectingPoint num="8" id="4695" />
+<TGConnectingPoint num="9" id="4696" />
+<TGConnectingPoint num="10" id="4697" />
+<TGConnectingPoint num="11" id="4698" />
+<TGConnectingPoint num="12" id="4699" />
+<TGConnectingPoint num="13" id="4700" />
+<TGConnectingPoint num="14" id="4701" />
+<TGConnectingPoint num="15" id="4702" />
+<TGConnectingPoint num="16" id="4703" />
+<TGConnectingPoint num="17" id="4704" />
+<TGConnectingPoint num="18" id="4705" />
+<TGConnectingPoint num="19" id="4706" />
+<TGConnectingPoint num="20" id="4707" />
+<TGConnectingPoint num="21" id="4708" />
+<TGConnectingPoint num="22" id="4709" />
+<TGConnectingPoint num="23" id="4710" />
+<TGConnectingPoint num="24" id="4711" />
+<TGConnectingPoint num="25" id="4712" />
+<TGConnectingPoint num="26" id="4713" />
+<TGConnectingPoint num="27" id="4714" />
+<TGConnectingPoint num="28" id="4715" />
+<TGConnectingPoint num="29" id="4716" />
+<TGConnectingPoint num="30" id="4717" />
+<TGConnectingPoint num="31" id="4718" />
+<TGConnectingPoint num="32" id="4719" />
+<TGConnectingPoint num="33" id="4720" />
+<TGConnectingPoint num="34" id="4721" />
+<TGConnectingPoint num="35" id="4722" />
+<TGConnectingPoint num="36" id="4723" />
+<TGConnectingPoint num="37" id="4724" />
+<TGConnectingPoint num="38" id="4725" />
+<TGConnectingPoint num="39" id="4726" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/ttool/src/test/resources/ui/diagram2avatar/input/ebook_reader_01.xml b/ttool/src/test/resources/ui/diagram2avatar/input/ebook_reader_01.xml
new file mode 100644
index 0000000000000000000000000000000000000000..186d52671d4de03c396fdc74ef63229c013a3f4d
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/input/ebook_reader_01.xml
@@ -0,0 +1,3797 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<TURTLEGMODELING version="0.99-beta4">
+
+<Modeling type="AVATAR Design" nameTab="AVATAR Design" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<Validated value="PageLoader;UserModel;DisplayDriver;EReaderController;" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="2" >
+<cdparam x="504" y="199" />
+<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="1" />
+<P1  x="491" y="260" id="57" />
+<P2  x="491" y="282" id="127" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in loadPage(Document doc, int pageid)" />
+<osd value="out loadPage(Document doc, int pageid)" />
+<isd value="in getPage(Page aPage)" />
+<oso value="out pageReady(Page aPage)" />
+<FIFOType asynchronous="true" size="4" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="4" >
+<cdparam x="490" y="519" />
+<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="3" />
+<P1  x="639" y="375" id="79" />
+<P2  x="606" y="374" id="130" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<isd value="in home()" />
+<isd value="in openDocument(Document doc)" />
+<isd value="in flipNextPage()" />
+<isd value="in flipPreviousPage()" />
+<isd value="in goToPage(int index)" />
+<oso value="out home()" />
+<oso value="out openDocument(Document doc)" />
+<oso value="out flipNextPage()" />
+<oso value="out flipPreviousPage()" />
+<oso value="out goToPage(int index)" />
+<FIFOType asynchronous="true" size="10" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="6" >
+<cdparam x="248" y="317" />
+<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="5" />
+<P1  x="342" y="375" id="105" />
+<P2  x="377" y="374" id="129" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in displayPage(Page page)" />
+<osd value="out displayPage(Page page)" />
+<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="5003" id="15" >
+<cdparam x="633" y="78" />
+<sizeparam width="212" height="167" 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="MemoryForPages" />
+<TGConnectingPoint num="0" id="7" />
+<TGConnectingPoint num="1" id="8" />
+<TGConnectingPoint num="2" id="9" />
+<TGConnectingPoint num="3" id="10" />
+<TGConnectingPoint num="4" id="11" />
+<TGConnectingPoint num="5" id="12" />
+<TGConnectingPoint num="6" id="13" />
+<TGConnectingPoint num="7" id="14" />
+<extraparam>
+<Attribute access="0" id="index1" value="" type="8" typeOther="" />
+<Attribute access="0" id="data1" value="" type="8" typeOther="" />
+<Attribute access="0" id="index2" value="" type="8" typeOther="" />
+<Attribute access="0" id="data2" value="" type="8" typeOther="" />
+<Attribute access="0" id="index3" value="" type="8" typeOther="" />
+<Attribute access="0" id="data3" value="" type="8" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="32" >
+<cdparam x="636" y="10" />
+<sizeparam width="366" height="27" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="Add the possibility to prefetch pages, and keep the old
+ones in memory (for example, the three last!)
+" />
+<TGConnectingPoint num="0" id="16" />
+<TGConnectingPoint num="1" id="17" />
+<TGConnectingPoint num="2" id="18" />
+<TGConnectingPoint num="3" id="19" />
+<TGConnectingPoint num="4" id="20" />
+<TGConnectingPoint num="5" id="21" />
+<TGConnectingPoint num="6" id="22" />
+<TGConnectingPoint num="7" id="23" />
+<TGConnectingPoint num="8" id="24" />
+<TGConnectingPoint num="9" id="25" />
+<TGConnectingPoint num="10" id="26" />
+<TGConnectingPoint num="11" id="27" />
+<TGConnectingPoint num="12" id="28" />
+<TGConnectingPoint num="13" id="29" />
+<TGConnectingPoint num="14" id="30" />
+<TGConnectingPoint num="15" id="31" />
+<extraparam>
+<Line value="Add the possibility to prefetch pages, and keep the old" />
+<Line value="ones in memory (for example, the three last!)" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5003" id="41" >
+<cdparam x="147" y="167" />
+<sizeparam width="163" height="96" 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="Page" />
+<TGConnectingPoint num="0" id="33" />
+<TGConnectingPoint num="1" id="34" />
+<TGConnectingPoint num="2" id="35" />
+<TGConnectingPoint num="3" id="36" />
+<TGConnectingPoint num="4" id="37" />
+<TGConnectingPoint num="5" id="38" />
+<TGConnectingPoint num="6" id="39" />
+<TGConnectingPoint num="7" id="40" />
+<extraparam>
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5003" id="50" >
+<cdparam x="148" y="66" />
+<sizeparam width="162" height="92" 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="Document" />
+<TGConnectingPoint num="0" id="42" />
+<TGConnectingPoint num="1" id="43" />
+<TGConnectingPoint num="2" id="44" />
+<TGConnectingPoint num="3" id="45" />
+<TGConnectingPoint num="4" id="46" />
+<TGConnectingPoint num="5" id="47" />
+<TGConnectingPoint num="6" id="48" />
+<TGConnectingPoint num="7" id="49" />
+<extraparam>
+<Attribute access="0" id="id" value="" type="8" typeOther="" />
+<Attribute access="0" id="nbOfPages" value="" type="8" typeOther="" />
+<Attribute access="0" id="currentPage" value="0" type="8" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="75" >
+<cdparam x="379" y="69" />
+<sizeparam width="225" height="191" 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="PageLoader" />
+<TGConnectingPoint num="0" id="51" />
+<TGConnectingPoint num="1" id="52" />
+<TGConnectingPoint num="2" id="53" />
+<TGConnectingPoint num="3" id="54" />
+<TGConnectingPoint num="4" id="55" />
+<TGConnectingPoint num="5" id="56" />
+<TGConnectingPoint num="6" id="57" />
+<TGConnectingPoint num="7" id="58" />
+<TGConnectingPoint num="8" id="59" />
+<TGConnectingPoint num="9" id="60" />
+<TGConnectingPoint num="10" id="61" />
+<TGConnectingPoint num="11" id="62" />
+<TGConnectingPoint num="12" id="63" />
+<TGConnectingPoint num="13" id="64" />
+<TGConnectingPoint num="14" id="65" />
+<TGConnectingPoint num="15" id="66" />
+<TGConnectingPoint num="16" id="67" />
+<TGConnectingPoint num="17" id="68" />
+<TGConnectingPoint num="18" id="69" />
+<TGConnectingPoint num="19" id="70" />
+<TGConnectingPoint num="20" id="71" />
+<TGConnectingPoint num="21" id="72" />
+<TGConnectingPoint num="22" id="73" />
+<TGConnectingPoint num="23" id="74" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="doc" value="" type="5" typeOther="Document" />
+<Attribute access="0" id="page" value="" type="5" typeOther="Page" />
+<Attribute access="0" id="pageid" value="" type="8" typeOther="" />
+<Attribute access="0" id="minPageLoadingTime" value="10" type="8" typeOther="" />
+<Attribute access="0" id="maxPageLoadingTime" value="2000" type="8" typeOther="" />
+<Attribute access="0" id="x" value="" type="8" typeOther="" />
+<Attribute access="0" id="memoryPageAccessTime" value="2" type="8" typeOther="" />
+<Attribute access="0" id="memory" value="" type="5" typeOther="MemoryForPages" />
+<Signal value="in loadPage(Document doc, int pageid)" attached="true" />
+<Signal value="out pageReady(Page aPage)" attached="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="100" >
+<cdparam x="639" y="283" />
+<sizeparam width="198" height="184" 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="UserModel" />
+<TGConnectingPoint num="0" id="76" />
+<TGConnectingPoint num="1" id="77" />
+<TGConnectingPoint num="2" id="78" />
+<TGConnectingPoint num="3" id="79" />
+<TGConnectingPoint num="4" id="80" />
+<TGConnectingPoint num="5" id="81" />
+<TGConnectingPoint num="6" id="82" />
+<TGConnectingPoint num="7" id="83" />
+<TGConnectingPoint num="8" id="84" />
+<TGConnectingPoint num="9" id="85" />
+<TGConnectingPoint num="10" id="86" />
+<TGConnectingPoint num="11" id="87" />
+<TGConnectingPoint num="12" id="88" />
+<TGConnectingPoint num="13" id="89" />
+<TGConnectingPoint num="14" id="90" />
+<TGConnectingPoint num="15" id="91" />
+<TGConnectingPoint num="16" id="92" />
+<TGConnectingPoint num="17" id="93" />
+<TGConnectingPoint num="18" id="94" />
+<TGConnectingPoint num="19" id="95" />
+<TGConnectingPoint num="20" id="96" />
+<TGConnectingPoint num="21" id="97" />
+<TGConnectingPoint num="22" id="98" />
+<TGConnectingPoint num="23" id="99" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="doc1" value="" type="5" typeOther="Document" />
+<Attribute access="0" id="doc2" value="" type="5" typeOther="Document" />
+<Attribute access="0" id="index" value="" type="8" typeOther="" />
+<Signal value="out home()" attached="false" />
+<Signal value="out openDocument(Document doc)" attached="true" />
+<Signal value="out flipNextPage()" attached="true" />
+<Signal value="out flipPreviousPage()" attached="false" />
+<Signal value="out goToPage(int index)" attached="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="125" >
+<cdparam x="92" y="287" />
+<sizeparam width="250" height="177" 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="DisplayDriver" />
+<TGConnectingPoint num="0" id="101" />
+<TGConnectingPoint num="1" id="102" />
+<TGConnectingPoint num="2" id="103" />
+<TGConnectingPoint num="3" id="104" />
+<TGConnectingPoint num="4" id="105" />
+<TGConnectingPoint num="5" id="106" />
+<TGConnectingPoint num="6" id="107" />
+<TGConnectingPoint num="7" id="108" />
+<TGConnectingPoint num="8" id="109" />
+<TGConnectingPoint num="9" id="110" />
+<TGConnectingPoint num="10" id="111" />
+<TGConnectingPoint num="11" id="112" />
+<TGConnectingPoint num="12" id="113" />
+<TGConnectingPoint num="13" id="114" />
+<TGConnectingPoint num="14" id="115" />
+<TGConnectingPoint num="15" id="116" />
+<TGConnectingPoint num="16" id="117" />
+<TGConnectingPoint num="17" id="118" />
+<TGConnectingPoint num="18" id="119" />
+<TGConnectingPoint num="19" id="120" />
+<TGConnectingPoint num="20" id="121" />
+<TGConnectingPoint num="21" id="122" />
+<TGConnectingPoint num="22" id="123" />
+<TGConnectingPoint num="23" id="124" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="page" value="" type="5" typeOther="Page" />
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Method value="printPage(int data)" />
+<Signal value="in displayPage(Page page)" attached="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="150" >
+<cdparam x="377" y="282" />
+<sizeparam width="229" height="184" 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="EReaderController" />
+<TGConnectingPoint num="0" id="126" />
+<TGConnectingPoint num="1" id="127" />
+<TGConnectingPoint num="2" id="128" />
+<TGConnectingPoint num="3" id="129" />
+<TGConnectingPoint num="4" id="130" />
+<TGConnectingPoint num="5" id="131" />
+<TGConnectingPoint num="6" id="132" />
+<TGConnectingPoint num="7" id="133" />
+<TGConnectingPoint num="8" id="134" />
+<TGConnectingPoint num="9" id="135" />
+<TGConnectingPoint num="10" id="136" />
+<TGConnectingPoint num="11" id="137" />
+<TGConnectingPoint num="12" id="138" />
+<TGConnectingPoint num="13" id="139" />
+<TGConnectingPoint num="14" id="140" />
+<TGConnectingPoint num="15" id="141" />
+<TGConnectingPoint num="16" id="142" />
+<TGConnectingPoint num="17" id="143" />
+<TGConnectingPoint num="18" id="144" />
+<TGConnectingPoint num="19" id="145" />
+<TGConnectingPoint num="20" id="146" />
+<TGConnectingPoint num="21" id="147" />
+<TGConnectingPoint num="22" id="148" />
+<TGConnectingPoint num="23" id="149" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="currentDocument" value="" type="5" typeOther="Document" />
+<Attribute access="0" id="currentPage" value="" type="8" typeOther="" />
+<Attribute access="0" id="page" value="" type="5" typeOther="Page" />
+<Signal value="out displayPage(Page page)" attached="true" />
+<Signal value="in openDocument(Document doc)" attached="true" />
+<Signal value="in flipNextPage()" attached="true" />
+<Signal value="in flipPreviousPage()" attached="true" />
+<Signal value="in goToPage(int index)" attached="true" />
+<Signal value="in home()" attached="true" />
+<Signal value="out loadPage(Document doc, int pageid)" attached="true" />
+<Signal value="in getPage(Page aPage)" attached="true" />
+</extraparam>
+</COMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="PageLoader" minX="10" maxX="1400" minY="10" maxY="1900" >
+<CONNECTOR type="5102" id="159" >
+<cdparam x="403" y="844" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to state0" value="null" />
+<TGConnectingPoint num="0" id="157" />
+<TGConnectingPoint num="1" id="158" />
+<P1  x="403" y="844" id="369" />
+<P2  x="703" y="1149" id="392" />
+<Point x="703" y="1048" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="151" >
+<father id="159" num="0" />
+<cdparam x="703" y="1048" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="156" >
+<father id="159" num="1" />
+<cdparam x="476" y="889" />
+<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="152" />
+<TGConnectingPoint num="1" id="153" />
+<TGConnectingPoint num="2" id="154" />
+<TGConnectingPoint num="3" id="155" />
+<extraparam>
+<guard value="[ else ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="168" >
+<cdparam x="409" y="1462" />
+<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="166" />
+<TGConnectingPoint num="1" id="167" />
+<P1  x="400" y="1459" id="873" />
+<P2  x="631" y="1199" id="389" />
+<Point x="631" y="1459" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="160" >
+<father id="168" num="0" />
+<cdparam x="631" y="1459" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="165" >
+<father id="168" num="1" />
+<cdparam x="562" y="1447" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="161" />
+<TGConnectingPoint num="1" id="162" />
+<TGConnectingPoint num="2" id="163" />
+<TGConnectingPoint num="3" id="164" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="175" >
+<cdparam x="256" y="1075" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to TGComponent" value="null" />
+<TGConnectingPoint num="0" id="174" />
+<P1  x="256" y="1075" id="942" />
+<P2  x="263" y="1113" id="985" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="173" >
+<father id="175" num="0" />
+<cdparam x="148" y="1101" />
+<sizeparam width="315" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="169" />
+<TGConnectingPoint num="1" id="170" />
+<TGConnectingPoint num="2" id="171" />
+<TGConnectingPoint num="3" id="172" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="minPageLoadingTime" />
+<afterMax value="maxPageLoadingTime" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="182" >
+<cdparam x="257" y="1176" />
+<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="181" />
+<P1  x="263" y="1205" id="950" />
+<P2  x="263" y="1270" id="902" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="180" >
+<father id="182" num="0" />
+<cdparam x="257" y="1216" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="176" />
+<TGConnectingPoint num="1" id="177" />
+<TGConnectingPoint num="2" id="178" />
+<TGConnectingPoint num="3" id="179" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="189" >
+<cdparam x="206" y="1353" />
+<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="188" />
+<P1  x="263" y="1312" id="907" />
+<P2  x="263" y="1431" id="861" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="187" >
+<father id="189" num="0" />
+<cdparam x="273" y="1333" />
+<sizeparam width="206" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="183" />
+<TGConnectingPoint num="1" id="184" />
+<TGConnectingPoint num="2" id="185" />
+<TGConnectingPoint num="3" id="186" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="memory.index1 = memory.index2" />
+<actions value="memory.data1 = memory.data2" />
+<actions value="memory.index2 = memory.index3" />
+<actions value="memory.data2 = memory.data3" />
+<actions value="memory.index3 = pageid" />
+<actions value="memory.data3 = x" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="196" >
+<cdparam x="265" y="1112" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from TGComponent to state0" value="null" />
+<TGConnectingPoint num="0" id="195" />
+<P1  x="263" y="1143" id="986" />
+<P2  x="263" y="1155" id="945" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="194" >
+<father id="196" num="0" />
+<cdparam x="265" y="1152" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="190" />
+<TGConnectingPoint num="1" id="191" />
+<TGConnectingPoint num="2" id="192" />
+<TGConnectingPoint num="3" id="193" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="203" >
+<cdparam x="414" y="820" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to choice" value="null" />
+<TGConnectingPoint num="0" id="202" />
+<P1  x="378" y="779" id="425" />
+<P2  x="378" y="819" id="367" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="201" >
+<father id="203" num="0" />
+<cdparam x="391" y="807" />
+<sizeparam width="130" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="197" />
+<TGConnectingPoint num="1" id="198" />
+<TGConnectingPoint num="2" id="199" />
+<TGConnectingPoint num="3" id="200" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="pageid = pageid + 1" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="210" >
+<cdparam x="459" y="979" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="209" />
+<P1  x="385" y="1078" id="999" />
+<P2  x="559" y="1078" id="838" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="208" >
+<father id="210" num="0" />
+<cdparam x="459" y="1019" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="204" />
+<TGConnectingPoint num="1" id="205" />
+<TGConnectingPoint num="2" id="206" />
+<TGConnectingPoint num="3" id="207" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="223" >
+<cdparam x="1046" y="703" />
+<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="219" />
+<TGConnectingPoint num="1" id="220" />
+<TGConnectingPoint num="2" id="221" />
+<TGConnectingPoint num="3" id="222" />
+<P1  x="1046" y="703" id="662" />
+<P2  x="560" y="295" id="578" />
+<Point x="1046" y="731" />
+<Point x="1153" y="731" />
+<Point x="1153" y="378" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="211" >
+<father id="223" num="0" />
+<cdparam x="1046" y="731" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="212" >
+<father id="223" num="1" />
+<cdparam x="1153" y="731" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="213" >
+<father id="223" num="2" />
+<cdparam x="1153" y="378" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="218" >
+<father id="223" num="3" />
+<cdparam x="1046" y="743" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="214" />
+<TGConnectingPoint num="1" id="215" />
+<TGConnectingPoint num="2" id="216" />
+<TGConnectingPoint num="3" id="217" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="234" >
+<cdparam x="647" y="977" />
+<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="231" />
+<TGConnectingPoint num="1" id="232" />
+<TGConnectingPoint num="2" id="233" />
+<P1  x="679" y="947" id="545" />
+<P2  x="428" y="709" id="448" />
+<Point x="527" y="823" />
+<Point x="493" y="709" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="224" >
+<father id="234" num="0" />
+<cdparam x="527" y="823" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="225" >
+<father id="234" num="1" />
+<cdparam x="493" y="709" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="230" >
+<father id="234" num="2" />
+<cdparam x="647" y="1017" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="226" />
+<TGConnectingPoint num="1" id="227" />
+<TGConnectingPoint num="2" id="228" />
+<TGConnectingPoint num="3" id="229" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="243" >
+<cdparam x="459" y="427" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to state0" value="null" />
+<TGConnectingPoint num="0" id="241" />
+<TGConnectingPoint num="1" id="242" />
+<P1  x="422" y="361" id="519" />
+<P2  x="735" y="510" id="798" />
+<Point x="735" y="443" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="235" >
+<father id="243" num="0" />
+<cdparam x="735" y="443" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="240" >
+<father id="243" num="1" />
+<cdparam x="591" y="430" />
+<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="236" />
+<TGConnectingPoint num="1" id="237" />
+<TGConnectingPoint num="2" id="238" />
+<TGConnectingPoint num="3" id="239" />
+<extraparam>
+<guard value="[ else ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="254" >
+<cdparam x="459" y="427" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to state0" value="null" />
+<TGConnectingPoint num="0" id="251" />
+<TGConnectingPoint num="1" id="252" />
+<TGConnectingPoint num="2" id="253" />
+<P1  x="397" y="386" id="520" />
+<P2  x="392" y="511" id="480" />
+<Point x="440" y="406" />
+<Point x="441" y="488" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="244" >
+<father id="254" num="0" />
+<cdparam x="440" y="406" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="245" >
+<father id="254" num="1" />
+<cdparam x="441" y="488" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="250" >
+<father id="254" num="2" />
+<cdparam x="350" y="446" />
+<sizeparam width="179" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="246" />
+<TGConnectingPoint num="1" id="247" />
+<TGConnectingPoint num="2" id="248" />
+<TGConnectingPoint num="3" id="249" />
+<extraparam>
+<guard value="[pageid == memory.index3 ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="page.data = memory.data3" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="261" >
+<cdparam x="409" y="427" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to state0" value="null" />
+<TGConnectingPoint num="0" id="260" />
+<P1  x="372" y="361" id="518" />
+<P2  x="276" y="486" id="484" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="259" >
+<father id="261" num="0" />
+<cdparam x="200" y="368" />
+<sizeparam width="179" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="255" />
+<TGConnectingPoint num="1" id="256" />
+<TGConnectingPoint num="2" id="257" />
+<TGConnectingPoint num="3" id="258" />
+<extraparam>
+<guard value="[ pageid == memory.index1]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="page.data = memory.data1" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="268" >
+<cdparam x="766" y="710" />
+<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="267" />
+<P1  x="816" y="710" id="703" />
+<P2  x="816" y="762" id="616" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="266" >
+<father id="268" num="0" />
+<cdparam x="766" y="750" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="262" />
+<TGConnectingPoint num="1" id="263" />
+<TGConnectingPoint num="2" id="264" />
+<TGConnectingPoint num="3" id="265" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="275" >
+<cdparam x="760" y="560" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="274" />
+<P1  x="934" y="567" id="808" />
+<P2  x="1046" y="605" id="781" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="273" >
+<father id="275" num="0" />
+<cdparam x="760" y="600" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="269" />
+<TGConnectingPoint num="1" id="270" />
+<TGConnectingPoint num="2" id="271" />
+<TGConnectingPoint num="3" id="272" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="282" >
+<cdparam x="859" y="632" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="281" />
+<P1  x="1046" y="635" id="782" />
+<P2  x="1046" y="653" id="657" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="280" >
+<father id="282" num="0" />
+<cdparam x="859" y="672" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="276" />
+<TGConnectingPoint num="1" id="277" />
+<TGConnectingPoint num="2" id="278" />
+<TGConnectingPoint num="3" id="279" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="289" >
+<cdparam x="428" y="125" />
+<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="288" />
+<P1  x="428" y="125" id="779" />
+<P2  x="428" y="166" id="739" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="287" >
+<father id="289" num="0" />
+<cdparam x="428" y="165" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="283" />
+<TGConnectingPoint num="1" id="284" />
+<TGConnectingPoint num="2" id="285" />
+<TGConnectingPoint num="3" id="286" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="296" >
+<cdparam x="428" y="216" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="295" />
+<P1  x="428" y="216" id="744" />
+<P2  x="428" y="223" id="849" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="294" >
+<father id="296" num="0" />
+<cdparam x="428" y="256" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="290" />
+<TGConnectingPoint num="1" id="291" />
+<TGConnectingPoint num="2" id="292" />
+<TGConnectingPoint num="3" id="293" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="303" >
+<cdparam x="428" y="272" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="302" />
+<P1  x="428" y="253" id="850" />
+<P2  x="428" y="270" id="575" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="301" >
+<father id="303" num="0" />
+<cdparam x="428" y="312" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="297" />
+<TGConnectingPoint num="1" id="298" />
+<TGConnectingPoint num="2" id="299" />
+<TGConnectingPoint num="3" id="300" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="310" >
+<cdparam x="685" y="560" />
+<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="309" />
+<P1  x="864" y="565" id="792" />
+<P2  x="858" y="606" id="794" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="308" >
+<father id="310" num="0" />
+<cdparam x="574" y="578" />
+<sizeparam width="315" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="304" />
+<TGConnectingPoint num="1" id="305" />
+<TGConnectingPoint num="2" id="306" />
+<TGConnectingPoint num="3" id="307" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="minPageLoadingTime" />
+<afterMax value="maxPageLoadingTime" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="317" >
+<cdparam x="714" y="662" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from TGComponent to state0" value="null" />
+<TGConnectingPoint num="0" id="316" />
+<P1  x="858" y="636" id="795" />
+<P2  x="816" y="660" id="698" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="315" >
+<father id="317" num="0" />
+<cdparam x="719" y="648" />
+<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="311" />
+<TGConnectingPoint num="1" id="312" />
+<TGConnectingPoint num="2" id="313" />
+<TGConnectingPoint num="3" id="314" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="page.data = x" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="324" >
+<cdparam x="718" y="868" />
+<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="323" />
+<P1  x="816" y="804" id="621" />
+<P2  x="816" y="919" id="534" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="322" >
+<father id="324" num="0" />
+<cdparam x="737" y="820" />
+<sizeparam width="206" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="318" />
+<TGConnectingPoint num="1" id="319" />
+<TGConnectingPoint num="2" id="320" />
+<TGConnectingPoint num="3" id="321" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="memory.index1 = memory.index2" />
+<actions value="memory.data1 = memory.data2" />
+<actions value="memory.index2 = memory.index3" />
+<actions value="memory.data2 = memory.data3" />
+<actions value="memory.index3 = pageid" />
+<actions value="memory.data3 = page.data" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="331" >
+<cdparam x="434" y="368" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to choice" value="null" />
+<TGConnectingPoint num="0" id="330" />
+<P1  x="428" y="320" id="580" />
+<P2  x="397" y="336" id="517" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="329" >
+<father id="331" num="0" />
+<cdparam x="434" y="408" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="325" />
+<TGConnectingPoint num="1" id="326" />
+<TGConnectingPoint num="2" id="327" />
+<TGConnectingPoint num="3" id="328" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="338" >
+<cdparam x="434" y="452" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to state0" value="null" />
+<TGConnectingPoint num="0" id="337" />
+<P1  x="397" y="386" id="523" />
+<P2  x="315" y="486" id="477" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="336" >
+<father id="338" num="0" />
+<cdparam x="272" y="436" />
+<sizeparam width="179" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="332" />
+<TGConnectingPoint num="1" id="333" />
+<TGConnectingPoint num="2" id="334" />
+<TGConnectingPoint num="3" id="335" />
+<extraparam>
+<guard value="[pageid == memory.index2 ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="page.data = memory.data2" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="345" >
+<cdparam x="380" y="628" />
+<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="344" />
+<P1  x="353" y="536" id="491" />
+<P2  x="353" y="672" id="443" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="343" >
+<father id="345" num="0" />
+<cdparam x="201" y="658" />
+<sizeparam width="356" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="339" />
+<TGConnectingPoint num="1" id="340" />
+<TGConnectingPoint num="2" id="341" />
+<TGConnectingPoint num="3" id="342" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="memoryPageAccessTime" />
+<afterMax value="memoryPageAccessTime" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="352" >
+<cdparam x="456" y="730" />
+<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="351" />
+<P1  x="378" y="722" id="441" />
+<P2  x="378" y="749" id="424" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="350" >
+<father id="352" num="0" />
+<cdparam x="456" y="770" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="346" />
+<TGConnectingPoint num="1" id="347" />
+<TGConnectingPoint num="2" id="348" />
+<TGConnectingPoint num="3" id="349" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="359" >
+<cdparam x="581" y="1079" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="358" />
+<P1  x="559" y="1108" id="839" />
+<P2  x="559" y="1149" id="391" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="357" >
+<father id="359" num="0" />
+<cdparam x="581" y="1119" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="353" />
+<TGConnectingPoint num="1" id="354" />
+<TGConnectingPoint num="2" id="355" />
+<TGConnectingPoint num="3" id="356" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="366" >
+<cdparam x="384" y="893" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to state0" value="null" />
+<TGConnectingPoint num="0" id="365" />
+<P1  x="378" y="869" id="373" />
+<P2  x="256" y="1028" id="989" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="364" >
+<father id="366" num="0" />
+<cdparam x="26" y="1011" />
+<sizeparam width="910" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="360" />
+<TGConnectingPoint num="1" id="361" />
+<TGConnectingPoint num="2" id="362" />
+<TGConnectingPoint num="3" id="363" />
+<extraparam>
+<guard value="[(pageid &lt; doc.nbOfPages) and  (not(memory.index1 == pageid)) and  (not(memory.index2 == pageid)) and  (not(memory.index3 == pageid))  ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5107" id="382" >
+<cdparam x="363" y="829" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="367" />
+<TGConnectingPoint num="1" id="368" />
+<TGConnectingPoint num="2" id="369" />
+<TGConnectingPoint num="3" id="370" />
+<TGConnectingPoint num="4" id="371" />
+<TGConnectingPoint num="5" id="372" />
+<TGConnectingPoint num="6" id="373" />
+<TGConnectingPoint num="7" id="374" />
+<TGConnectingPoint num="8" id="375" />
+<TGConnectingPoint num="9" id="376" />
+<TGConnectingPoint num="10" id="377" />
+<TGConnectingPoint num="11" id="378" />
+<TGConnectingPoint num="12" id="379" />
+<TGConnectingPoint num="13" id="380" />
+<TGConnectingPoint num="14" id="381" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="423" >
+<cdparam x="487" y="1149" />
+<sizeparam width="289" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="WaitingForPageToLoad" />
+<TGConnectingPoint num="0" id="383" />
+<TGConnectingPoint num="1" id="384" />
+<TGConnectingPoint num="2" id="385" />
+<TGConnectingPoint num="3" id="386" />
+<TGConnectingPoint num="4" id="387" />
+<TGConnectingPoint num="5" id="388" />
+<TGConnectingPoint num="6" id="389" />
+<TGConnectingPoint num="7" id="390" />
+<TGConnectingPoint num="8" id="391" />
+<TGConnectingPoint num="9" id="392" />
+<TGConnectingPoint num="10" id="393" />
+<TGConnectingPoint num="11" id="394" />
+<TGConnectingPoint num="12" id="395" />
+<TGConnectingPoint num="13" id="396" />
+<TGConnectingPoint num="14" id="397" />
+<TGConnectingPoint num="15" id="398" />
+<TGConnectingPoint num="16" id="399" />
+<TGConnectingPoint num="17" id="400" />
+<TGConnectingPoint num="18" id="401" />
+<TGConnectingPoint num="19" id="402" />
+<TGConnectingPoint num="20" id="403" />
+<TGConnectingPoint num="21" id="404" />
+<TGConnectingPoint num="22" id="405" />
+<TGConnectingPoint num="23" id="406" />
+<TGConnectingPoint num="24" id="407" />
+<TGConnectingPoint num="25" id="408" />
+<TGConnectingPoint num="26" id="409" />
+<TGConnectingPoint num="27" id="410" />
+<TGConnectingPoint num="28" id="411" />
+<TGConnectingPoint num="29" id="412" />
+<TGConnectingPoint num="30" id="413" />
+<TGConnectingPoint num="31" id="414" />
+<TGConnectingPoint num="32" id="415" />
+<TGConnectingPoint num="33" id="416" />
+<TGConnectingPoint num="34" id="417" />
+<TGConnectingPoint num="35" id="418" />
+<TGConnectingPoint num="36" id="419" />
+<TGConnectingPoint num="37" id="420" />
+<TGConnectingPoint num="38" id="421" />
+<TGConnectingPoint num="39" id="422" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="434" >
+<cdparam x="317" y="754" />
+<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="Send signal" value="pageReady(page)" />
+<TGConnectingPoint num="0" id="424" />
+<TGConnectingPoint num="1" id="425" />
+<TGConnectingPoint num="2" id="426" />
+<TGConnectingPoint num="3" id="427" />
+<TGConnectingPoint num="4" id="428" />
+<TGConnectingPoint num="5" id="429" />
+<TGConnectingPoint num="6" id="430" />
+<TGConnectingPoint num="7" id="431" />
+<TGConnectingPoint num="8" id="432" />
+<TGConnectingPoint num="9" id="433" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="475" >
+<cdparam x="328" y="672" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="PageReady" />
+<TGConnectingPoint num="0" id="435" />
+<TGConnectingPoint num="1" id="436" />
+<TGConnectingPoint num="2" id="437" />
+<TGConnectingPoint num="3" id="438" />
+<TGConnectingPoint num="4" id="439" />
+<TGConnectingPoint num="5" id="440" />
+<TGConnectingPoint num="6" id="441" />
+<TGConnectingPoint num="7" id="442" />
+<TGConnectingPoint num="8" id="443" />
+<TGConnectingPoint num="9" id="444" />
+<TGConnectingPoint num="10" id="445" />
+<TGConnectingPoint num="11" id="446" />
+<TGConnectingPoint num="12" id="447" />
+<TGConnectingPoint num="13" id="448" />
+<TGConnectingPoint num="14" id="449" />
+<TGConnectingPoint num="15" id="450" />
+<TGConnectingPoint num="16" id="451" />
+<TGConnectingPoint num="17" id="452" />
+<TGConnectingPoint num="18" id="453" />
+<TGConnectingPoint num="19" id="454" />
+<TGConnectingPoint num="20" id="455" />
+<TGConnectingPoint num="21" id="456" />
+<TGConnectingPoint num="22" id="457" />
+<TGConnectingPoint num="23" id="458" />
+<TGConnectingPoint num="24" id="459" />
+<TGConnectingPoint num="25" id="460" />
+<TGConnectingPoint num="26" id="461" />
+<TGConnectingPoint num="27" id="462" />
+<TGConnectingPoint num="28" id="463" />
+<TGConnectingPoint num="29" id="464" />
+<TGConnectingPoint num="30" id="465" />
+<TGConnectingPoint num="31" id="466" />
+<TGConnectingPoint num="32" id="467" />
+<TGConnectingPoint num="33" id="468" />
+<TGConnectingPoint num="34" id="469" />
+<TGConnectingPoint num="35" id="470" />
+<TGConnectingPoint num="36" id="471" />
+<TGConnectingPoint num="37" id="472" />
+<TGConnectingPoint num="38" id="473" />
+<TGConnectingPoint num="39" id="474" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="516" >
+<cdparam x="238" y="486" />
+<sizeparam width="154" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="gotItFromMemory" />
+<TGConnectingPoint num="0" id="476" />
+<TGConnectingPoint num="1" id="477" />
+<TGConnectingPoint num="2" id="478" />
+<TGConnectingPoint num="3" id="479" />
+<TGConnectingPoint num="4" id="480" />
+<TGConnectingPoint num="5" id="481" />
+<TGConnectingPoint num="6" id="482" />
+<TGConnectingPoint num="7" id="483" />
+<TGConnectingPoint num="8" id="484" />
+<TGConnectingPoint num="9" id="485" />
+<TGConnectingPoint num="10" id="486" />
+<TGConnectingPoint num="11" id="487" />
+<TGConnectingPoint num="12" id="488" />
+<TGConnectingPoint num="13" id="489" />
+<TGConnectingPoint num="14" id="490" />
+<TGConnectingPoint num="15" id="491" />
+<TGConnectingPoint num="16" id="492" />
+<TGConnectingPoint num="17" id="493" />
+<TGConnectingPoint num="18" id="494" />
+<TGConnectingPoint num="19" id="495" />
+<TGConnectingPoint num="20" id="496" />
+<TGConnectingPoint num="21" id="497" />
+<TGConnectingPoint num="22" id="498" />
+<TGConnectingPoint num="23" id="499" />
+<TGConnectingPoint num="24" id="500" />
+<TGConnectingPoint num="25" id="501" />
+<TGConnectingPoint num="26" id="502" />
+<TGConnectingPoint num="27" id="503" />
+<TGConnectingPoint num="28" id="504" />
+<TGConnectingPoint num="29" id="505" />
+<TGConnectingPoint num="30" id="506" />
+<TGConnectingPoint num="31" id="507" />
+<TGConnectingPoint num="32" id="508" />
+<TGConnectingPoint num="33" id="509" />
+<TGConnectingPoint num="34" id="510" />
+<TGConnectingPoint num="35" id="511" />
+<TGConnectingPoint num="36" id="512" />
+<TGConnectingPoint num="37" id="513" />
+<TGConnectingPoint num="38" id="514" />
+<TGConnectingPoint num="39" id="515" />
+<invariant />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5107" id="532" >
+<cdparam x="382" y="346" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="517" />
+<TGConnectingPoint num="1" id="518" />
+<TGConnectingPoint num="2" id="519" />
+<TGConnectingPoint num="3" id="520" />
+<TGConnectingPoint num="4" id="521" />
+<TGConnectingPoint num="5" id="522" />
+<TGConnectingPoint num="6" id="523" />
+<TGConnectingPoint num="7" id="524" />
+<TGConnectingPoint num="8" id="525" />
+<TGConnectingPoint num="9" id="526" />
+<TGConnectingPoint num="10" id="527" />
+<TGConnectingPoint num="11" id="528" />
+<TGConnectingPoint num="12" id="529" />
+<TGConnectingPoint num="13" id="530" />
+<TGConnectingPoint num="14" id="531" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="573" >
+<cdparam x="679" y="919" />
+<sizeparam width="274" height="38" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="PutPageInMemoryDone" />
+<TGConnectingPoint num="0" id="533" />
+<TGConnectingPoint num="1" id="534" />
+<TGConnectingPoint num="2" id="535" />
+<TGConnectingPoint num="3" id="536" />
+<TGConnectingPoint num="4" id="537" />
+<TGConnectingPoint num="5" id="538" />
+<TGConnectingPoint num="6" id="539" />
+<TGConnectingPoint num="7" id="540" />
+<TGConnectingPoint num="8" id="541" />
+<TGConnectingPoint num="9" id="542" />
+<TGConnectingPoint num="10" id="543" />
+<TGConnectingPoint num="11" id="544" />
+<TGConnectingPoint num="12" id="545" />
+<TGConnectingPoint num="13" id="546" />
+<TGConnectingPoint num="14" id="547" />
+<TGConnectingPoint num="15" id="548" />
+<TGConnectingPoint num="16" id="549" />
+<TGConnectingPoint num="17" id="550" />
+<TGConnectingPoint num="18" id="551" />
+<TGConnectingPoint num="19" id="552" />
+<TGConnectingPoint num="20" id="553" />
+<TGConnectingPoint num="21" id="554" />
+<TGConnectingPoint num="22" id="555" />
+<TGConnectingPoint num="23" id="556" />
+<TGConnectingPoint num="24" id="557" />
+<TGConnectingPoint num="25" id="558" />
+<TGConnectingPoint num="26" id="559" />
+<TGConnectingPoint num="27" id="560" />
+<TGConnectingPoint num="28" id="561" />
+<TGConnectingPoint num="29" id="562" />
+<TGConnectingPoint num="30" id="563" />
+<TGConnectingPoint num="31" id="564" />
+<TGConnectingPoint num="32" id="565" />
+<TGConnectingPoint num="33" id="566" />
+<TGConnectingPoint num="34" id="567" />
+<TGConnectingPoint num="35" id="568" />
+<TGConnectingPoint num="36" id="569" />
+<TGConnectingPoint num="37" id="570" />
+<TGConnectingPoint num="38" id="571" />
+<TGConnectingPoint num="39" id="572" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="614" >
+<cdparam x="296" y="270" />
+<sizeparam width="264" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="getFromMemory" />
+<TGConnectingPoint num="0" id="574" />
+<TGConnectingPoint num="1" id="575" />
+<TGConnectingPoint num="2" id="576" />
+<TGConnectingPoint num="3" id="577" />
+<TGConnectingPoint num="4" id="578" />
+<TGConnectingPoint num="5" id="579" />
+<TGConnectingPoint num="6" id="580" />
+<TGConnectingPoint num="7" id="581" />
+<TGConnectingPoint num="8" id="582" />
+<TGConnectingPoint num="9" id="583" />
+<TGConnectingPoint num="10" id="584" />
+<TGConnectingPoint num="11" id="585" />
+<TGConnectingPoint num="12" id="586" />
+<TGConnectingPoint num="13" id="587" />
+<TGConnectingPoint num="14" id="588" />
+<TGConnectingPoint num="15" id="589" />
+<TGConnectingPoint num="16" id="590" />
+<TGConnectingPoint num="17" id="591" />
+<TGConnectingPoint num="18" id="592" />
+<TGConnectingPoint num="19" id="593" />
+<TGConnectingPoint num="20" id="594" />
+<TGConnectingPoint num="21" id="595" />
+<TGConnectingPoint num="22" id="596" />
+<TGConnectingPoint num="23" id="597" />
+<TGConnectingPoint num="24" id="598" />
+<TGConnectingPoint num="25" id="599" />
+<TGConnectingPoint num="26" id="600" />
+<TGConnectingPoint num="27" id="601" />
+<TGConnectingPoint num="28" id="602" />
+<TGConnectingPoint num="29" id="603" />
+<TGConnectingPoint num="30" id="604" />
+<TGConnectingPoint num="31" id="605" />
+<TGConnectingPoint num="32" id="606" />
+<TGConnectingPoint num="33" id="607" />
+<TGConnectingPoint num="34" id="608" />
+<TGConnectingPoint num="35" id="609" />
+<TGConnectingPoint num="36" id="610" />
+<TGConnectingPoint num="37" id="611" />
+<TGConnectingPoint num="38" id="612" />
+<TGConnectingPoint num="39" id="613" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="655" >
+<cdparam x="685" y="762" />
+<sizeparam width="263" height="42" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="PutPageInMemory" />
+<TGConnectingPoint num="0" id="615" />
+<TGConnectingPoint num="1" id="616" />
+<TGConnectingPoint num="2" id="617" />
+<TGConnectingPoint num="3" id="618" />
+<TGConnectingPoint num="4" id="619" />
+<TGConnectingPoint num="5" id="620" />
+<TGConnectingPoint num="6" id="621" />
+<TGConnectingPoint num="7" id="622" />
+<TGConnectingPoint num="8" id="623" />
+<TGConnectingPoint num="9" id="624" />
+<TGConnectingPoint num="10" id="625" />
+<TGConnectingPoint num="11" id="626" />
+<TGConnectingPoint num="12" id="627" />
+<TGConnectingPoint num="13" id="628" />
+<TGConnectingPoint num="14" id="629" />
+<TGConnectingPoint num="15" id="630" />
+<TGConnectingPoint num="16" id="631" />
+<TGConnectingPoint num="17" id="632" />
+<TGConnectingPoint num="18" id="633" />
+<TGConnectingPoint num="19" id="634" />
+<TGConnectingPoint num="20" id="635" />
+<TGConnectingPoint num="21" id="636" />
+<TGConnectingPoint num="22" id="637" />
+<TGConnectingPoint num="23" id="638" />
+<TGConnectingPoint num="24" id="639" />
+<TGConnectingPoint num="25" id="640" />
+<TGConnectingPoint num="26" id="641" />
+<TGConnectingPoint num="27" id="642" />
+<TGConnectingPoint num="28" id="643" />
+<TGConnectingPoint num="29" id="644" />
+<TGConnectingPoint num="30" id="645" />
+<TGConnectingPoint num="31" id="646" />
+<TGConnectingPoint num="32" id="647" />
+<TGConnectingPoint num="33" id="648" />
+<TGConnectingPoint num="34" id="649" />
+<TGConnectingPoint num="35" id="650" />
+<TGConnectingPoint num="36" id="651" />
+<TGConnectingPoint num="37" id="652" />
+<TGConnectingPoint num="38" id="653" />
+<TGConnectingPoint num="39" id="654" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="696" >
+<cdparam x="996" y="653" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="Interrupted" />
+<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" />
+<TGConnectingPoint num="24" id="680" />
+<TGConnectingPoint num="25" id="681" />
+<TGConnectingPoint num="26" id="682" />
+<TGConnectingPoint num="27" id="683" />
+<TGConnectingPoint num="28" id="684" />
+<TGConnectingPoint num="29" id="685" />
+<TGConnectingPoint num="30" id="686" />
+<TGConnectingPoint num="31" id="687" />
+<TGConnectingPoint num="32" id="688" />
+<TGConnectingPoint num="33" id="689" />
+<TGConnectingPoint num="34" id="690" />
+<TGConnectingPoint num="35" id="691" />
+<TGConnectingPoint num="36" id="692" />
+<TGConnectingPoint num="37" id="693" />
+<TGConnectingPoint num="38" id="694" />
+<TGConnectingPoint num="39" id="695" />
+<accessibility />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="737" >
+<cdparam x="766" y="660" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="PageLoaded" />
+<TGConnectingPoint num="0" id="697" />
+<TGConnectingPoint num="1" id="698" />
+<TGConnectingPoint num="2" id="699" />
+<TGConnectingPoint num="3" id="700" />
+<TGConnectingPoint num="4" id="701" />
+<TGConnectingPoint num="5" id="702" />
+<TGConnectingPoint num="6" id="703" />
+<TGConnectingPoint num="7" id="704" />
+<TGConnectingPoint num="8" id="705" />
+<TGConnectingPoint num="9" id="706" />
+<TGConnectingPoint num="10" id="707" />
+<TGConnectingPoint num="11" id="708" />
+<TGConnectingPoint num="12" id="709" />
+<TGConnectingPoint num="13" id="710" />
+<TGConnectingPoint num="14" id="711" />
+<TGConnectingPoint num="15" id="712" />
+<TGConnectingPoint num="16" id="713" />
+<TGConnectingPoint num="17" id="714" />
+<TGConnectingPoint num="18" id="715" />
+<TGConnectingPoint num="19" id="716" />
+<TGConnectingPoint num="20" id="717" />
+<TGConnectingPoint num="21" id="718" />
+<TGConnectingPoint num="22" id="719" />
+<TGConnectingPoint num="23" id="720" />
+<TGConnectingPoint num="24" id="721" />
+<TGConnectingPoint num="25" id="722" />
+<TGConnectingPoint num="26" id="723" />
+<TGConnectingPoint num="27" id="724" />
+<TGConnectingPoint num="28" id="725" />
+<TGConnectingPoint num="29" id="726" />
+<TGConnectingPoint num="30" id="727" />
+<TGConnectingPoint num="31" id="728" />
+<TGConnectingPoint num="32" id="729" />
+<TGConnectingPoint num="33" id="730" />
+<TGConnectingPoint num="34" id="731" />
+<TGConnectingPoint num="35" id="732" />
+<TGConnectingPoint num="36" id="733" />
+<TGConnectingPoint num="37" id="734" />
+<TGConnectingPoint num="38" id="735" />
+<TGConnectingPoint num="39" id="736" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="778" >
+<cdparam x="320" y="166" />
+<sizeparam width="217" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="WaitingForPageToLoad" />
+<TGConnectingPoint num="0" id="738" />
+<TGConnectingPoint num="1" id="739" />
+<TGConnectingPoint num="2" id="740" />
+<TGConnectingPoint num="3" id="741" />
+<TGConnectingPoint num="4" id="742" />
+<TGConnectingPoint num="5" id="743" />
+<TGConnectingPoint num="6" id="744" />
+<TGConnectingPoint num="7" id="745" />
+<TGConnectingPoint num="8" id="746" />
+<TGConnectingPoint num="9" id="747" />
+<TGConnectingPoint num="10" id="748" />
+<TGConnectingPoint num="11" id="749" />
+<TGConnectingPoint num="12" id="750" />
+<TGConnectingPoint num="13" id="751" />
+<TGConnectingPoint num="14" id="752" />
+<TGConnectingPoint num="15" id="753" />
+<TGConnectingPoint num="16" id="754" />
+<TGConnectingPoint num="17" id="755" />
+<TGConnectingPoint num="18" id="756" />
+<TGConnectingPoint num="19" id="757" />
+<TGConnectingPoint num="20" id="758" />
+<TGConnectingPoint num="21" id="759" />
+<TGConnectingPoint num="22" id="760" />
+<TGConnectingPoint num="23" id="761" />
+<TGConnectingPoint num="24" id="762" />
+<TGConnectingPoint num="25" id="763" />
+<TGConnectingPoint num="26" id="764" />
+<TGConnectingPoint num="27" id="765" />
+<TGConnectingPoint num="28" id="766" />
+<TGConnectingPoint num="29" id="767" />
+<TGConnectingPoint num="30" id="768" />
+<TGConnectingPoint num="31" id="769" />
+<TGConnectingPoint num="32" id="770" />
+<TGConnectingPoint num="33" id="771" />
+<TGConnectingPoint num="34" id="772" />
+<TGConnectingPoint num="35" id="773" />
+<TGConnectingPoint num="36" id="774" />
+<TGConnectingPoint num="37" id="775" />
+<TGConnectingPoint num="38" id="776" />
+<TGConnectingPoint num="39" id="777" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="780" >
+<cdparam x="421" y="105" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="779" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="791" >
+<cdparam x="966" y="610" />
+<sizeparam width="161" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="Receive signal" value="loadPage(doc, pageid)" />
+<TGConnectingPoint num="0" id="781" />
+<TGConnectingPoint num="1" id="782" />
+<TGConnectingPoint num="2" id="783" />
+<TGConnectingPoint num="3" id="784" />
+<TGConnectingPoint num="4" id="785" />
+<TGConnectingPoint num="5" id="786" />
+<TGConnectingPoint num="6" id="787" />
+<TGConnectingPoint num="7" id="788" />
+<TGConnectingPoint num="8" id="789" />
+<TGConnectingPoint num="9" id="790" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="837" >
+<cdparam x="537" y="510" />
+<sizeparam width="397" height="230" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="LoadingPage" />
+<TGConnectingPoint num="0" id="797" />
+<TGConnectingPoint num="1" id="798" />
+<TGConnectingPoint num="2" id="799" />
+<TGConnectingPoint num="3" id="800" />
+<TGConnectingPoint num="4" id="801" />
+<TGConnectingPoint num="5" id="802" />
+<TGConnectingPoint num="6" id="803" />
+<TGConnectingPoint num="7" id="804" />
+<TGConnectingPoint num="8" id="805" />
+<TGConnectingPoint num="9" id="806" />
+<TGConnectingPoint num="10" id="807" />
+<TGConnectingPoint num="11" id="808" />
+<TGConnectingPoint num="12" id="809" />
+<TGConnectingPoint num="13" id="810" />
+<TGConnectingPoint num="14" id="811" />
+<TGConnectingPoint num="15" id="812" />
+<TGConnectingPoint num="16" id="813" />
+<TGConnectingPoint num="17" id="814" />
+<TGConnectingPoint num="18" id="815" />
+<TGConnectingPoint num="19" id="816" />
+<TGConnectingPoint num="20" id="817" />
+<TGConnectingPoint num="21" id="818" />
+<TGConnectingPoint num="22" id="819" />
+<TGConnectingPoint num="23" id="820" />
+<TGConnectingPoint num="24" id="821" />
+<TGConnectingPoint num="25" id="822" />
+<TGConnectingPoint num="26" id="823" />
+<TGConnectingPoint num="27" id="824" />
+<TGConnectingPoint num="28" id="825" />
+<TGConnectingPoint num="29" id="826" />
+<TGConnectingPoint num="30" id="827" />
+<TGConnectingPoint num="31" id="828" />
+<TGConnectingPoint num="32" id="829" />
+<TGConnectingPoint num="33" id="830" />
+<TGConnectingPoint num="34" id="831" />
+<TGConnectingPoint num="35" id="832" />
+<TGConnectingPoint num="36" id="833" />
+<TGConnectingPoint num="37" id="834" />
+<TGConnectingPoint num="38" id="835" />
+<TGConnectingPoint num="39" id="836" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="5100" id="793" >
+<father id="837" num="0" />
+<cdparam x="857" y="545" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="382" minY="0" maxY="215" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="792" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5108" id="796" >
+<father id="837" num="1" />
+<cdparam x="790" y="611" />
+<sizeparam width="137" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="210" />
+<infoparam name="TGComponent" value="null" />
+<TGConnectingPoint num="0" id="794" />
+<TGConnectingPoint num="1" id="795" />
+<extraparam>
+<Data variable="x" minValue="0" maxValue="10" functionId="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="848" >
+<cdparam x="479" y="1083" />
+<sizeparam width="161" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="Receive signal" value="loadPage(doc, pageid)" />
+<TGConnectingPoint num="0" id="838" />
+<TGConnectingPoint num="1" id="839" />
+<TGConnectingPoint num="2" id="840" />
+<TGConnectingPoint num="3" id="841" />
+<TGConnectingPoint num="4" id="842" />
+<TGConnectingPoint num="5" id="843" />
+<TGConnectingPoint num="6" id="844" />
+<TGConnectingPoint num="7" id="845" />
+<TGConnectingPoint num="8" id="846" />
+<TGConnectingPoint num="9" id="847" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="859" >
+<cdparam x="348" y="228" />
+<sizeparam width="161" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="Receive signal" value="loadPage(doc, pageid)" />
+<TGConnectingPoint num="0" id="849" />
+<TGConnectingPoint num="1" id="850" />
+<TGConnectingPoint num="2" id="851" />
+<TGConnectingPoint num="3" id="852" />
+<TGConnectingPoint num="4" id="853" />
+<TGConnectingPoint num="5" id="854" />
+<TGConnectingPoint num="6" id="855" />
+<TGConnectingPoint num="7" id="856" />
+<TGConnectingPoint num="8" id="857" />
+<TGConnectingPoint num="9" id="858" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="900" >
+<cdparam x="126" y="1431" />
+<sizeparam width="274" height="38" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="PutPrefetchInMemoryDone" />
+<TGConnectingPoint num="0" id="860" />
+<TGConnectingPoint num="1" id="861" />
+<TGConnectingPoint num="2" id="862" />
+<TGConnectingPoint num="3" id="863" />
+<TGConnectingPoint num="4" id="864" />
+<TGConnectingPoint num="5" id="865" />
+<TGConnectingPoint num="6" id="866" />
+<TGConnectingPoint num="7" id="867" />
+<TGConnectingPoint num="8" id="868" />
+<TGConnectingPoint num="9" id="869" />
+<TGConnectingPoint num="10" id="870" />
+<TGConnectingPoint num="11" id="871" />
+<TGConnectingPoint num="12" id="872" />
+<TGConnectingPoint num="13" id="873" />
+<TGConnectingPoint num="14" id="874" />
+<TGConnectingPoint num="15" id="875" />
+<TGConnectingPoint num="16" id="876" />
+<TGConnectingPoint num="17" id="877" />
+<TGConnectingPoint num="18" id="878" />
+<TGConnectingPoint num="19" id="879" />
+<TGConnectingPoint num="20" id="880" />
+<TGConnectingPoint num="21" id="881" />
+<TGConnectingPoint num="22" id="882" />
+<TGConnectingPoint num="23" id="883" />
+<TGConnectingPoint num="24" id="884" />
+<TGConnectingPoint num="25" id="885" />
+<TGConnectingPoint num="26" id="886" />
+<TGConnectingPoint num="27" id="887" />
+<TGConnectingPoint num="28" id="888" />
+<TGConnectingPoint num="29" id="889" />
+<TGConnectingPoint num="30" id="890" />
+<TGConnectingPoint num="31" id="891" />
+<TGConnectingPoint num="32" id="892" />
+<TGConnectingPoint num="33" id="893" />
+<TGConnectingPoint num="34" id="894" />
+<TGConnectingPoint num="35" id="895" />
+<TGConnectingPoint num="36" id="896" />
+<TGConnectingPoint num="37" id="897" />
+<TGConnectingPoint num="38" id="898" />
+<TGConnectingPoint num="39" id="899" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="941" >
+<cdparam x="132" y="1270" />
+<sizeparam width="263" height="42" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="PutPrefetchInMemory" />
+<TGConnectingPoint num="0" id="901" />
+<TGConnectingPoint num="1" id="902" />
+<TGConnectingPoint num="2" id="903" />
+<TGConnectingPoint num="3" id="904" />
+<TGConnectingPoint num="4" id="905" />
+<TGConnectingPoint num="5" id="906" />
+<TGConnectingPoint num="6" id="907" />
+<TGConnectingPoint num="7" id="908" />
+<TGConnectingPoint num="8" id="909" />
+<TGConnectingPoint num="9" id="910" />
+<TGConnectingPoint num="10" id="911" />
+<TGConnectingPoint num="11" id="912" />
+<TGConnectingPoint num="12" id="913" />
+<TGConnectingPoint num="13" id="914" />
+<TGConnectingPoint num="14" id="915" />
+<TGConnectingPoint num="15" id="916" />
+<TGConnectingPoint num="16" id="917" />
+<TGConnectingPoint num="17" id="918" />
+<TGConnectingPoint num="18" id="919" />
+<TGConnectingPoint num="19" id="920" />
+<TGConnectingPoint num="20" id="921" />
+<TGConnectingPoint num="21" id="922" />
+<TGConnectingPoint num="22" id="923" />
+<TGConnectingPoint num="23" id="924" />
+<TGConnectingPoint num="24" id="925" />
+<TGConnectingPoint num="25" id="926" />
+<TGConnectingPoint num="26" id="927" />
+<TGConnectingPoint num="27" id="928" />
+<TGConnectingPoint num="28" id="929" />
+<TGConnectingPoint num="29" id="930" />
+<TGConnectingPoint num="30" id="931" />
+<TGConnectingPoint num="31" id="932" />
+<TGConnectingPoint num="32" id="933" />
+<TGConnectingPoint num="33" id="934" />
+<TGConnectingPoint num="34" id="935" />
+<TGConnectingPoint num="35" id="936" />
+<TGConnectingPoint num="36" id="937" />
+<TGConnectingPoint num="37" id="938" />
+<TGConnectingPoint num="38" id="939" />
+<TGConnectingPoint num="39" id="940" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="1028" >
+<cdparam x="127" y="1028" />
+<sizeparam width="258" height="201" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" />
+<infoparam name="state0" value="Prefetching" />
+<TGConnectingPoint num="0" id="988" />
+<TGConnectingPoint num="1" id="989" />
+<TGConnectingPoint num="2" id="990" />
+<TGConnectingPoint num="3" id="991" />
+<TGConnectingPoint num="4" id="992" />
+<TGConnectingPoint num="5" id="993" />
+<TGConnectingPoint num="6" id="994" />
+<TGConnectingPoint num="7" id="995" />
+<TGConnectingPoint num="8" id="996" />
+<TGConnectingPoint num="9" id="997" />
+<TGConnectingPoint num="10" id="998" />
+<TGConnectingPoint num="11" id="999" />
+<TGConnectingPoint num="12" id="1000" />
+<TGConnectingPoint num="13" id="1001" />
+<TGConnectingPoint num="14" id="1002" />
+<TGConnectingPoint num="15" id="1003" />
+<TGConnectingPoint num="16" id="1004" />
+<TGConnectingPoint num="17" id="1005" />
+<TGConnectingPoint num="18" id="1006" />
+<TGConnectingPoint num="19" id="1007" />
+<TGConnectingPoint num="20" id="1008" />
+<TGConnectingPoint num="21" id="1009" />
+<TGConnectingPoint num="22" id="1010" />
+<TGConnectingPoint num="23" id="1011" />
+<TGConnectingPoint num="24" id="1012" />
+<TGConnectingPoint num="25" id="1013" />
+<TGConnectingPoint num="26" id="1014" />
+<TGConnectingPoint num="27" id="1015" />
+<TGConnectingPoint num="28" id="1016" />
+<TGConnectingPoint num="29" id="1017" />
+<TGConnectingPoint num="30" id="1018" />
+<TGConnectingPoint num="31" id="1019" />
+<TGConnectingPoint num="32" id="1020" />
+<TGConnectingPoint num="33" id="1021" />
+<TGConnectingPoint num="34" id="1022" />
+<TGConnectingPoint num="35" id="1023" />
+<TGConnectingPoint num="36" id="1024" />
+<TGConnectingPoint num="37" id="1025" />
+<TGConnectingPoint num="38" id="1026" />
+<TGConnectingPoint num="39" id="1027" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="5100" id="943" >
+<father id="1028" num="0" />
+<cdparam x="249" y="1055" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="243" minY="0" maxY="186" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="942" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5106" id="984" >
+<father id="1028" num="1" />
+<cdparam x="213" y="1155" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="158" minY="0" maxY="151" />
+<infoparam name="state0" value="PagePrefetched" />
+<TGConnectingPoint num="0" id="944" />
+<TGConnectingPoint num="1" id="945" />
+<TGConnectingPoint num="2" id="946" />
+<TGConnectingPoint num="3" id="947" />
+<TGConnectingPoint num="4" id="948" />
+<TGConnectingPoint num="5" id="949" />
+<TGConnectingPoint num="6" id="950" />
+<TGConnectingPoint num="7" id="951" />
+<TGConnectingPoint num="8" id="952" />
+<TGConnectingPoint num="9" id="953" />
+<TGConnectingPoint num="10" id="954" />
+<TGConnectingPoint num="11" id="955" />
+<TGConnectingPoint num="12" id="956" />
+<TGConnectingPoint num="13" id="957" />
+<TGConnectingPoint num="14" id="958" />
+<TGConnectingPoint num="15" id="959" />
+<TGConnectingPoint num="16" id="960" />
+<TGConnectingPoint num="17" id="961" />
+<TGConnectingPoint num="18" id="962" />
+<TGConnectingPoint num="19" id="963" />
+<TGConnectingPoint num="20" id="964" />
+<TGConnectingPoint num="21" id="965" />
+<TGConnectingPoint num="22" id="966" />
+<TGConnectingPoint num="23" id="967" />
+<TGConnectingPoint num="24" id="968" />
+<TGConnectingPoint num="25" id="969" />
+<TGConnectingPoint num="26" id="970" />
+<TGConnectingPoint num="27" id="971" />
+<TGConnectingPoint num="28" id="972" />
+<TGConnectingPoint num="29" id="973" />
+<TGConnectingPoint num="30" id="974" />
+<TGConnectingPoint num="31" id="975" />
+<TGConnectingPoint num="32" id="976" />
+<TGConnectingPoint num="33" id="977" />
+<TGConnectingPoint num="34" id="978" />
+<TGConnectingPoint num="35" id="979" />
+<TGConnectingPoint num="36" id="980" />
+<TGConnectingPoint num="37" id="981" />
+<TGConnectingPoint num="38" id="982" />
+<TGConnectingPoint num="39" id="983" />
+<extraparam>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5108" id="987" >
+<father id="1028" num="2" />
+<cdparam x="195" y="1118" />
+<sizeparam width="137" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="228" minY="0" maxY="181" />
+<infoparam name="TGComponent" value="null" />
+<TGConnectingPoint num="0" id="985" />
+<TGConnectingPoint num="1" id="986" />
+<extraparam>
+<Data variable="x" minValue="0" maxValue="10" functionId="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="UserModel" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="1035" >
+<cdparam x="460" y="447" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="1034" />
+<P1  x="460" y="447" id="1186" />
+<P2  x="460" y="456" id="1174" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1033" >
+<father id="1035" num="0" />
+<cdparam x="478" y="456" />
+<sizeparam width="68" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1029" />
+<TGConnectingPoint num="1" id="1030" />
+<TGConnectingPoint num="2" id="1031" />
+<TGConnectingPoint num="3" id="1032" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="100" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1042" >
+<cdparam x="460" y="405" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="1041" />
+<P1  x="460" y="405" id="1164" />
+<P2  x="460" y="417" id="1185" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1040" >
+<father id="1042" num="0" />
+<cdparam x="472" y="417" />
+<sizeparam width="68" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1036" />
+<TGConnectingPoint num="1" id="1037" />
+<TGConnectingPoint num="2" id="1038" />
+<TGConnectingPoint num="3" id="1039" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="100" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1049" >
+<cdparam x="458" y="358" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="1048" />
+<P1  x="458" y="358" id="1153" />
+<P2  x="460" y="375" id="1163" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1047" >
+<father id="1049" num="0" />
+<cdparam x="479" y="374" />
+<sizeparam width="68" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1043" />
+<TGConnectingPoint num="1" id="1044" />
+<TGConnectingPoint num="2" id="1045" />
+<TGConnectingPoint num="3" id="1046" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="100" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1056" >
+<cdparam x="448" y="147" />
+<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="1055" />
+<P1  x="434" y="106" id="1150" />
+<P2  x="457" y="160" id="1110" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1054" >
+<father id="1056" num="0" />
+<cdparam x="448" y="187" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1050" />
+<TGConnectingPoint num="1" id="1051" />
+<TGConnectingPoint num="2" id="1052" />
+<TGConnectingPoint num="3" id="1053" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1063" >
+<cdparam x="457" y="240" />
+<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="1062" />
+<P1  x="457" y="225" id="1115" />
+<P2  x="457" y="281" id="1098" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1061" >
+<father id="1063" num="0" />
+<cdparam x="488" y="245" />
+<sizeparam width="139" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1057" />
+<TGConnectingPoint num="1" id="1058" />
+<TGConnectingPoint num="2" id="1059" />
+<TGConnectingPoint num="3" id="1060" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="doc1.id = 1" />
+<actions value="doc1.nbOfPages = 5" />
+<actions value="doc1.currentPage = 2" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1070" >
+<cdparam x="457" y="311" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="1069" />
+<P1  x="457" y="311" id="1099" />
+<P2  x="458" y="328" id="1152" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1068" >
+<father id="1070" num="0" />
+<cdparam x="474" y="327" />
+<sizeparam width="68" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1064" />
+<TGConnectingPoint num="1" id="1065" />
+<TGConnectingPoint num="2" id="1066" />
+<TGConnectingPoint num="3" id="1067" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="100" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1077" >
+<cdparam x="460" y="486" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="1076" />
+<P1  x="460" y="486" id="1175" />
+<P2  x="460" y="534" id="1087" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1075" >
+<father id="1077" num="0" />
+<cdparam x="473" y="504" />
+<sizeparam width="68" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1071" />
+<TGConnectingPoint num="1" id="1072" />
+<TGConnectingPoint num="2" id="1073" />
+<TGConnectingPoint num="3" id="1074" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="250" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="index = 1" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1084" >
+<cdparam x="460" y="564" />
+<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="1083" />
+<P1  x="460" y="564" id="1088" />
+<P2  x="461" y="584" id="1085" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1082" >
+<father id="1084" num="0" />
+<cdparam x="460" y="604" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1078" />
+<TGConnectingPoint num="1" id="1079" />
+<TGConnectingPoint num="2" id="1080" />
+<TGConnectingPoint num="3" id="1081" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5101" id="1086" >
+<cdparam x="451" y="589" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1085" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="1097" >
+<cdparam x="402" y="539" />
+<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="goToPage(index)" />
+<TGConnectingPoint num="0" id="1087" />
+<TGConnectingPoint num="1" id="1088" />
+<TGConnectingPoint num="2" id="1089" />
+<TGConnectingPoint num="3" id="1090" />
+<TGConnectingPoint num="4" id="1091" />
+<TGConnectingPoint num="5" id="1092" />
+<TGConnectingPoint num="6" id="1093" />
+<TGConnectingPoint num="7" id="1094" />
+<TGConnectingPoint num="8" id="1095" />
+<TGConnectingPoint num="9" id="1096" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="1108" >
+<cdparam x="384" y="286" />
+<sizeparam width="147" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="openDocument(doc1)" />
+<TGConnectingPoint num="0" id="1098" />
+<TGConnectingPoint num="1" id="1099" />
+<TGConnectingPoint num="2" id="1100" />
+<TGConnectingPoint num="3" id="1101" />
+<TGConnectingPoint num="4" id="1102" />
+<TGConnectingPoint num="5" id="1103" />
+<TGConnectingPoint num="6" id="1104" />
+<TGConnectingPoint num="7" id="1105" />
+<TGConnectingPoint num="8" id="1106" />
+<TGConnectingPoint num="9" id="1107" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1149" >
+<cdparam x="319" y="160" />
+<sizeparam width="276" height="65" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="firstDoc" />
+<TGConnectingPoint num="0" id="1109" />
+<TGConnectingPoint num="1" id="1110" />
+<TGConnectingPoint num="2" id="1111" />
+<TGConnectingPoint num="3" id="1112" />
+<TGConnectingPoint num="4" id="1113" />
+<TGConnectingPoint num="5" id="1114" />
+<TGConnectingPoint num="6" id="1115" />
+<TGConnectingPoint num="7" id="1116" />
+<TGConnectingPoint num="8" id="1117" />
+<TGConnectingPoint num="9" id="1118" />
+<TGConnectingPoint num="10" id="1119" />
+<TGConnectingPoint num="11" id="1120" />
+<TGConnectingPoint num="12" id="1121" />
+<TGConnectingPoint num="13" id="1122" />
+<TGConnectingPoint num="14" id="1123" />
+<TGConnectingPoint num="15" id="1124" />
+<TGConnectingPoint num="16" id="1125" />
+<TGConnectingPoint num="17" id="1126" />
+<TGConnectingPoint num="18" id="1127" />
+<TGConnectingPoint num="19" id="1128" />
+<TGConnectingPoint num="20" id="1129" />
+<TGConnectingPoint num="21" id="1130" />
+<TGConnectingPoint num="22" id="1131" />
+<TGConnectingPoint num="23" id="1132" />
+<TGConnectingPoint num="24" id="1133" />
+<TGConnectingPoint num="25" id="1134" />
+<TGConnectingPoint num="26" id="1135" />
+<TGConnectingPoint num="27" id="1136" />
+<TGConnectingPoint num="28" id="1137" />
+<TGConnectingPoint num="29" id="1138" />
+<TGConnectingPoint num="30" id="1139" />
+<TGConnectingPoint num="31" id="1140" />
+<TGConnectingPoint num="32" id="1141" />
+<TGConnectingPoint num="33" id="1142" />
+<TGConnectingPoint num="34" id="1143" />
+<TGConnectingPoint num="35" id="1144" />
+<TGConnectingPoint num="36" id="1145" />
+<TGConnectingPoint num="37" id="1146" />
+<TGConnectingPoint num="38" id="1147" />
+<TGConnectingPoint num="39" id="1148" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="1151" >
+<cdparam x="427" y="86" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1150" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="1162" >
+<cdparam x="409" y="333" />
+<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="flipNextPage()" />
+<TGConnectingPoint num="0" id="1152" />
+<TGConnectingPoint num="1" id="1153" />
+<TGConnectingPoint num="2" id="1154" />
+<TGConnectingPoint num="3" id="1155" />
+<TGConnectingPoint num="4" id="1156" />
+<TGConnectingPoint num="5" id="1157" />
+<TGConnectingPoint num="6" id="1158" />
+<TGConnectingPoint num="7" id="1159" />
+<TGConnectingPoint num="8" id="1160" />
+<TGConnectingPoint num="9" id="1161" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="1173" >
+<cdparam x="411" y="380" />
+<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="flipNextPage()" />
+<TGConnectingPoint num="0" id="1163" />
+<TGConnectingPoint num="1" id="1164" />
+<TGConnectingPoint num="2" id="1165" />
+<TGConnectingPoint num="3" id="1166" />
+<TGConnectingPoint num="4" id="1167" />
+<TGConnectingPoint num="5" id="1168" />
+<TGConnectingPoint num="6" id="1169" />
+<TGConnectingPoint num="7" id="1170" />
+<TGConnectingPoint num="8" id="1171" />
+<TGConnectingPoint num="9" id="1172" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="1184" >
+<cdparam x="411" y="461" />
+<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="flipNextPage()" />
+<TGConnectingPoint num="0" id="1174" />
+<TGConnectingPoint num="1" id="1175" />
+<TGConnectingPoint num="2" id="1176" />
+<TGConnectingPoint num="3" id="1177" />
+<TGConnectingPoint num="4" id="1178" />
+<TGConnectingPoint num="5" id="1179" />
+<TGConnectingPoint num="6" id="1180" />
+<TGConnectingPoint num="7" id="1181" />
+<TGConnectingPoint num="8" id="1182" />
+<TGConnectingPoint num="9" id="1183" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="1195" >
+<cdparam x="411" y="422" />
+<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="flipNextPage()" />
+<TGConnectingPoint num="0" id="1185" />
+<TGConnectingPoint num="1" id="1186" />
+<TGConnectingPoint num="2" id="1187" />
+<TGConnectingPoint num="3" id="1188" />
+<TGConnectingPoint num="4" id="1189" />
+<TGConnectingPoint num="5" id="1190" />
+<TGConnectingPoint num="6" id="1191" />
+<TGConnectingPoint num="7" id="1192" />
+<TGConnectingPoint num="8" id="1193" />
+<TGConnectingPoint num="9" id="1194" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="DisplayDriver" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="1208" >
+<cdparam x="400" y="247" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="1204" />
+<TGConnectingPoint num="1" id="1205" />
+<TGConnectingPoint num="2" id="1206" />
+<TGConnectingPoint num="3" id="1207" />
+<P1  x="400" y="247" id="1224" />
+<P2  x="295" y="167" id="1237" />
+<Point x="400" y="312" />
+<Point x="250" y="312" />
+<Point x="250" y="167" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1196" >
+<father id="1208" num="0" />
+<cdparam x="400" y="312" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1197" >
+<father id="1208" num="1" />
+<cdparam x="250" y="312" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1198" >
+<father id="1208" num="2" />
+<cdparam x="250" y="167" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1203" >
+<father id="1208" num="3" />
+<cdparam x="410" y="275" />
+<sizeparam width="112" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1199" />
+<TGConnectingPoint num="1" id="1200" />
+<TGConnectingPoint num="2" id="1201" />
+<TGConnectingPoint num="3" id="1202" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="20" />
+<afterMax value="40" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="data = page.data" />
+<actions value="printPage(data)" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1215" >
+<cdparam x="398" y="95" />
+<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="1214" />
+<P1  x="398" y="95" id="1275" />
+<P2  x="399" y="142" id="1235" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1213" >
+<father id="1215" num="0" />
+<cdparam x="398" y="135" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1209" />
+<TGConnectingPoint num="1" id="1210" />
+<TGConnectingPoint num="2" id="1211" />
+<TGConnectingPoint num="3" id="1212" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1222" >
+<cdparam x="399" y="192" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="1221" />
+<P1  x="399" y="192" id="1240" />
+<P2  x="400" y="217" id="1223" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1220" >
+<father id="1222" num="0" />
+<cdparam x="399" y="232" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1216" />
+<TGConnectingPoint num="1" id="1217" />
+<TGConnectingPoint num="2" id="1218" />
+<TGConnectingPoint num="3" id="1219" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="1233" >
+<cdparam x="333" y="222" />
+<sizeparam width="135" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="displayPage(page)" />
+<TGConnectingPoint num="0" id="1223" />
+<TGConnectingPoint num="1" id="1224" />
+<TGConnectingPoint num="2" id="1225" />
+<TGConnectingPoint num="3" id="1226" />
+<TGConnectingPoint num="4" id="1227" />
+<TGConnectingPoint num="5" id="1228" />
+<TGConnectingPoint num="6" id="1229" />
+<TGConnectingPoint num="7" id="1230" />
+<TGConnectingPoint num="8" id="1231" />
+<TGConnectingPoint num="9" id="1232" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1274" >
+<cdparam x="295" y="142" />
+<sizeparam width="209" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="WaitingForPageToDisplay" />
+<TGConnectingPoint num="0" id="1234" />
+<TGConnectingPoint num="1" id="1235" />
+<TGConnectingPoint num="2" id="1236" />
+<TGConnectingPoint num="3" id="1237" />
+<TGConnectingPoint num="4" id="1238" />
+<TGConnectingPoint num="5" id="1239" />
+<TGConnectingPoint num="6" id="1240" />
+<TGConnectingPoint num="7" id="1241" />
+<TGConnectingPoint num="8" id="1242" />
+<TGConnectingPoint num="9" id="1243" />
+<TGConnectingPoint num="10" id="1244" />
+<TGConnectingPoint num="11" id="1245" />
+<TGConnectingPoint num="12" id="1246" />
+<TGConnectingPoint num="13" id="1247" />
+<TGConnectingPoint num="14" id="1248" />
+<TGConnectingPoint num="15" id="1249" />
+<TGConnectingPoint num="16" id="1250" />
+<TGConnectingPoint num="17" id="1251" />
+<TGConnectingPoint num="18" id="1252" />
+<TGConnectingPoint num="19" id="1253" />
+<TGConnectingPoint num="20" id="1254" />
+<TGConnectingPoint num="21" id="1255" />
+<TGConnectingPoint num="22" id="1256" />
+<TGConnectingPoint num="23" id="1257" />
+<TGConnectingPoint num="24" id="1258" />
+<TGConnectingPoint num="25" id="1259" />
+<TGConnectingPoint num="26" id="1260" />
+<TGConnectingPoint num="27" id="1261" />
+<TGConnectingPoint num="28" id="1262" />
+<TGConnectingPoint num="29" id="1263" />
+<TGConnectingPoint num="30" id="1264" />
+<TGConnectingPoint num="31" id="1265" />
+<TGConnectingPoint num="32" id="1266" />
+<TGConnectingPoint num="33" id="1267" />
+<TGConnectingPoint num="34" id="1268" />
+<TGConnectingPoint num="35" id="1269" />
+<TGConnectingPoint num="36" id="1270" />
+<TGConnectingPoint num="37" id="1271" />
+<TGConnectingPoint num="38" id="1272" />
+<TGConnectingPoint num="39" id="1273" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="1276" >
+<cdparam x="391" y="75" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1275" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="EReaderController" minX="10" maxX="1400" minY="10" maxY="1400" >
+<CONNECTOR type="5102" id="1283" >
+<cdparam x="828" y="336" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="1282" />
+<P1  x="809" y="327" id="1645" />
+<P2  x="682" y="361" id="1607" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1281" >
+<father id="1283" num="0" />
+<cdparam x="828" y="376" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1277" />
+<TGConnectingPoint num="1" id="1278" />
+<TGConnectingPoint num="2" id="1279" />
+<TGConnectingPoint num="3" id="1280" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1294" >
+<cdparam x="870" y="518" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="1291" />
+<TGConnectingPoint num="1" id="1292" />
+<TGConnectingPoint num="2" id="1293" />
+<P1  x="870" y="481" id="1553" />
+<P2  x="809" y="297" id="1644" />
+<Point x="965" y="368" />
+<Point x="965" y="273" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1284" >
+<father id="1294" num="0" />
+<cdparam x="965" y="368" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1285" >
+<father id="1294" num="1" />
+<cdparam x="965" y="273" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1290" >
+<father id="1294" num="2" />
+<cdparam x="870" y="558" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1286" />
+<TGConnectingPoint num="1" id="1287" />
+<TGConnectingPoint num="2" id="1288" />
+<TGConnectingPoint num="3" id="1289" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1301" >
+<cdparam x="870" y="493" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="1300" />
+<P1  x="870" y="506" id="1555" />
+<P2  x="998" y="530" id="1655" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1299" >
+<father id="1301" num="0" />
+<cdparam x="870" y="533" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1295" />
+<TGConnectingPoint num="1" id="1296" />
+<TGConnectingPoint num="2" id="1297" />
+<TGConnectingPoint num="3" id="1298" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1308" >
+<cdparam x="556" y="222" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="1307" />
+<P1  x="556" y="222" id="1667" />
+<P2  x="575" y="336" id="1604" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1306" >
+<father id="1308" num="0" />
+<cdparam x="556" y="262" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1302" />
+<TGConnectingPoint num="1" id="1303" />
+<TGConnectingPoint num="2" id="1304" />
+<TGConnectingPoint num="3" id="1305" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1321" >
+<cdparam x="800" y="680" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to state0" value="null" />
+<TGConnectingPoint num="0" id="1317" />
+<TGConnectingPoint num="1" id="1318" />
+<TGConnectingPoint num="2" id="1319" />
+<TGConnectingPoint num="3" id="1320" />
+<P1  x="800" y="680" id="1515" />
+<P2  x="870" y="531" id="1558" />
+<Point x="836" y="703" />
+<Point x="894" y="703" />
+<Point x="894" y="558" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1309" >
+<father id="1321" num="0" />
+<cdparam x="836" y="703" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1310" >
+<father id="1321" num="1" />
+<cdparam x="894" y="703" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1311" >
+<father id="1321" num="2" />
+<cdparam x="894" y="558" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1316" >
+<father id="1321" num="3" />
+<cdparam x="852" y="669" />
+<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1312" />
+<TGConnectingPoint num="1" id="1313" />
+<TGConnectingPoint num="2" id="1314" />
+<TGConnectingPoint num="3" id="1315" />
+<extraparam>
+<guard value="[ else ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1328" >
+<cdparam x="750" y="680" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to state0" value="null" />
+<TGConnectingPoint num="0" id="1327" />
+<P1  x="750" y="680" id="1514" />
+<P2  x="604" y="748" id="1481" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1326" >
+<father id="1328" num="0" />
+<cdparam x="492" y="725" />
+<sizeparam width="448" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1322" />
+<TGConnectingPoint num="1" id="1323" />
+<TGConnectingPoint num="2" id="1324" />
+<TGConnectingPoint num="3" id="1325" />
+<extraparam>
+<guard value="[(currentPage &gt; 0) and (currentPage &lt; currentDocument.nbOfPages) ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="currentDocument.currentPage = currentPage" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1335" >
+<cdparam x="775" y="611" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="1334" />
+<P1  x="754" y="614" id="1530" />
+<P2  x="775" y="655" id="1513" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1333" >
+<father id="1335" num="0" />
+<cdparam x="604" y="727" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1329" />
+<TGConnectingPoint num="1" id="1330" />
+<TGConnectingPoint num="2" id="1331" />
+<TGConnectingPoint num="3" id="1332" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1342" >
+<cdparam x="722" y="531" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="1341" />
+<P1  x="722" y="531" id="1566" />
+<P2  x="754" y="584" id="1529" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1340" >
+<father id="1342" num="0" />
+<cdparam x="722" y="571" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1336" />
+<TGConnectingPoint num="1" id="1337" />
+<TGConnectingPoint num="2" id="1338" />
+<TGConnectingPoint num="3" id="1339" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1349" >
+<cdparam x="612" y="624" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="1348" />
+<P1  x="575" y="615" id="1541" />
+<P2  x="540" y="748" id="1473" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1347" >
+<father id="1349" num="0" />
+<cdparam x="448" y="646" />
+<sizeparam width="428" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1343" />
+<TGConnectingPoint num="1" id="1344" />
+<TGConnectingPoint num="2" id="1345" />
+<TGConnectingPoint num="3" id="1346" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="currentDocument.currentPage = currentDocument.currentPage + 1" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1356" >
+<cdparam x="575" y="531" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="1355" />
+<P1  x="575" y="531" id="1557" />
+<P2  x="575" y="585" id="1540" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1354" >
+<father id="1356" num="0" />
+<cdparam x="580" y="551" />
+<sizeparam width="163" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1350" />
+<TGConnectingPoint num="1" id="1351" />
+<TGConnectingPoint num="2" id="1352" />
+<TGConnectingPoint num="3" id="1353" />
+<extraparam>
+<guard value="[ not(currentPage == 0) ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<filesToIncludeLine value="" />
+<codeToIncludeLine value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1363" >
+<cdparam x="427" y="615" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="1362" />
+<P1  x="427" y="615" id="1462" />
+<P2  x="476" y="748" id="1480" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1361" >
+<father id="1363" num="0" />
+<cdparam x="292" y="682" />
+<sizeparam width="428" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1357" />
+<TGConnectingPoint num="1" id="1358" />
+<TGConnectingPoint num="2" id="1359" />
+<TGConnectingPoint num="3" id="1360" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="currentDocument.currentPage = currentDocument.currentPage + 1" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1370" >
+<cdparam x="408" y="540" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="1369" />
+<P1  x="427" y="531" id="1565" />
+<P2  x="427" y="585" id="1461" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1368" >
+<father id="1370" num="0" />
+<cdparam x="284" y="574" />
+<sizeparam width="292" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1364" />
+<TGConnectingPoint num="1" id="1365" />
+<TGConnectingPoint num="2" id="1366" />
+<TGConnectingPoint num="3" id="1367" />
+<extraparam>
+<guard value="[currentPage &lt; currentDocument.nbOfPages ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1383" >
+<cdparam x="277" y="657" />
+<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="1379" />
+<TGConnectingPoint num="1" id="1380" />
+<TGConnectingPoint num="2" id="1381" />
+<TGConnectingPoint num="3" id="1382" />
+<P1  x="269" y="647" id="1440" />
+<P2  x="280" y="506" id="1554" />
+<Point x="269" y="676" />
+<Point x="186" y="676" />
+<Point x="186" y="515" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1371" >
+<father id="1383" num="0" />
+<cdparam x="269" y="676" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1372" >
+<father id="1383" num="1" />
+<cdparam x="186" y="676" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1373" >
+<father id="1383" num="2" />
+<cdparam x="186" y="515" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1378" >
+<father id="1383" num="3" />
+<cdparam x="255" y="697" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1374" />
+<TGConnectingPoint num="1" id="1375" />
+<TGConnectingPoint num="2" id="1376" />
+<TGConnectingPoint num="3" id="1377" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1390" >
+<cdparam x="306" y="622" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to Send signal" value="null" />
+<TGConnectingPoint num="0" id="1389" />
+<P1  x="269" y="595" id="1451" />
+<P2  x="269" y="617" id="1439" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1388" >
+<father id="1390" num="0" />
+<cdparam x="306" y="662" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1384" />
+<TGConnectingPoint num="1" id="1385" />
+<TGConnectingPoint num="2" id="1386" />
+<TGConnectingPoint num="3" id="1387" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1397" >
+<cdparam x="366" y="547" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="1396" />
+<P1  x="280" y="531" id="1556" />
+<P2  x="269" y="565" id="1450" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1395" >
+<father id="1397" num="0" />
+<cdparam x="366" y="587" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1391" />
+<TGConnectingPoint num="1" id="1392" />
+<TGConnectingPoint num="2" id="1393" />
+<TGConnectingPoint num="3" id="1394" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1404" >
+<cdparam x="408" y="468" />
+<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="1403" />
+<P1  x="575" y="455" id="1593" />
+<P2  x="575" y="481" id="1552" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1402" >
+<father id="1404" num="0" />
+<cdparam x="408" y="508" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1398" />
+<TGConnectingPoint num="1" id="1399" />
+<TGConnectingPoint num="2" id="1400" />
+<TGConnectingPoint num="3" id="1401" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1411" >
+<cdparam x="408" y="397" />
+<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="1410" />
+<P1  x="575" y="386" id="1609" />
+<P2  x="575" y="425" id="1592" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1409" >
+<father id="1411" num="0" />
+<cdparam x="607" y="405" />
+<sizeparam width="288" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1405" />
+<TGConnectingPoint num="1" id="1406" />
+<TGConnectingPoint num="2" id="1407" />
+<TGConnectingPoint num="3" id="1408" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="currentPage = currentDocument.currentPage" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1418" >
+<cdparam x="565" y="76" />
+<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="1417" />
+<P1  x="556" y="87" id="1718" />
+<P2  x="556" y="128" id="1678" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1416" >
+<father id="1418" num="0" />
+<cdparam x="565" y="116" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1412" />
+<TGConnectingPoint num="1" id="1413" />
+<TGConnectingPoint num="2" id="1414" />
+<TGConnectingPoint num="3" id="1415" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1425" >
+<cdparam x="565" y="171" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Receive signal" value="null" />
+<TGConnectingPoint num="0" id="1424" />
+<P1  x="556" y="178" id="1683" />
+<P2  x="556" y="192" id="1666" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1423" >
+<father id="1425" num="0" />
+<cdparam x="565" y="211" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1419" />
+<TGConnectingPoint num="1" id="1420" />
+<TGConnectingPoint num="2" id="1421" />
+<TGConnectingPoint num="3" id="1422" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="1438" >
+<cdparam x="747" y="421" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Receive signal to state0" value="null" />
+<TGConnectingPoint num="0" id="1434" />
+<TGConnectingPoint num="1" id="1435" />
+<TGConnectingPoint num="2" id="1436" />
+<TGConnectingPoint num="3" id="1437" />
+<P1  x="998" y="560" id="1656" />
+<P2  x="625" y="153" id="1681" />
+<Point x="1075" y="569" />
+<Point x="1080" y="272" />
+<Point x="882" y="153" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1426" >
+<father id="1438" num="0" />
+<cdparam x="1075" y="569" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1427" >
+<father id="1438" num="1" />
+<cdparam x="1080" y="272" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1428" >
+<father id="1438" num="2" />
+<cdparam x="882" y="153" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1433" >
+<father id="1438" num="3" />
+<cdparam x="747" y="461" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="1429" />
+<TGConnectingPoint num="1" id="1430" />
+<TGConnectingPoint num="2" id="1431" />
+<TGConnectingPoint num="3" id="1432" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="1449" >
+<cdparam x="206" y="622" />
+<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Send signal" value="displayPage(page)" />
+<TGConnectingPoint num="0" id="1439" />
+<TGConnectingPoint num="1" id="1440" />
+<TGConnectingPoint num="2" id="1441" />
+<TGConnectingPoint num="3" id="1442" />
+<TGConnectingPoint num="4" id="1443" />
+<TGConnectingPoint num="5" id="1444" />
+<TGConnectingPoint num="6" id="1445" />
+<TGConnectingPoint num="7" id="1446" />
+<TGConnectingPoint num="8" id="1447" />
+<TGConnectingPoint num="9" id="1448" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="1460" >
+<cdparam x="213" y="570" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="getPage(page)" />
+<TGConnectingPoint num="0" id="1450" />
+<TGConnectingPoint num="1" id="1451" />
+<TGConnectingPoint num="2" id="1452" />
+<TGConnectingPoint num="3" id="1453" />
+<TGConnectingPoint num="4" id="1454" />
+<TGConnectingPoint num="5" id="1455" />
+<TGConnectingPoint num="6" id="1456" />
+<TGConnectingPoint num="7" id="1457" />
+<TGConnectingPoint num="8" id="1458" />
+<TGConnectingPoint num="9" id="1459" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="1471" >
+<cdparam x="374" y="590" />
+<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="flipNextPage()" />
+<TGConnectingPoint num="0" id="1461" />
+<TGConnectingPoint num="1" id="1462" />
+<TGConnectingPoint num="2" id="1463" />
+<TGConnectingPoint num="3" id="1464" />
+<TGConnectingPoint num="4" id="1465" />
+<TGConnectingPoint num="5" id="1466" />
+<TGConnectingPoint num="6" id="1467" />
+<TGConnectingPoint num="7" id="1468" />
+<TGConnectingPoint num="8" id="1469" />
+<TGConnectingPoint num="9" id="1470" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1512" >
+<cdparam x="412" y="748" />
+<sizeparam width="256" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="PageLoadingManagement" />
+<TGConnectingPoint num="0" id="1472" />
+<TGConnectingPoint num="1" id="1473" />
+<TGConnectingPoint num="2" id="1474" />
+<TGConnectingPoint num="3" id="1475" />
+<TGConnectingPoint num="4" id="1476" />
+<TGConnectingPoint num="5" id="1477" />
+<TGConnectingPoint num="6" id="1478" />
+<TGConnectingPoint num="7" id="1479" />
+<TGConnectingPoint num="8" id="1480" />
+<TGConnectingPoint num="9" id="1481" />
+<TGConnectingPoint num="10" id="1482" />
+<TGConnectingPoint num="11" id="1483" />
+<TGConnectingPoint num="12" id="1484" />
+<TGConnectingPoint num="13" id="1485" />
+<TGConnectingPoint num="14" id="1486" />
+<TGConnectingPoint num="15" id="1487" />
+<TGConnectingPoint num="16" id="1488" />
+<TGConnectingPoint num="17" id="1489" />
+<TGConnectingPoint num="18" id="1490" />
+<TGConnectingPoint num="19" id="1491" />
+<TGConnectingPoint num="20" id="1492" />
+<TGConnectingPoint num="21" id="1493" />
+<TGConnectingPoint num="22" id="1494" />
+<TGConnectingPoint num="23" id="1495" />
+<TGConnectingPoint num="24" id="1496" />
+<TGConnectingPoint num="25" id="1497" />
+<TGConnectingPoint num="26" id="1498" />
+<TGConnectingPoint num="27" id="1499" />
+<TGConnectingPoint num="28" id="1500" />
+<TGConnectingPoint num="29" id="1501" />
+<TGConnectingPoint num="30" id="1502" />
+<TGConnectingPoint num="31" id="1503" />
+<TGConnectingPoint num="32" id="1504" />
+<TGConnectingPoint num="33" id="1505" />
+<TGConnectingPoint num="34" id="1506" />
+<TGConnectingPoint num="35" id="1507" />
+<TGConnectingPoint num="36" id="1508" />
+<TGConnectingPoint num="37" id="1509" />
+<TGConnectingPoint num="38" id="1510" />
+<TGConnectingPoint num="39" id="1511" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5107" id="1528" >
+<cdparam x="760" y="665" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="1513" />
+<TGConnectingPoint num="1" id="1514" />
+<TGConnectingPoint num="2" id="1515" />
+<TGConnectingPoint num="3" id="1516" />
+<TGConnectingPoint num="4" id="1517" />
+<TGConnectingPoint num="5" id="1518" />
+<TGConnectingPoint num="6" id="1519" />
+<TGConnectingPoint num="7" id="1520" />
+<TGConnectingPoint num="8" id="1521" />
+<TGConnectingPoint num="9" id="1522" />
+<TGConnectingPoint num="10" id="1523" />
+<TGConnectingPoint num="11" id="1524" />
+<TGConnectingPoint num="12" id="1525" />
+<TGConnectingPoint num="13" id="1526" />
+<TGConnectingPoint num="14" id="1527" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="1539" >
+<cdparam x="670" y="589" />
+<sizeparam width="169" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="goToPage(currentPage)" />
+<TGConnectingPoint num="0" id="1529" />
+<TGConnectingPoint num="1" id="1530" />
+<TGConnectingPoint num="2" id="1531" />
+<TGConnectingPoint num="3" id="1532" />
+<TGConnectingPoint num="4" id="1533" />
+<TGConnectingPoint num="5" id="1534" />
+<TGConnectingPoint num="6" id="1535" />
+<TGConnectingPoint num="7" id="1536" />
+<TGConnectingPoint num="8" id="1537" />
+<TGConnectingPoint num="9" id="1538" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="1550" >
+<cdparam x="510" y="590" />
+<sizeparam width="131" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="flipPreviousPage()" />
+<TGConnectingPoint num="0" id="1540" />
+<TGConnectingPoint num="1" id="1541" />
+<TGConnectingPoint num="2" id="1542" />
+<TGConnectingPoint num="3" id="1543" />
+<TGConnectingPoint num="4" id="1544" />
+<TGConnectingPoint num="5" id="1545" />
+<TGConnectingPoint num="6" id="1546" />
+<TGConnectingPoint num="7" id="1547" />
+<TGConnectingPoint num="8" id="1548" />
+<TGConnectingPoint num="9" id="1549" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1591" >
+<cdparam x="280" y="481" />
+<sizeparam width="590" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForPageBeingLoadedOrUserEvent" />
+<TGConnectingPoint num="0" id="1551" />
+<TGConnectingPoint num="1" id="1552" />
+<TGConnectingPoint num="2" id="1553" />
+<TGConnectingPoint num="3" id="1554" />
+<TGConnectingPoint num="4" id="1555" />
+<TGConnectingPoint num="5" id="1556" />
+<TGConnectingPoint num="6" id="1557" />
+<TGConnectingPoint num="7" id="1558" />
+<TGConnectingPoint num="8" id="1559" />
+<TGConnectingPoint num="9" id="1560" />
+<TGConnectingPoint num="10" id="1561" />
+<TGConnectingPoint num="11" id="1562" />
+<TGConnectingPoint num="12" id="1563" />
+<TGConnectingPoint num="13" id="1564" />
+<TGConnectingPoint num="14" id="1565" />
+<TGConnectingPoint num="15" id="1566" />
+<TGConnectingPoint num="16" id="1567" />
+<TGConnectingPoint num="17" id="1568" />
+<TGConnectingPoint num="18" id="1569" />
+<TGConnectingPoint num="19" id="1570" />
+<TGConnectingPoint num="20" id="1571" />
+<TGConnectingPoint num="21" id="1572" />
+<TGConnectingPoint num="22" id="1573" />
+<TGConnectingPoint num="23" id="1574" />
+<TGConnectingPoint num="24" id="1575" />
+<TGConnectingPoint num="25" id="1576" />
+<TGConnectingPoint num="26" id="1577" />
+<TGConnectingPoint num="27" id="1578" />
+<TGConnectingPoint num="28" id="1579" />
+<TGConnectingPoint num="29" id="1580" />
+<TGConnectingPoint num="30" id="1581" />
+<TGConnectingPoint num="31" id="1582" />
+<TGConnectingPoint num="32" id="1583" />
+<TGConnectingPoint num="33" id="1584" />
+<TGConnectingPoint num="34" id="1585" />
+<TGConnectingPoint num="35" id="1586" />
+<TGConnectingPoint num="36" id="1587" />
+<TGConnectingPoint num="37" id="1588" />
+<TGConnectingPoint num="38" id="1589" />
+<TGConnectingPoint num="39" id="1590" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="1602" >
+<cdparam x="438" y="430" />
+<sizeparam width="275" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Send signal" value="loadPage(currentDocument, currentPage)" />
+<TGConnectingPoint num="0" id="1592" />
+<TGConnectingPoint num="1" id="1593" />
+<TGConnectingPoint num="2" id="1594" />
+<TGConnectingPoint num="3" id="1595" />
+<TGConnectingPoint num="4" id="1596" />
+<TGConnectingPoint num="5" id="1597" />
+<TGConnectingPoint num="6" id="1598" />
+<TGConnectingPoint num="7" id="1599" />
+<TGConnectingPoint num="8" id="1600" />
+<TGConnectingPoint num="9" id="1601" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1643" >
+<cdparam x="468" y="336" />
+<sizeparam width="214" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="PageLoadingManagement" />
+<TGConnectingPoint num="0" id="1603" />
+<TGConnectingPoint num="1" id="1604" />
+<TGConnectingPoint num="2" id="1605" />
+<TGConnectingPoint num="3" id="1606" />
+<TGConnectingPoint num="4" id="1607" />
+<TGConnectingPoint num="5" id="1608" />
+<TGConnectingPoint num="6" id="1609" />
+<TGConnectingPoint num="7" id="1610" />
+<TGConnectingPoint num="8" id="1611" />
+<TGConnectingPoint num="9" id="1612" />
+<TGConnectingPoint num="10" id="1613" />
+<TGConnectingPoint num="11" id="1614" />
+<TGConnectingPoint num="12" id="1615" />
+<TGConnectingPoint num="13" id="1616" />
+<TGConnectingPoint num="14" id="1617" />
+<TGConnectingPoint num="15" id="1618" />
+<TGConnectingPoint num="16" id="1619" />
+<TGConnectingPoint num="17" id="1620" />
+<TGConnectingPoint num="18" id="1621" />
+<TGConnectingPoint num="19" id="1622" />
+<TGConnectingPoint num="20" id="1623" />
+<TGConnectingPoint num="21" id="1624" />
+<TGConnectingPoint num="22" id="1625" />
+<TGConnectingPoint num="23" id="1626" />
+<TGConnectingPoint num="24" id="1627" />
+<TGConnectingPoint num="25" id="1628" />
+<TGConnectingPoint num="26" id="1629" />
+<TGConnectingPoint num="27" id="1630" />
+<TGConnectingPoint num="28" id="1631" />
+<TGConnectingPoint num="29" id="1632" />
+<TGConnectingPoint num="30" id="1633" />
+<TGConnectingPoint num="31" id="1634" />
+<TGConnectingPoint num="32" id="1635" />
+<TGConnectingPoint num="33" id="1636" />
+<TGConnectingPoint num="34" id="1637" />
+<TGConnectingPoint num="35" id="1638" />
+<TGConnectingPoint num="36" id="1639" />
+<TGConnectingPoint num="37" id="1640" />
+<TGConnectingPoint num="38" id="1641" />
+<TGConnectingPoint num="39" id="1642" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5104" id="1654" >
+<cdparam x="692" y="302" />
+<sizeparam width="234" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="openDocument(currentDocument)" />
+<TGConnectingPoint num="0" id="1644" />
+<TGConnectingPoint num="1" id="1645" />
+<TGConnectingPoint num="2" id="1646" />
+<TGConnectingPoint num="3" id="1647" />
+<TGConnectingPoint num="4" id="1648" />
+<TGConnectingPoint num="5" id="1649" />
+<TGConnectingPoint num="6" id="1650" />
+<TGConnectingPoint num="7" id="1651" />
+<TGConnectingPoint num="8" id="1652" />
+<TGConnectingPoint num="9" id="1653" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="1665" >
+<cdparam x="967" y="535" />
+<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="home()" />
+<TGConnectingPoint num="0" id="1655" />
+<TGConnectingPoint num="1" id="1656" />
+<TGConnectingPoint num="2" id="1657" />
+<TGConnectingPoint num="3" id="1658" />
+<TGConnectingPoint num="4" id="1659" />
+<TGConnectingPoint num="5" id="1660" />
+<TGConnectingPoint num="6" id="1661" />
+<TGConnectingPoint num="7" id="1662" />
+<TGConnectingPoint num="8" id="1663" />
+<TGConnectingPoint num="9" id="1664" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="1676" >
+<cdparam x="439" y="197" />
+<sizeparam width="234" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="Receive signal" value="openDocument(currentDocument)" />
+<TGConnectingPoint num="0" id="1666" />
+<TGConnectingPoint num="1" id="1667" />
+<TGConnectingPoint num="2" id="1668" />
+<TGConnectingPoint num="3" id="1669" />
+<TGConnectingPoint num="4" id="1670" />
+<TGConnectingPoint num="5" id="1671" />
+<TGConnectingPoint num="6" id="1672" />
+<TGConnectingPoint num="7" id="1673" />
+<TGConnectingPoint num="8" id="1674" />
+<TGConnectingPoint num="9" id="1675" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1717" >
+<cdparam x="488" y="128" />
+<sizeparam width="137" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="state0" value="WaitingForDocument" />
+<TGConnectingPoint num="0" id="1677" />
+<TGConnectingPoint num="1" id="1678" />
+<TGConnectingPoint num="2" id="1679" />
+<TGConnectingPoint num="3" id="1680" />
+<TGConnectingPoint num="4" id="1681" />
+<TGConnectingPoint num="5" id="1682" />
+<TGConnectingPoint num="6" id="1683" />
+<TGConnectingPoint num="7" id="1684" />
+<TGConnectingPoint num="8" id="1685" />
+<TGConnectingPoint num="9" id="1686" />
+<TGConnectingPoint num="10" id="1687" />
+<TGConnectingPoint num="11" id="1688" />
+<TGConnectingPoint num="12" id="1689" />
+<TGConnectingPoint num="13" id="1690" />
+<TGConnectingPoint num="14" id="1691" />
+<TGConnectingPoint num="15" id="1692" />
+<TGConnectingPoint num="16" id="1693" />
+<TGConnectingPoint num="17" id="1694" />
+<TGConnectingPoint num="18" id="1695" />
+<TGConnectingPoint num="19" id="1696" />
+<TGConnectingPoint num="20" id="1697" />
+<TGConnectingPoint num="21" id="1698" />
+<TGConnectingPoint num="22" id="1699" />
+<TGConnectingPoint num="23" id="1700" />
+<TGConnectingPoint num="24" id="1701" />
+<TGConnectingPoint num="25" id="1702" />
+<TGConnectingPoint num="26" id="1703" />
+<TGConnectingPoint num="27" id="1704" />
+<TGConnectingPoint num="28" id="1705" />
+<TGConnectingPoint num="29" id="1706" />
+<TGConnectingPoint num="30" id="1707" />
+<TGConnectingPoint num="31" id="1708" />
+<TGConnectingPoint num="32" id="1709" />
+<TGConnectingPoint num="33" id="1710" />
+<TGConnectingPoint num="34" id="1711" />
+<TGConnectingPoint num="35" id="1712" />
+<TGConnectingPoint num="36" id="1713" />
+<TGConnectingPoint num="37" id="1714" />
+<TGConnectingPoint num="38" id="1715" />
+<TGConnectingPoint num="39" id="1716" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="1719" >
+<cdparam x="549" y="67" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="1718" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/ttool/src/test/resources/ui/diagram2avatar/input/exampleFunctionCall.xml b/ttool/src/test/resources/ui/diagram2avatar/input/exampleFunctionCall.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5b50e31e36d50f2a653e3537551e462e4f98a7a3
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2avatar/input/exampleFunctionCall.xml
@@ -0,0 +1,1500 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<TURTLEGMODELING version="0.98-beta4">
+
+<Modeling type="AVATAR Design" nameTab="Design" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<Validated value="" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="2" >
+<cdparam x="289" y="131" />
+<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="1" />
+<P1  x="288" y="129" id="76" />
+<P2  x="451" y="138" id="50" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in chin(int v)" />
+<osd value="out chout(int v)" />
+<isd value="in chin(int v)" />
+<oso value="out chout(int v)" />
+<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="302" id="19" >
+<cdparam x="351" y="389" />
+<sizeparam width="375" height="97" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Proverif Pragma" value="#InitialSystemKnowledge Bob.skey Alice.skey
+#InitialSystemKnowledge Bob.secretData Alice.secretData
+#Confidentiality Bob.secretData
+" />
+<TGConnectingPoint num="0" id="3" />
+<TGConnectingPoint num="1" id="4" />
+<TGConnectingPoint num="2" id="5" />
+<TGConnectingPoint num="3" id="6" />
+<TGConnectingPoint num="4" id="7" />
+<TGConnectingPoint num="5" id="8" />
+<TGConnectingPoint num="6" id="9" />
+<TGConnectingPoint num="7" id="10" />
+<TGConnectingPoint num="8" id="11" />
+<TGConnectingPoint num="9" id="12" />
+<TGConnectingPoint num="10" id="13" />
+<TGConnectingPoint num="11" id="14" />
+<TGConnectingPoint num="12" id="15" />
+<TGConnectingPoint num="13" id="16" />
+<TGConnectingPoint num="14" id="17" />
+<TGConnectingPoint num="15" id="18" />
+<extraparam>
+<Line value="#InitialSystemKnowledge Bob.skey Alice.skey" />
+<Line value="#InitialSystemKnowledge Bob.secretData Alice.secretData" />
+<Line value="#Confidentiality Bob.secretData" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5003" id="28" >
+<cdparam x="622" y="271" />
+<sizeparam width="250" height="68" 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="DataType0" value="Key" />
+<TGConnectingPoint num="0" id="20" />
+<TGConnectingPoint num="1" id="21" />
+<TGConnectingPoint num="2" id="22" />
+<TGConnectingPoint num="3" id="23" />
+<TGConnectingPoint num="4" id="24" />
+<TGConnectingPoint num="5" id="25" />
+<TGConnectingPoint num="6" id="26" />
+<TGConnectingPoint num="7" id="27" />
+<extraparam>
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5003" id="37" >
+<cdparam x="345" y="273" />
+<sizeparam width="250" height="68" 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="DataType0" value="Message" />
+<TGConnectingPoint num="0" id="29" />
+<TGConnectingPoint num="1" id="30" />
+<TGConnectingPoint num="2" id="31" />
+<TGConnectingPoint num="3" id="32" />
+<TGConnectingPoint num="4" id="33" />
+<TGConnectingPoint num="5" id="34" />
+<TGConnectingPoint num="6" id="35" />
+<TGConnectingPoint num="7" id="36" />
+<extraparam>
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5005" id="46" >
+<cdparam x="89" y="278" />
+<sizeparam width="160" height="144" 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="SendReceiveMessage" value="SendReceiveMessage" />
+<TGConnectingPoint num="0" id="38" />
+<TGConnectingPoint num="1" id="39" />
+<TGConnectingPoint num="2" id="40" />
+<TGConnectingPoint num="3" id="41" />
+<TGConnectingPoint num="4" id="42" />
+<TGConnectingPoint num="5" id="43" />
+<TGConnectingPoint num="6" id="44" />
+<TGConnectingPoint num="7" id="45" />
+<extraparam>
+<CryptoLibraryFunction value="false" />
+<Parameter access="0" id="msg" value="" type="5" typeOther="Message" />
+<Parameter access="0" id="key" value="" type="5" typeOther="Key" />
+<Signal value="in inch(int v)" />
+<Signal value="out outch(int v)" />
+<ReturnAttribute access="0" id="msgRet" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="d" value="" type="8" typeOther="" />
+<Attribute access="0" id="dummy" value="" type="5" typeOther="Message" />
+<Method value="Message sencrypt(Message msg, Key k)" />
+<Method value="Message sdecrypt(Message msg, Key k)" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="71" >
+<cdparam x="451" y="38" />
+<sizeparam width="250" height="200" 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="Block1" value="Alice" />
+<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" />
+<TGConnectingPoint num="8" id="55" />
+<TGConnectingPoint num="9" id="56" />
+<TGConnectingPoint num="10" id="57" />
+<TGConnectingPoint num="11" id="58" />
+<TGConnectingPoint num="12" id="59" />
+<TGConnectingPoint num="13" id="60" />
+<TGConnectingPoint num="14" id="61" />
+<TGConnectingPoint num="15" id="62" />
+<TGConnectingPoint num="16" id="63" />
+<TGConnectingPoint num="17" id="64" />
+<TGConnectingPoint num="18" id="65" />
+<TGConnectingPoint num="19" id="66" />
+<TGConnectingPoint num="20" id="67" />
+<TGConnectingPoint num="21" id="68" />
+<TGConnectingPoint num="22" id="69" />
+<TGConnectingPoint num="23" id="70" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="send" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="recv" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="skey" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
+<Signal value="in chin(int v)" />
+<Signal value="out chout(int v)" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="96" >
+<cdparam x="38" y="44" />
+<sizeparam width="250" 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="Block0" value="Bob" />
+<TGConnectingPoint num="0" id="72" />
+<TGConnectingPoint num="1" id="73" />
+<TGConnectingPoint num="2" id="74" />
+<TGConnectingPoint num="3" id="75" />
+<TGConnectingPoint num="4" id="76" />
+<TGConnectingPoint num="5" id="77" />
+<TGConnectingPoint num="6" id="78" />
+<TGConnectingPoint num="7" id="79" />
+<TGConnectingPoint num="8" id="80" />
+<TGConnectingPoint num="9" id="81" />
+<TGConnectingPoint num="10" id="82" />
+<TGConnectingPoint num="11" id="83" />
+<TGConnectingPoint num="12" id="84" />
+<TGConnectingPoint num="13" id="85" />
+<TGConnectingPoint num="14" id="86" />
+<TGConnectingPoint num="15" id="87" />
+<TGConnectingPoint num="16" id="88" />
+<TGConnectingPoint num="17" id="89" />
+<TGConnectingPoint num="18" id="90" />
+<TGConnectingPoint num="19" id="91" />
+<TGConnectingPoint num="20" id="92" />
+<TGConnectingPoint num="21" id="93" />
+<TGConnectingPoint num="22" id="94" />
+<TGConnectingPoint num="23" id="95" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="send" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="recv" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="skey" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
+<Signal value="in chin(int v)" />
+<Signal value="out chout(int v)" />
+</extraparam>
+</COMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="SendReceiveMessage" minX="10" maxX="2500" minY="10" maxY="1500" >
+<CONNECTOR type="5102" id="103" >
+<cdparam x="388" y="143" />
+<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="102" />
+<P1  x="388" y="143" id="132" />
+<P2  x="388" y="205" id="118" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="101" >
+<father id="103" num="0" />
+<cdparam x="388" y="183" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="97" />
+<TGConnectingPoint num="1" id="98" />
+<TGConnectingPoint num="2" id="99" />
+<TGConnectingPoint num="3" id="100" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="110" >
+<cdparam x="416" y="149" />
+<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="109" />
+<P1  x="388" y="235" id="119" />
+<P2  x="409" y="305" id="129" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="108" >
+<father id="110" num="0" />
+<cdparam x="420" y="262" />
+<sizeparam width="202" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="104" />
+<TGConnectingPoint num="1" id="105" />
+<TGConnectingPoint num="2" id="106" />
+<TGConnectingPoint num="3" id="107" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="dummy.data = d" />
+<actions value="msgRet = sdecrypt(dummy, key)" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="117" >
+<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="116" />
+<P1  x="407" y="70" id="142" />
+<P2  x="388" y="113" id="131" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="115" >
+<father id="117" num="0" />
+<cdparam x="423" y="87" />
+<sizeparam width="181" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="111" />
+<TGConnectingPoint num="1" id="112" />
+<TGConnectingPoint num="2" id="113" />
+<TGConnectingPoint num="3" id="114" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="dummy = sencrypt(msg, key)" />
+<actions value="d = dummy.data" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="128" >
+<cdparam x="357" y="210" />
+<sizeparam width="62" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Receive signal" value="inch(d)" />
+<TGConnectingPoint num="0" id="118" />
+<TGConnectingPoint num="1" id="119" />
+<TGConnectingPoint num="2" id="120" />
+<TGConnectingPoint num="3" id="121" />
+<TGConnectingPoint num="4" id="122" />
+<TGConnectingPoint num="5" id="123" />
+<TGConnectingPoint num="6" id="124" />
+<TGConnectingPoint num="7" id="125" />
+<TGConnectingPoint num="8" id="126" />
+<TGConnectingPoint num="9" id="127" />
+</COMPONENT>
+
+<COMPONENT type="5101" id="130" >
+<cdparam x="399" y="310" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="129" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="141" >
+<cdparam x="356" y="118" />
+<sizeparam width="64" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="outch(d)" />
+<TGConnectingPoint num="0" id="131" />
+<TGConnectingPoint num="1" id="132" />
+<TGConnectingPoint num="2" id="133" />
+<TGConnectingPoint num="3" id="134" />
+<TGConnectingPoint num="4" id="135" />
+<TGConnectingPoint num="5" id="136" />
+<TGConnectingPoint num="6" id="137" />
+<TGConnectingPoint num="7" id="138" />
+<TGConnectingPoint num="8" id="139" />
+<TGConnectingPoint num="9" id="140" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="143" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="142" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="2500" minY="10" maxY="1500" >
+<CONNECTOR type="5102" id="150" >
+<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="149" />
+<P1  x="407" y="70" id="219" />
+<P2  x="525" y="118" id="208" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="148" >
+<father id="150" num="0" />
+<cdparam x="489" y="81" />
+<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="144" />
+<TGConnectingPoint num="1" id="145" />
+<TGConnectingPoint num="2" id="146" />
+<TGConnectingPoint num="3" id="147" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="send.data = secretData" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="157" >
+<cdparam x="426" y="161" />
+<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="156" />
+<P1  x="525" y="161" id="209" />
+<P2  x="429" y="199" id="167" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="155" >
+<father id="157" num="0" />
+<cdparam x="426" y="201" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="151" />
+<TGConnectingPoint num="1" id="152" />
+<TGConnectingPoint num="2" id="153" />
+<TGConnectingPoint num="3" id="154" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="164" >
+<cdparam x="479" y="249" />
+<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="163" />
+<P1  x="479" y="249" id="173" />
+<P2  x="480" y="281" id="165" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="162" >
+<father id="164" num="0" />
+<cdparam x="479" y="289" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="158" />
+<TGConnectingPoint num="1" id="159" />
+<TGConnectingPoint num="2" id="160" />
+<TGConnectingPoint num="3" id="161" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5101" id="166" >
+<cdparam x="470" y="286" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="207" >
+<cdparam x="429" y="199" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="State" value="state0" />
+<TGConnectingPoint num="0" id="167" />
+<TGConnectingPoint num="1" id="168" />
+<TGConnectingPoint num="2" id="169" />
+<TGConnectingPoint num="3" id="170" />
+<TGConnectingPoint num="4" id="171" />
+<TGConnectingPoint num="5" id="172" />
+<TGConnectingPoint num="6" id="173" />
+<TGConnectingPoint num="7" id="174" />
+<TGConnectingPoint num="8" id="175" />
+<TGConnectingPoint num="9" id="176" />
+<TGConnectingPoint num="10" id="177" />
+<TGConnectingPoint num="11" id="178" />
+<TGConnectingPoint num="12" id="179" />
+<TGConnectingPoint num="13" id="180" />
+<TGConnectingPoint num="14" id="181" />
+<TGConnectingPoint num="15" id="182" />
+<TGConnectingPoint num="16" id="183" />
+<TGConnectingPoint num="17" id="184" />
+<TGConnectingPoint num="18" id="185" />
+<TGConnectingPoint num="19" id="186" />
+<TGConnectingPoint num="20" id="187" />
+<TGConnectingPoint num="21" id="188" />
+<TGConnectingPoint num="22" id="189" />
+<TGConnectingPoint num="23" id="190" />
+<TGConnectingPoint num="24" id="191" />
+<TGConnectingPoint num="25" id="192" />
+<TGConnectingPoint num="26" id="193" />
+<TGConnectingPoint num="27" id="194" />
+<TGConnectingPoint num="28" id="195" />
+<TGConnectingPoint num="29" id="196" />
+<TGConnectingPoint num="30" id="197" />
+<TGConnectingPoint num="31" id="198" />
+<TGConnectingPoint num="32" id="199" />
+<TGConnectingPoint num="33" id="200" />
+<TGConnectingPoint num="34" id="201" />
+<TGConnectingPoint num="35" id="202" />
+<TGConnectingPoint num="36" id="203" />
+<TGConnectingPoint num="37" id="204" />
+<TGConnectingPoint num="38" id="205" />
+<TGConnectingPoint num="39" id="206" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5112" id="218" >
+<cdparam x="376" y="123" />
+<sizeparam width="298" height="33" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Library function call" value="recv = SendReceiveMessage (send, skey)" />
+<TGConnectingPoint num="0" id="208" />
+<TGConnectingPoint num="1" id="209" />
+<TGConnectingPoint num="2" id="210" />
+<TGConnectingPoint num="3" id="211" />
+<TGConnectingPoint num="4" id="212" />
+<TGConnectingPoint num="5" id="213" />
+<TGConnectingPoint num="6" id="214" />
+<TGConnectingPoint num="7" id="215" />
+<TGConnectingPoint num="8" id="216" />
+<TGConnectingPoint num="9" id="217" />
+<extraparam>
+<LibraryFunction name="SendReceiveMessage" />
+<Parameter id="send" />
+<Parameter id="skey" />
+<Signal value="in chin(int v)" />
+<Signal value="out chout(int v)" />
+<ReturnAttribute id="recv" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="220" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="219" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="2500" minY="10" maxY="1500" >
+<CONNECTOR type="5102" id="227" >
+<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="226" />
+<P1  x="407" y="70" id="296" />
+<P2  x="534" y="130" id="285" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="225" >
+<father id="227" num="0" />
+<cdparam x="495" y="86" />
+<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="221" />
+<TGConnectingPoint num="1" id="222" />
+<TGConnectingPoint num="2" id="223" />
+<TGConnectingPoint num="3" id="224" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="send.data = secretData" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="234" >
+<cdparam x="423" 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="233" />
+<P1  x="534" y="173" id="286" />
+<P2  x="435" y="259" id="244" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="232" >
+<father id="234" num="0" />
+<cdparam x="509" y="214" />
+<sizeparam width="175" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="228" />
+<TGConnectingPoint num="1" id="229" />
+<TGConnectingPoint num="2" id="230" />
+<TGConnectingPoint num="3" id="231" />
+<extraparam>
+<guard value="[ recv.data == secretData ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="241" >
+<cdparam x="472" y="309" />
+<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="240" />
+<P1  x="472" y="309" id="273" />
+<P2  x="467" y="336" id="242" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="239" >
+<father id="241" num="0" />
+<cdparam x="472" y="349" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="235" />
+<TGConnectingPoint num="1" id="236" />
+<TGConnectingPoint num="2" id="237" />
+<TGConnectingPoint num="3" id="238" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5101" id="243" >
+<cdparam x="457" y="341" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="242" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="284" >
+<cdparam x="435" y="259" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="State" value="state0" />
+<TGConnectingPoint num="0" id="244" />
+<TGConnectingPoint num="1" id="245" />
+<TGConnectingPoint num="2" id="246" />
+<TGConnectingPoint num="3" id="247" />
+<TGConnectingPoint num="4" id="248" />
+<TGConnectingPoint num="5" id="249" />
+<TGConnectingPoint num="6" id="250" />
+<TGConnectingPoint num="7" id="251" />
+<TGConnectingPoint num="8" id="252" />
+<TGConnectingPoint num="9" id="253" />
+<TGConnectingPoint num="10" id="254" />
+<TGConnectingPoint num="11" id="255" />
+<TGConnectingPoint num="12" id="256" />
+<TGConnectingPoint num="13" id="257" />
+<TGConnectingPoint num="14" id="258" />
+<TGConnectingPoint num="15" id="259" />
+<TGConnectingPoint num="16" id="260" />
+<TGConnectingPoint num="17" id="261" />
+<TGConnectingPoint num="18" id="262" />
+<TGConnectingPoint num="19" id="263" />
+<TGConnectingPoint num="20" id="264" />
+<TGConnectingPoint num="21" id="265" />
+<TGConnectingPoint num="22" id="266" />
+<TGConnectingPoint num="23" id="267" />
+<TGConnectingPoint num="24" id="268" />
+<TGConnectingPoint num="25" id="269" />
+<TGConnectingPoint num="26" id="270" />
+<TGConnectingPoint num="27" id="271" />
+<TGConnectingPoint num="28" id="272" />
+<TGConnectingPoint num="29" id="273" />
+<TGConnectingPoint num="30" id="274" />
+<TGConnectingPoint num="31" id="275" />
+<TGConnectingPoint num="32" id="276" />
+<TGConnectingPoint num="33" id="277" />
+<TGConnectingPoint num="34" id="278" />
+<TGConnectingPoint num="35" id="279" />
+<TGConnectingPoint num="36" id="280" />
+<TGConnectingPoint num="37" id="281" />
+<TGConnectingPoint num="38" id="282" />
+<TGConnectingPoint num="39" id="283" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5112" id="295" >
+<cdparam x="373" y="135" />
+<sizeparam width="323" height="33" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Library function call" value="recv = SendReceiveMessage (send, skey)" />
+<TGConnectingPoint num="0" id="285" />
+<TGConnectingPoint num="1" id="286" />
+<TGConnectingPoint num="2" id="287" />
+<TGConnectingPoint num="3" id="288" />
+<TGConnectingPoint num="4" id="289" />
+<TGConnectingPoint num="5" id="290" />
+<TGConnectingPoint num="6" id="291" />
+<TGConnectingPoint num="7" id="292" />
+<TGConnectingPoint num="8" id="293" />
+<TGConnectingPoint num="9" id="294" />
+<extraparam>
+<LibraryFunction name="SendReceiveMessage" />
+<Parameter id="send" />
+<Parameter id="skey" />
+<Signal value="in chin(int v)" />
+<Signal value="out chout(int v)" />
+<ReturnAttribute id="recv" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="297" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="296" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="AVATAR Design" nameTab="DesignNonConfidential" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<Validated value="SendReceiveMessage;Alice;Bob;" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="299" >
+<cdparam x="289" y="131" />
+<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="298" />
+<P1  x="288" y="129" id="373" />
+<P2  x="466" y="136" id="347" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<iso value="in chin(int v)" />
+<osd value="out chout(int v)" />
+<isd value="in chin(int v)" />
+<oso value="out chout(int v)" />
+<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="302" id="316" >
+<cdparam x="350" y="372" />
+<sizeparam width="375" height="97" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Proverif Pragma" value="#InitialSystemKnowledge Bob.skey Alice.skey
+#InitialSystemKnowledge Bob.secretData Alice.secretData
+#Confidentiality Bob.secretData
+" />
+<TGConnectingPoint num="0" id="300" />
+<TGConnectingPoint num="1" id="301" />
+<TGConnectingPoint num="2" id="302" />
+<TGConnectingPoint num="3" id="303" />
+<TGConnectingPoint num="4" id="304" />
+<TGConnectingPoint num="5" id="305" />
+<TGConnectingPoint num="6" id="306" />
+<TGConnectingPoint num="7" id="307" />
+<TGConnectingPoint num="8" id="308" />
+<TGConnectingPoint num="9" id="309" />
+<TGConnectingPoint num="10" id="310" />
+<TGConnectingPoint num="11" id="311" />
+<TGConnectingPoint num="12" id="312" />
+<TGConnectingPoint num="13" id="313" />
+<TGConnectingPoint num="14" id="314" />
+<TGConnectingPoint num="15" id="315" />
+<extraparam>
+<Line value="#InitialSystemKnowledge Bob.skey Alice.skey" />
+<Line value="#InitialSystemKnowledge Bob.secretData Alice.secretData" />
+<Line value="#Confidentiality Bob.secretData" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5003" id="325" >
+<cdparam x="622" y="271" />
+<sizeparam width="250" height="68" 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="DataType0" value="Key" />
+<TGConnectingPoint num="0" id="317" />
+<TGConnectingPoint num="1" id="318" />
+<TGConnectingPoint num="2" id="319" />
+<TGConnectingPoint num="3" id="320" />
+<TGConnectingPoint num="4" id="321" />
+<TGConnectingPoint num="5" id="322" />
+<TGConnectingPoint num="6" id="323" />
+<TGConnectingPoint num="7" id="324" />
+<extraparam>
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5003" id="334" >
+<cdparam x="345" y="273" />
+<sizeparam width="250" height="68" 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="DataType0" value="Message" />
+<TGConnectingPoint num="0" id="326" />
+<TGConnectingPoint num="1" id="327" />
+<TGConnectingPoint num="2" id="328" />
+<TGConnectingPoint num="3" id="329" />
+<TGConnectingPoint num="4" id="330" />
+<TGConnectingPoint num="5" id="331" />
+<TGConnectingPoint num="6" id="332" />
+<TGConnectingPoint num="7" id="333" />
+<extraparam>
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5005" id="343" >
+<cdparam x="89" y="278" />
+<sizeparam width="160" height="144" 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="SendReceiveMessage" value="SendReceiveMessage" />
+<TGConnectingPoint num="0" id="335" />
+<TGConnectingPoint num="1" id="336" />
+<TGConnectingPoint num="2" id="337" />
+<TGConnectingPoint num="3" id="338" />
+<TGConnectingPoint num="4" id="339" />
+<TGConnectingPoint num="5" id="340" />
+<TGConnectingPoint num="6" id="341" />
+<TGConnectingPoint num="7" id="342" />
+<extraparam>
+<CryptoLibraryFunction value="false" />
+<Parameter access="0" id="msg" value="" type="5" typeOther="Message" />
+<Parameter access="0" id="key" value="" type="5" typeOther="Key" />
+<Signal value="in inch(int v)" />
+<Signal value="out outch(int v)" />
+<ReturnAttribute access="0" id="msgRet" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="d" value="" type="8" typeOther="" />
+<Attribute access="0" id="dummy" value="" type="5" typeOther="Message" />
+<Method value="Message sencrypt(Message msg, Key k)" />
+<Method value="Message sdecrypt(Message msg, Key k)" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="368" >
+<cdparam x="466" y="36" />
+<sizeparam width="250" height="200" 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="Block1" value="Alice" />
+<TGConnectingPoint num="0" id="344" />
+<TGConnectingPoint num="1" id="345" />
+<TGConnectingPoint num="2" id="346" />
+<TGConnectingPoint num="3" id="347" />
+<TGConnectingPoint num="4" id="348" />
+<TGConnectingPoint num="5" id="349" />
+<TGConnectingPoint num="6" id="350" />
+<TGConnectingPoint num="7" id="351" />
+<TGConnectingPoint num="8" id="352" />
+<TGConnectingPoint num="9" id="353" />
+<TGConnectingPoint num="10" id="354" />
+<TGConnectingPoint num="11" id="355" />
+<TGConnectingPoint num="12" id="356" />
+<TGConnectingPoint num="13" id="357" />
+<TGConnectingPoint num="14" id="358" />
+<TGConnectingPoint num="15" id="359" />
+<TGConnectingPoint num="16" id="360" />
+<TGConnectingPoint num="17" id="361" />
+<TGConnectingPoint num="18" id="362" />
+<TGConnectingPoint num="19" id="363" />
+<TGConnectingPoint num="20" id="364" />
+<TGConnectingPoint num="21" id="365" />
+<TGConnectingPoint num="22" id="366" />
+<TGConnectingPoint num="23" id="367" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="send" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="recv" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="skey" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
+<Signal value="in chin(int v)" />
+<Signal value="out chout(int v)" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="393" >
+<cdparam x="38" y="44" />
+<sizeparam width="250" 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="Block0" value="Bob" />
+<TGConnectingPoint num="0" id="369" />
+<TGConnectingPoint num="1" id="370" />
+<TGConnectingPoint num="2" id="371" />
+<TGConnectingPoint num="3" id="372" />
+<TGConnectingPoint num="4" id="373" />
+<TGConnectingPoint num="5" id="374" />
+<TGConnectingPoint num="6" id="375" />
+<TGConnectingPoint num="7" id="376" />
+<TGConnectingPoint num="8" id="377" />
+<TGConnectingPoint num="9" id="378" />
+<TGConnectingPoint num="10" id="379" />
+<TGConnectingPoint num="11" id="380" />
+<TGConnectingPoint num="12" id="381" />
+<TGConnectingPoint num="13" id="382" />
+<TGConnectingPoint num="14" id="383" />
+<TGConnectingPoint num="15" id="384" />
+<TGConnectingPoint num="16" id="385" />
+<TGConnectingPoint num="17" id="386" />
+<TGConnectingPoint num="18" id="387" />
+<TGConnectingPoint num="19" id="388" />
+<TGConnectingPoint num="20" id="389" />
+<TGConnectingPoint num="21" id="390" />
+<TGConnectingPoint num="22" id="391" />
+<TGConnectingPoint num="23" id="392" />
+<extraparam>
+<CryptoBlock value="false" />
+<Attribute access="0" id="send" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="recv" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="skey" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
+<Signal value="in chin(int v)" />
+<Signal value="out chout(int v)" />
+</extraparam>
+</COMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="SendReceiveMessage" minX="10" maxX="2500" minY="10" maxY="1500" >
+<CONNECTOR type="5102" id="400" >
+<cdparam x="388" y="143" />
+<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="399" />
+<P1  x="388" y="143" id="429" />
+<P2  x="388" y="205" id="415" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="398" >
+<father id="400" num="0" />
+<cdparam x="388" y="183" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="394" />
+<TGConnectingPoint num="1" id="395" />
+<TGConnectingPoint num="2" id="396" />
+<TGConnectingPoint num="3" id="397" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="407" >
+<cdparam x="416" y="149" />
+<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="406" />
+<P1  x="388" y="235" id="416" />
+<P2  x="409" y="305" id="426" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="405" >
+<father id="407" num="0" />
+<cdparam x="420" y="262" />
+<sizeparam width="202" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="401" />
+<TGConnectingPoint num="1" id="402" />
+<TGConnectingPoint num="2" id="403" />
+<TGConnectingPoint num="3" id="404" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="dummy.data = d" />
+<actions value="msgRet = sdecrypt(dummy, key)" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="414" >
+<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="413" />
+<P1  x="407" y="70" id="439" />
+<P2  x="388" y="113" id="428" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="412" >
+<father id="414" num="0" />
+<cdparam x="423" y="87" />
+<sizeparam width="181" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="408" />
+<TGConnectingPoint num="1" id="409" />
+<TGConnectingPoint num="2" id="410" />
+<TGConnectingPoint num="3" id="411" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="dummy = sencrypt(msg, key)" />
+<actions value="d = dummy.data" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="425" >
+<cdparam x="357" y="210" />
+<sizeparam width="62" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Receive signal" value="inch(d)" />
+<TGConnectingPoint num="0" id="415" />
+<TGConnectingPoint num="1" id="416" />
+<TGConnectingPoint num="2" id="417" />
+<TGConnectingPoint num="3" id="418" />
+<TGConnectingPoint num="4" id="419" />
+<TGConnectingPoint num="5" id="420" />
+<TGConnectingPoint num="6" id="421" />
+<TGConnectingPoint num="7" id="422" />
+<TGConnectingPoint num="8" id="423" />
+<TGConnectingPoint num="9" id="424" />
+</COMPONENT>
+
+<COMPONENT type="5101" id="427" >
+<cdparam x="399" y="310" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="426" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="438" >
+<cdparam x="356" y="118" />
+<sizeparam width="64" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="outch(d)" />
+<TGConnectingPoint num="0" id="428" />
+<TGConnectingPoint num="1" id="429" />
+<TGConnectingPoint num="2" id="430" />
+<TGConnectingPoint num="3" id="431" />
+<TGConnectingPoint num="4" id="432" />
+<TGConnectingPoint num="5" id="433" />
+<TGConnectingPoint num="6" id="434" />
+<TGConnectingPoint num="7" id="435" />
+<TGConnectingPoint num="8" id="436" />
+<TGConnectingPoint num="9" id="437" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="440" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="439" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="2500" minY="10" maxY="1500" >
+<CONNECTOR type="5102" id="447" >
+<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="446" />
+<P1  x="407" y="70" id="516" />
+<P2  x="525" y="118" id="505" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="445" >
+<father id="447" num="0" />
+<cdparam x="489" y="81" />
+<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="441" />
+<TGConnectingPoint num="1" id="442" />
+<TGConnectingPoint num="2" id="443" />
+<TGConnectingPoint num="3" id="444" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="send.data = secretData" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="454" >
+<cdparam x="426" y="161" />
+<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="453" />
+<P1  x="525" y="161" id="506" />
+<P2  x="429" y="199" id="464" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="452" >
+<father id="454" num="0" />
+<cdparam x="426" y="201" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="448" />
+<TGConnectingPoint num="1" id="449" />
+<TGConnectingPoint num="2" id="450" />
+<TGConnectingPoint num="3" id="451" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="461" >
+<cdparam x="479" y="249" />
+<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="460" />
+<P1  x="479" y="249" id="470" />
+<P2  x="480" y="281" id="462" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="459" >
+<father id="461" num="0" />
+<cdparam x="479" y="289" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="455" />
+<TGConnectingPoint num="1" id="456" />
+<TGConnectingPoint num="2" id="457" />
+<TGConnectingPoint num="3" id="458" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5101" id="463" >
+<cdparam x="470" y="286" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="462" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="504" >
+<cdparam x="429" y="199" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="State" value="state0" />
+<TGConnectingPoint num="0" id="464" />
+<TGConnectingPoint num="1" id="465" />
+<TGConnectingPoint num="2" id="466" />
+<TGConnectingPoint num="3" id="467" />
+<TGConnectingPoint num="4" id="468" />
+<TGConnectingPoint num="5" id="469" />
+<TGConnectingPoint num="6" id="470" />
+<TGConnectingPoint num="7" id="471" />
+<TGConnectingPoint num="8" id="472" />
+<TGConnectingPoint num="9" id="473" />
+<TGConnectingPoint num="10" id="474" />
+<TGConnectingPoint num="11" id="475" />
+<TGConnectingPoint num="12" id="476" />
+<TGConnectingPoint num="13" id="477" />
+<TGConnectingPoint num="14" id="478" />
+<TGConnectingPoint num="15" id="479" />
+<TGConnectingPoint num="16" id="480" />
+<TGConnectingPoint num="17" id="481" />
+<TGConnectingPoint num="18" id="482" />
+<TGConnectingPoint num="19" id="483" />
+<TGConnectingPoint num="20" id="484" />
+<TGConnectingPoint num="21" id="485" />
+<TGConnectingPoint num="22" id="486" />
+<TGConnectingPoint num="23" id="487" />
+<TGConnectingPoint num="24" id="488" />
+<TGConnectingPoint num="25" id="489" />
+<TGConnectingPoint num="26" id="490" />
+<TGConnectingPoint num="27" id="491" />
+<TGConnectingPoint num="28" id="492" />
+<TGConnectingPoint num="29" id="493" />
+<TGConnectingPoint num="30" id="494" />
+<TGConnectingPoint num="31" id="495" />
+<TGConnectingPoint num="32" id="496" />
+<TGConnectingPoint num="33" id="497" />
+<TGConnectingPoint num="34" id="498" />
+<TGConnectingPoint num="35" id="499" />
+<TGConnectingPoint num="36" id="500" />
+<TGConnectingPoint num="37" id="501" />
+<TGConnectingPoint num="38" id="502" />
+<TGConnectingPoint num="39" id="503" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5112" id="515" >
+<cdparam x="376" y="123" />
+<sizeparam width="298" height="33" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Library function call" value="recv = SendReceiveMessage (send, skey)" />
+<TGConnectingPoint num="0" id="505" />
+<TGConnectingPoint num="1" id="506" />
+<TGConnectingPoint num="2" id="507" />
+<TGConnectingPoint num="3" id="508" />
+<TGConnectingPoint num="4" id="509" />
+<TGConnectingPoint num="5" id="510" />
+<TGConnectingPoint num="6" id="511" />
+<TGConnectingPoint num="7" id="512" />
+<TGConnectingPoint num="8" id="513" />
+<TGConnectingPoint num="9" id="514" />
+<extraparam>
+<LibraryFunction name="SendReceiveMessage" />
+<Parameter id="send" />
+<Parameter id="skey" />
+<Signal value="in chin(int v)" />
+<Signal value="out chout(int v)" />
+<ReturnAttribute id="recv" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="517" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="516" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="2500" minY="10" maxY="1500" >
+<CONNECTOR type="5102" id="524" >
+<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="523" />
+<P1  x="407" y="70" id="611" />
+<P2  x="534" y="130" id="600" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="522" >
+<father id="524" num="0" />
+<cdparam x="495" y="86" />
+<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="518" />
+<TGConnectingPoint num="1" id="519" />
+<TGConnectingPoint num="2" id="520" />
+<TGConnectingPoint num="3" id="521" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="send.data = secretData" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="531" >
+<cdparam x="423" 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="530" />
+<P1  x="534" y="173" id="601" />
+<P2  x="411" y="233" id="559" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="529" >
+<father id="531" num="0" />
+<cdparam x="509" y="214" />
+<sizeparam width="175" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="525" />
+<TGConnectingPoint num="1" id="526" />
+<TGConnectingPoint num="2" id="527" />
+<TGConnectingPoint num="3" id="528" />
+<extraparam>
+<guard value="[ recv.data == secretData ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="538" >
+<cdparam x="472" y="309" />
+<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="537" />
+<P1  x="412" y="373" id="547" />
+<P2  x="444" y="425" id="557" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="536" >
+<father id="538" num="0" />
+<cdparam x="472" y="349" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="532" />
+<TGConnectingPoint num="1" id="533" />
+<TGConnectingPoint num="2" id="534" />
+<TGConnectingPoint num="3" id="535" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="545" >
+<cdparam x="423" y="283" />
+<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="544" />
+<P1  x="423" y="283" id="587" />
+<P2  x="412" y="343" id="546" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="543" >
+<father id="545" num="0" />
+<cdparam x="423" y="323" />
+<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="539" />
+<TGConnectingPoint num="1" id="540" />
+<TGConnectingPoint num="2" id="541" />
+<TGConnectingPoint num="3" id="542" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="secretData = skey.data" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="556" >
+<cdparam x="349" y="348" />
+<sizeparam width="126" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="chout(secretData)" />
+<TGConnectingPoint num="0" id="546" />
+<TGConnectingPoint num="1" id="547" />
+<TGConnectingPoint num="2" id="548" />
+<TGConnectingPoint num="3" id="549" />
+<TGConnectingPoint num="4" id="550" />
+<TGConnectingPoint num="5" id="551" />
+<TGConnectingPoint num="6" id="552" />
+<TGConnectingPoint num="7" id="553" />
+<TGConnectingPoint num="8" id="554" />
+<TGConnectingPoint num="9" id="555" />
+</COMPONENT>
+
+<COMPONENT type="5101" id="558" >
+<cdparam x="434" y="430" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="557" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="599" >
+<cdparam x="411" y="233" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="State" value="state0" />
+<TGConnectingPoint num="0" id="559" />
+<TGConnectingPoint num="1" id="560" />
+<TGConnectingPoint num="2" id="561" />
+<TGConnectingPoint num="3" id="562" />
+<TGConnectingPoint num="4" id="563" />
+<TGConnectingPoint num="5" id="564" />
+<TGConnectingPoint num="6" id="565" />
+<TGConnectingPoint num="7" id="566" />
+<TGConnectingPoint num="8" id="567" />
+<TGConnectingPoint num="9" id="568" />
+<TGConnectingPoint num="10" id="569" />
+<TGConnectingPoint num="11" id="570" />
+<TGConnectingPoint num="12" id="571" />
+<TGConnectingPoint num="13" id="572" />
+<TGConnectingPoint num="14" id="573" />
+<TGConnectingPoint num="15" id="574" />
+<TGConnectingPoint num="16" id="575" />
+<TGConnectingPoint num="17" id="576" />
+<TGConnectingPoint num="18" id="577" />
+<TGConnectingPoint num="19" id="578" />
+<TGConnectingPoint num="20" id="579" />
+<TGConnectingPoint num="21" id="580" />
+<TGConnectingPoint num="22" id="581" />
+<TGConnectingPoint num="23" id="582" />
+<TGConnectingPoint num="24" id="583" />
+<TGConnectingPoint num="25" id="584" />
+<TGConnectingPoint num="26" id="585" />
+<TGConnectingPoint num="27" id="586" />
+<TGConnectingPoint num="28" id="587" />
+<TGConnectingPoint num="29" id="588" />
+<TGConnectingPoint num="30" id="589" />
+<TGConnectingPoint num="31" id="590" />
+<TGConnectingPoint num="32" id="591" />
+<TGConnectingPoint num="33" id="592" />
+<TGConnectingPoint num="34" id="593" />
+<TGConnectingPoint num="35" id="594" />
+<TGConnectingPoint num="36" id="595" />
+<TGConnectingPoint num="37" id="596" />
+<TGConnectingPoint num="38" id="597" />
+<TGConnectingPoint num="39" id="598" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5112" id="610" >
+<cdparam x="373" y="135" />
+<sizeparam width="323" height="33" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Library function call" value="recv = SendReceiveMessage (send, skey)" />
+<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" />
+<extraparam>
+<LibraryFunction name="SendReceiveMessage" />
+<Parameter id="send" />
+<Parameter id="skey" />
+<Signal value="in chin(int v)" />
+<Signal value="out chout(int v)" />
+<ReturnAttribute id="recv" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="612" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="611" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml b/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7ce0df3d609b86ff84d801f7ee2b0455119f0744
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml
@@ -0,0 +1,557 @@
+<TMLMAPPING>
+<TMLMODELING>
+<TASK name="Zigbee_TX__X_Sink" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_Source" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue="127"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event">
+<CUSTOM  event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request">
+<CUSTOM  request="Zigbee_TX__source_req" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action">
+<CUSTOM  action="size = 127" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_Source" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in "  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_Symbol2ChipSeq" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event">
+<CUSTOM  event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request">
+<CUSTOM  request="Zigbee_TX__bit2chip_req" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_Chip2Octet" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_Sink" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="size_1" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="2" name="send request">
+<CUSTOM  request="Zigbee_TX__sink_req" params="size+size_1"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="3" name="wait event">
+<CUSTOM  event="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" params="size_1"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="4" name="wait event">
+<CUSTOM  event="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_CWL" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request">
+<CUSTOM  request="Zigbee_TX__cwl_req" params="size"  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event">
+<CUSTOM  event="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="5" name="send event">
+<CUSTOM  event="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_CWP_Q" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event">
+<CUSTOM  event="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request">
+<CUSTOM  request="Zigbee_TX__cwpQ_req" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_CWP_I" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event">
+<CUSTOM  event="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request">
+<CUSTOM  request="Zigbee_TX__cwpI_req" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_Chip2Octet" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event">
+<CUSTOM  event="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request">
+<CUSTOM  request="Zigbee_TX__chip2octet_req" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_CWP_I" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_CWP_Q" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_CWL" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_Symbol2ChipSeq" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TMLCHANNEL name="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in" origintask="Zigbee_TX__X_Source" originport="Source_ch_out" destinationtask="Zigbee_TX__X_Symbol2ChipSeq" destinationport="symbol2ChipSeq_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in" origintask="Zigbee_TX__X_Chip2Octet" originport="chip2octet_ch_out" destinationtask="Zigbee_TX__X_CWL" destinationport="cwl_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" destinationtask="Zigbee_TX__X_Sink" destinationport="sink_ch_in" origintask="Zigbee_TX__X_CWP_I;Zigbee_TX__X_CWP_Q;" originport="cwpI_ch_out;cwpQ_ch_out;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" origintask="Zigbee_TX__X_CWL" originport="cwl_ch_out" destinationtask="Zigbee_TX__X_CWP_Q;Zigbee_TX__X_CWP_I;" destinationport="cwpQ_ch_in;cwpI_ch_in;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in" origintask="Zigbee_TX__X_Symbol2ChipSeq" originport="symbol2ChipSeq_ch_out" destinationtask="Zigbee_TX__X_Chip2Octet" destinationport="chip2octet_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLREQUEST name="Zigbee_TX__sink_req" destinationtask="Zigbee_TX__X_Sink" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_Sink" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__source_req" destinationtask="Zigbee_TX__X_Source" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_Source" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__chip2octet_req" destinationtask="Zigbee_TX__X_Chip2Octet" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_Chip2Octet" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__cwpI_req" destinationtask="Zigbee_TX__X_CWP_I" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_CWP_I" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__cwpQ_req" destinationtask="Zigbee_TX__X_CWP_Q" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_CWP_Q" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__cwl_req" destinationtask="Zigbee_TX__X_CWL" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_CWL" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__bit2chip_req" destinationtask="Zigbee_TX__X_Symbol2ChipSeq" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_Symbol2ChipSeq" /> <PARAM type="int" /></TMLREQUEST>
+<TMLEVENT name="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" origintask="Zigbee_TX__F_Source" destinationtask="Zigbee_TX__F_Symbol2ChipSeq" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" origintask="Zigbee_TX__F_Symbol2ChipSeq" destinationtask="Zigbee_TX__F_Chip2Octet" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" origintask="Zigbee_TX__F_CWL" destinationtask="Zigbee_TX__F_CWP_I" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" origintask="Zigbee_TX__F_CWL" destinationtask="Zigbee_TX__F_CWP_Q" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" origintask="Zigbee_TX__F_CWP_Q" destinationtask="Zigbee_TX__F_Sink" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" origintask="Zigbee_TX__F_CWP_I" destinationtask="Zigbee_TX__F_Sink" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" origintask="Zigbee_TX__F_Chip2Octet" destinationtask="Zigbee_TX__F_CWL" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+</TMLMODELING>
+<TMLARCHITECTURE freq="100" >
+<CPU name="INTL_DMA" clockRatio="1"  byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5"  schedulingPolicy="0" sliceTime="10000" MEC="CPU" />
+<CPU name="ADAIF_DMA" clockRatio="1"  byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5"  schedulingPolicy="0" sliceTime="10000" MEC="CPU" />
+<MEMORY name="ADAIF_MSS" clockRatio="1"  byteDataSize="4" memorySize="1024"  bufferType="2" />
+<CPU name="ADAIF_PSS" clockRatio="1"  byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5"  schedulingPolicy="0" sliceTime="10000" MEC="ADAIF" />
+<BRIDGE name="ADAIF_Bridge" clockRatio="1"  bufferByteSize="4" />
+<MEMORY name="MainMemory" clockRatio="1"  byteDataSize="4" memorySize="1024"  bufferType="4" />
+<CPU name="MainCPU" clockRatio="6"  byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5"  schedulingPolicy="0" sliceTime="10000" MEC="CPU" />
+<BUS name="MainBus" clockRatio="1"  byteDataSize="4"  pipelineSize="1" arbitration="0" sliceTime="10000" />
+<BRIDGE name="MainBridge" clockRatio="1"  bufferByteSize="4" />
+<BUS name="Crossbar" clockRatio="1"  byteDataSize="8"  pipelineSize="1" arbitration="0" sliceTime="10000" />
+<BRIDGE name="INTL_Bridge" clockRatio="1"  bufferByteSize="4" />
+<MEMORY name="INTL_MSS" clockRatio="1"  byteDataSize="4" memorySize="1024"  bufferType="3" />
+<CPU name="INTL_PSS" clockRatio="1"  byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5"  schedulingPolicy="0" sliceTime="10000" MEC="INTL" />
+<BUS name="INTL_Bus" clockRatio="1"  byteDataSize="8"  pipelineSize="1" arbitration="0" sliceTime="10000" />
+<BUS name="ADAIF_Bus" clockRatio="1"  byteDataSize="8"  pipelineSize="1" arbitration="0" sliceTime="10000" />
+<CPU name="FEP_DMA" clockRatio="1"  byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5"  schedulingPolicy="0" sliceTime="10000" MEC="CPU" />
+<MEMORY name="FEP_MSS" clockRatio="1"  byteDataSize="4" memorySize="1024"  bufferType="0" />
+<CPU name="FEP_PSS" clockRatio="1"  byteDataSize="4" execiTime="2" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5"  schedulingPolicy="0" sliceTime="10000" MEC="FEP" />
+<BRIDGE name="FEP_Bridge" clockRatio="1"  bufferByteSize="4" />
+<BUS name="FEP_Bus" clockRatio="1"  byteDataSize="8"  pipelineSize="1" arbitration="0" sliceTime="10000" />
+<CPU name="MAPPER_DMA" clockRatio="1"  byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5"  schedulingPolicy="0" sliceTime="10000" MEC="CPU" />
+<BRIDGE name="MAPPER_Bridge" clockRatio="1"  bufferByteSize="4" />
+<MEMORY name="MAPPER_MSS" clockRatio="1"  byteDataSize="4" memorySize="1024"  bufferType="1" />
+<CPU name="MAPPER_PSS" clockRatio="1"  byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5"  schedulingPolicy="0" sliceTime="10000" MEC="MAPP" />
+<BUS name="MAPPER_Bus" clockRatio="1"  byteDataSize="8"  pipelineSize="1" arbitration="0" sliceTime="10000" />
+<LINK name="link_MainBridge_to_Crossbar" bus="Crossbar" hwnode="MainBridge" priority="0" />
+<LINK name="link_FEP_DMA_to_Crossbar" bus="Crossbar" hwnode="FEP_DMA" priority="0" />
+<LINK name="link_MAPPER_DMA_to_Crossbar" bus="Crossbar" hwnode="MAPPER_DMA" priority="0" />
+<LINK name="link_MAPPER_Bridge_to_Crossbar" bus="Crossbar" hwnode="MAPPER_Bridge" priority="0" />
+<LINK name="link_FEP_Bridge_to_Crossbar" bus="Crossbar" hwnode="FEP_Bridge" priority="0" />
+<LINK name="link_MainBridge_to_MainBus" bus="MainBus" hwnode="MainBridge" priority="0" />
+<LINK name="link_INTL_Bridge_to_INTL_Bus" bus="INTL_Bus" hwnode="INTL_Bridge" priority="0" />
+<LINK name="link_INTL_DMA_to_Crossbar" bus="Crossbar" hwnode="INTL_DMA" priority="0" />
+<LINK name="link_INTL_DMA_to_INTL_Bus" bus="INTL_Bus" hwnode="INTL_DMA" priority="0" />
+<LINK name="link_INTL_MSS_to_INTL_Bus" bus="INTL_Bus" hwnode="INTL_MSS" priority="0" />
+<LINK name="link_INTL_PSS_to_INTL_Bus" bus="INTL_Bus" hwnode="INTL_PSS" priority="0" />
+<LINK name="link_ADAIF_Bridge_to_Crossbar" bus="Crossbar" hwnode="ADAIF_Bridge" priority="0" />
+<LINK name="link_ADAIF_Bridge_to_ADAIF_Bus" bus="ADAIF_Bus" hwnode="ADAIF_Bridge" priority="0" />
+<LINK name="link_ADAIF_DMA_to_Crossbar" bus="Crossbar" hwnode="ADAIF_DMA" priority="0" />
+<LINK name="link_ADAIF_DMA_to_ADAIF_Bus" bus="ADAIF_Bus" hwnode="ADAIF_DMA" priority="0" />
+<LINK name="link_ADAIF_MSS_to_ADAIF_Bus" bus="ADAIF_Bus" hwnode="ADAIF_MSS" priority="0" />
+<LINK name="link_ADAIF_PSS_to_ADAIF_Bus" bus="ADAIF_Bus" hwnode="ADAIF_PSS" priority="0" />
+<LINK name="link_INTL_Bridge_to_Crossbar" bus="Crossbar" hwnode="INTL_Bridge" priority="0" />
+<LINK name="link_MainMemory_to_MainBus" bus="MainBus" hwnode="MainMemory" priority="0" />
+<LINK name="link_MainCPU_to_MainBus" bus="MainBus" hwnode="MainCPU" priority="0" />
+<LINK name="link_FEP_Bridge_to_FEP_Bus" bus="FEP_Bus" hwnode="FEP_Bridge" priority="0" />
+<LINK name="link_FEP_DMA_to_FEP_Bus" bus="FEP_Bus" hwnode="FEP_DMA" priority="0" />
+<LINK name="link_FEP_MSS_to_FEP_Bus" bus="FEP_Bus" hwnode="FEP_MSS" priority="0" />
+<LINK name="link_FEP_PSS_to_FEP_Bus" bus="FEP_Bus" hwnode="FEP_PSS" priority="0" />
+<LINK name="link_MAPPER_Bridge_to_MAPPER_Bus" bus="MAPPER_Bus" hwnode="MAPPER_Bridge" priority="0" />
+<LINK name="link_MAPPER_DMA_to_MAPPER_Bus" bus="MAPPER_Bus" hwnode="MAPPER_DMA" priority="0" />
+<LINK name="link_MAPPER_MSS_to_MAPPER_Bus" bus="MAPPER_Bus" hwnode="MAPPER_MSS" priority="0" />
+<LINK name="link_MAPPER_PSS_to_MAPPER_Bus" bus="MAPPER_Bus" hwnode="MAPPER_PSS" priority="0" />
+</TMLARCHITECTURE><TASKMAP node="ADAIF_PSS" task="Zigbee_TX__X_Sink" />
+<TASKMAP node="MainCPU" task="Zigbee_TX__F_Source" />
+<TASKMAP node="MainCPU" task="Zigbee_TX__X_Source" />
+<TASKMAP node="MainCPU" task="Zigbee_TX__F_Symbol2ChipSeq" />
+<TASKMAP node="MainCPU" task="Zigbee_TX__X_Chip2Octet" />
+<TASKMAP node="MainCPU" task="Zigbee_TX__F_Sink" />
+<TASKMAP node="MainCPU" task="Zigbee_TX__F_CWL" />
+<TASKMAP node="MainCPU" task="Zigbee_TX__F_CWP_Q" />
+<TASKMAP node="MainCPU" task="Zigbee_TX__F_CWP_I" />
+<TASKMAP node="INTL_PSS" task="Zigbee_TX__F_Chip2Octet" />
+<TASKMAP node="FEP_PSS" task="Zigbee_TX__X_CWP_I" />
+<TASKMAP node="FEP_PSS" task="Zigbee_TX__X_CWP_Q" />
+<TASKMAP node="FEP_PSS" task="Zigbee_TX__X_CWL" />
+<TASKMAP node="MAPPER_PSS" task="Zigbee_TX__X_Symbol2ChipSeq" />
+<TMLCPLIB name="CP_Symbol2ChipSeq_Chips2Octet::DMA_transfer" cpMECType="1" typeName="DMA_transfer">
+<TMLCPLIBARTIFACT taskName="Zigbee_TX::chip2octet_ch_in" portName="chip2octet_ch_in" memoryName="INTL_MSS" priority="5" >
+<BUFFERPARAMETERS param="3" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+<BUFFERPARAMETERS param="" />
+</TMLCPLIBARTIFACT>
+<MAPPEUNIT unit="DMA_transfer.CPU_Controller_1 : MainCPU" />
+<MAPPEUNIT unit="DMA_transfer.DMA_Controller_1 : MAPPER_DMA" />
+<MAPPEUNIT unit="DMA_transfer.Src_Storage_Instance_1 : MAPPER_MSS" />
+<MAPPEUNIT unit="DMA_transfer.Dst_Storage_Instance_1 : INTL_MSS" />
+<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_1 : MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_2 : MAPPER_Bus" />
+<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_3 : Crossbar, INTL_Bridge, INTL_Bus, MAPPER_Bridge, MAPPER_Bus" />
+<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_4 : MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<TRANSFERTYPE type="0" />
+<TRANSFERTYPE type="0" />
+</TMLCPLIB><TMLCPLIB name="CP_Chip2Octet_CWL::DMA_transfer" cpMECType="1" typeName="DMA_transfer">
+<TMLCPLIBARTIFACT taskName="Zigbee_TX::cwl_ch_in" portName="cwl_ch_in" memoryName="FEP_MSS" priority="5" >
+<BUFFERPARAMETERS param="0" />
+<BUFFERPARAMETERS param="1" />
+<BUFFERPARAMETERS param="0x2" />
+<BUFFERPARAMETERS param="0" />
+<BUFFERPARAMETERS param="int8" />
+</TMLCPLIBARTIFACT>
+<MAPPEUNIT unit="DMA_transfer.CPU_Controller_1 : MainCPU" />
+<MAPPEUNIT unit="DMA_transfer.DMA_Controller_1 : INTL_DMA" />
+<MAPPEUNIT unit="DMA_transfer.Src_Storage_Instance_1 : INTL_MSS" />
+<MAPPEUNIT unit="DMA_transfer.Dst_Storage_Instance_1 : FEP_MSS" />
+<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_1 : MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_2 : INTL_Bus" />
+<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_3 : ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_4 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<TRANSFERTYPE type="0" />
+<TRANSFERTYPE type="0" />
+</TMLCPLIB><TMLCPLIB name="CP_sink::Double_DMA_transfer" cpMECType="2" typeName="Double_DMA_transfer">
+<TMLCPLIBARTIFACT taskName="Zigbee_TX::sink_ch_in" portName="sink_ch_in" memoryName="ADAIF_MSS" priority="5" >
+<BUFFERPARAMETERS param="2" />
+<BUFFERPARAMETERS param="1" />
+<BUFFERPARAMETERS param="0x2" />
+</TMLCPLIBARTIFACT>
+<MAPPEUNIT unit="Double_DMA_transfer.CPU_Controller_1 : MainCPU" />
+<MAPPEUNIT unit="Double_DMA_transfer.CPU_Controller_2 : MainCPU" />
+<MAPPEUNIT unit="Double_DMA_transfer.DMA_Controller_1 : FEP_DMA" />
+<MAPPEUNIT unit="Double_DMA_transfer.DMA_Controller_2 : FEP_DMA" />
+<MAPPEUNIT unit="Double_DMA_transfer.Src_Storage_Instance_1 : FEP_MSS" />
+<MAPPEUNIT unit="Double_DMA_transfer.Src_Storage_Instance_2 : FEP_MSS" />
+<MAPPEUNIT unit="Double_DMA_transfer.Dst_Storage_Instance_2 : ADAIF_MSS" />
+<MAPPEUNIT unit="Double_DMA_transfer.Dst_Storage_Instance_1 : ADAIF_MSS" />
+<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_1 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_2 : FEP_Bus" />
+<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_3 : ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_4 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_5 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_6 : FEP_Bus" />
+<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_7 : ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_8 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<TRANSFERTYPE type="0" />
+<TRANSFERTYPE type="0" />
+</TMLCPLIB><TMLCPLIB name="CP_Source_to_Bits2Symbol::CP_Memory_Copy" cpMECType="0" typeName="CP_Memory_Copy">
+<TMLCPLIBARTIFACT taskName="Zigbee_TX::symbol2ChipSeq_ch_in" portName="symbol2ChipSeq_ch_in" memoryName="MAPPER_MSS" priority="5" >
+<BUFFERPARAMETERS param="1" />
+<BUFFERPARAMETERS param="1" />
+<BUFFERPARAMETERS param="0x2" />
+<BUFFERPARAMETERS param="3" />
+<BUFFERPARAMETERS param="OFF" />
+<BUFFERPARAMETERS param="0x4" />
+<BUFFERPARAMETERS param="0x5" />
+</TMLCPLIBARTIFACT>
+<MAPPEUNIT unit="CP_Memory_Copy.CPU_Controller : MainCPU" />
+<MAPPEUNIT unit="CP_Memory_Copy.Dst_Storage_Instance : MAPPER_MSS" />
+<MAPPEUNIT unit="CP_Memory_Copy.Src_Storage_Instance : MainMemory" />
+<MAPPEUNIT unit="CP_Memory_Copy.Transfer_Instance_1 : MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<MAPPEUNIT unit="CP_Memory_Copy.Transfer_Instance2 : MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<TRANSFERTYPE type="0" />
+<TRANSFERTYPE type="0" />
+</TMLCPLIB></TMLMAPPING>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/Zigbee_TX.xml b/ttool/src/test/resources/ui/diagram2tml/expected/Zigbee_TX.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cb58209c789f8d272336e795981888f9a34cda7d
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/Zigbee_TX.xml
@@ -0,0 +1,403 @@
+<TMLMODELING>
+<TASK name="Zigbee_TX__X_Source" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in "  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_Source" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue="127"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event">
+<CUSTOM  event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request">
+<CUSTOM  request="Zigbee_TX__source_req" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action">
+<CUSTOM  action="size = 127" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_Symbol2ChipSeq" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_Symbol2ChipSeq" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event">
+<CUSTOM  event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request">
+<CUSTOM  request="Zigbee_TX__bit2chip_req" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_Chip2Octet" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_Chip2Octet" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event">
+<CUSTOM  event="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request">
+<CUSTOM  request="Zigbee_TX__chip2octet_req" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_CWL" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_CWL" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request">
+<CUSTOM  request="Zigbee_TX__cwl_req" params="size"  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event">
+<CUSTOM  event="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="5" name="send event">
+<CUSTOM  event="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_Sink" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_Sink" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="size_1" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="2" name="send request">
+<CUSTOM  request="Zigbee_TX__sink_req" params="size+size_1"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="3" name="wait event">
+<CUSTOM  event="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" params="size_1"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="4" name="wait event">
+<CUSTOM  event="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_CWP_Q" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_CWP_Q" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event">
+<CUSTOM  event="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request">
+<CUSTOM  request="Zigbee_TX__cwpQ_req" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__X_CWP_I" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="Zigbee_TX__F_CWP_I" priority="0" >
+<ATTRIBUTE type="1" name="size" initialValue=""/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event">
+<CUSTOM  event="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event">
+<CUSTOM  event="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request">
+<CUSTOM  request="Zigbee_TX__cwpI_req" params="size"  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TMLCHANNEL name="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in" origintask="Zigbee_TX__X_Source" originport="Source_ch_out" destinationtask="Zigbee_TX__X_Symbol2ChipSeq" destinationport="symbol2ChipSeq_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in" origintask="Zigbee_TX__X_Symbol2ChipSeq" originport="symbol2ChipSeq_ch_out" destinationtask="Zigbee_TX__X_Chip2Octet" destinationport="chip2octet_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in" origintask="Zigbee_TX__X_Chip2Octet" originport="chip2octet_ch_out" destinationtask="Zigbee_TX__X_CWL" destinationport="cwl_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" origintask="Zigbee_TX__X_CWL" originport="cwl_ch_out" destinationtask="Zigbee_TX__X_CWP_Q;Zigbee_TX__X_CWP_I;" destinationport="cwpQ_ch_in;cwpI_ch_in;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out" destinationtask="Zigbee_TX__X_Sink" destinationport="sink_ch_in" origintask="Zigbee_TX__X_CWP_Q;Zigbee_TX__X_CWP_I;" originport="cwpQ_ch_out;cwpI_ch_out;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLREQUEST name="Zigbee_TX__source_req" destinationtask="Zigbee_TX__X_Source" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_Source" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__bit2chip_req" destinationtask="Zigbee_TX__X_Symbol2ChipSeq" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_Symbol2ChipSeq" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__chip2octet_req" destinationtask="Zigbee_TX__X_Chip2Octet" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_Chip2Octet" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__cwl_req" destinationtask="Zigbee_TX__X_CWL" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_CWL" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__sink_req" destinationtask="Zigbee_TX__X_Sink" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_Sink" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__cwpQ_req" destinationtask="Zigbee_TX__X_CWP_Q" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_CWP_Q" /> <PARAM type="int" /></TMLREQUEST>
+<TMLREQUEST name="Zigbee_TX__cwpI_req" destinationtask="Zigbee_TX__X_CWP_I" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
+<ORIGINTASK name="Zigbee_TX__F_CWP_I" /> <PARAM type="int" /></TMLREQUEST>
+<TMLEVENT name="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" origintask="Zigbee_TX__F_Source" destinationtask="Zigbee_TX__F_Symbol2ChipSeq" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" origintask="Zigbee_TX__F_Symbol2ChipSeq" destinationtask="Zigbee_TX__F_Chip2Octet" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" origintask="Zigbee_TX__F_Chip2Octet" destinationtask="Zigbee_TX__F_CWL" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" origintask="Zigbee_TX__F_CWL" destinationtask="Zigbee_TX__F_CWP_I" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" origintask="Zigbee_TX__F_CWL" destinationtask="Zigbee_TX__F_CWP_Q" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" origintask="Zigbee_TX__F_CWP_Q" destinationtask="Zigbee_TX__F_Sink" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+<TMLEVENT name="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" origintask="Zigbee_TX__F_CWP_I" destinationtask="Zigbee_TX__F_Sink" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" >
+<PARAM type="int" /></TMLEVENT>
+</TMLMODELING>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionState.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionState.xml
new file mode 100644
index 0000000000000000000000000000000000000000..95d407d311c5f77b0090c8cb0aac2c432efd1099
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionState.xml
@@ -0,0 +1,17 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event">
+<CUSTOM  event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request">
+<CUSTOM  request="Zigbee_TX__source_req" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendEvent.xml
new file mode 100644
index 0000000000000000000000000000000000000000..04bfc6487d87942f825bf4c085a5d8a11442672b
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendEvent.xml
@@ -0,0 +1,13 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="2" name="send request">
+<CUSTOM  request="Zigbee_TX__source_req" params="size"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequest.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..47fef1cbf4fb1854794a2c3229ed41c4470ebef9
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequest.xml
@@ -0,0 +1,13 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event">
+<CUSTOM  event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequestSendEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequestSendEvent.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eeb8817b4b041db81d761ea7530a90d4da8a36ec
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequestSendEvent.xml
@@ -0,0 +1,9 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendEvent.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e77484a53de2f374ff68021b10b22f8ea58d4ed1
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendEvent.xml
@@ -0,0 +1,17 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="2" name="send request">
+<CUSTOM  request="Zigbee_TX__source_req" params="size"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="3" name="action">
+<CUSTOM  action="size = 127" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequest.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5a6db0d5b06bc3258592b634ffaf52ed6f51f742
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequest.xml
@@ -0,0 +1,17 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event">
+<CUSTOM  event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="3" name="action">
+<CUSTOM  action="size = 127" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequestSendEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequestSendEvent.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9d0d3fcc6070372ce42c71fada55038f262ab4ba
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequestSendEvent.xml
@@ -0,0 +1,13 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="2" name="action">
+<CUSTOM  action="size = 127" />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Symbol2ChipSeq_Disable_WaitEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Symbol2ChipSeq_Disable_WaitEvent.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c6da6d2ea972aa16c9c43f86cc47d6262878426f
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Symbol2ChipSeq_Disable_WaitEvent.xml
@@ -0,0 +1,17 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event">
+<CUSTOM  event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size"  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request">
+<CUSTOM  request="Zigbee_TX__bit2chip_req" params="size"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ChoiceLeft.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ChoiceLeft.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eb03280482b70bf3b11253153813a7fa7adcafa5
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ChoiceLeft.xml
@@ -0,0 +1,73 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="1" name="choice">
+<CUSTOM  guards="[ ];[ ];"  />
+<NEXTACTIVITYELEMENT id="8" />
+<NEXTACTIVITYELEMENT id="11" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="2" name="choice">
+<CUSTOM  guards="[ true ];[ x>0 ];"  />
+<NEXTACTIVITYELEMENT id="12" />
+<NEXTACTIVITYELEMENT id="14" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request">
+<CUSTOM  request="AppC__activation" params=""  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event">
+<CUSTOM  event="AppC__reset__AppC__reset" params=""  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="5" name="wait event">
+<CUSTOM  event="AppC__answerToReset__AppC__answerToReset" params=""  />
+<NEXTACTIVITYELEMENT id="6" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="6" name="send event">
+<CUSTOM  event="AppC__pTS__AppC__pTS" params=""  />
+<NEXTACTIVITYELEMENT id="7" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="7" name="wait event">
+<CUSTOM  event="AppC__pTSConfirm__AppC__pTSConfirm" params=""  />
+<NEXTACTIVITYELEMENT id="16" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="8" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromDtoSC "  />
+<NEXTACTIVITYELEMENT id="9" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="9" name="send event">
+<CUSTOM  event="AppC__data_Ready__AppC__data_Ready" params="x,b"  />
+<NEXTACTIVITYELEMENT id="10" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="10" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLNotifiedEvent" value="" id="11" name="notified event">
+<CUSTOM  event="AppC__data_Ready_SC__AppC__data_Ready_SC" params="" variable="x"  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="12" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="13" name="read channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromSCtoD "  />
+<NEXTACTIVITYELEMENT id="15" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="14" name="wait event">
+<CUSTOM  event="AppC__data_Ready_SC__AppC__data_Ready_SC" params=""  />
+<NEXTACTIVITYELEMENT id="13" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="15" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="16" name="loop">
+<CUSTOM  init="i=0" condition="i&lt;nbOfComputedPackets" increment="i = i +1" isInfinite="false"  />
+<NEXTACTIVITYELEMENT id="1" />
+<NEXTACTIVITYELEMENT id="17" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="17" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ConnectorChoice.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ConnectorChoice.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ee58a0c10c43eb1f3247daecd47c6429aed5ae00
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ConnectorChoice.xml
@@ -0,0 +1,61 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="1" name="choice">
+<CUSTOM  guards="[ ];[ ];"  />
+<NEXTACTIVITYELEMENT id="8" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="2" name="choice">
+<CUSTOM  guards="[ true ];[ true ];"  />
+<NEXTACTIVITYELEMENT id="11" />
+<NEXTACTIVITYELEMENT id="12" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request">
+<CUSTOM  request="AppC__activation" params=""  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event">
+<CUSTOM  event="AppC__reset__AppC__reset" params=""  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="5" name="wait event">
+<CUSTOM  event="AppC__answerToReset__AppC__answerToReset" params=""  />
+<NEXTACTIVITYELEMENT id="6" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="6" name="send event">
+<CUSTOM  event="AppC__pTS__AppC__pTS" params=""  />
+<NEXTACTIVITYELEMENT id="7" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="7" name="wait event">
+<CUSTOM  event="AppC__pTSConfirm__AppC__pTSConfirm" params=""  />
+<NEXTACTIVITYELEMENT id="13" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="8" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromDtoSC "  />
+<NEXTACTIVITYELEMENT id="9" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="9" name="send event">
+<CUSTOM  event="AppC__data_Ready__AppC__data_Ready" params="x,b"  />
+<NEXTACTIVITYELEMENT id="10" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="10" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="11" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="12" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="13" name="loop">
+<CUSTOM  init="i=0" condition="i&lt;nbOfComputedPackets" increment="i = i +1" isInfinite="false"  />
+<NEXTACTIVITYELEMENT id="1" />
+<NEXTACTIVITYELEMENT id="14" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="14" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ForLoop.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ForLoop.xml
new file mode 100644
index 0000000000000000000000000000000000000000..22d98880ac49d77677d5823aa0c88555daffd3a0
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ForLoop.xml
@@ -0,0 +1,29 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="1" name="send request">
+<CUSTOM  request="AppC__activation" params=""  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event">
+<CUSTOM  event="AppC__reset__AppC__reset" params=""  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="3" name="wait event">
+<CUSTOM  event="AppC__answerToReset__AppC__answerToReset" params=""  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event">
+<CUSTOM  event="AppC__pTS__AppC__pTS" params=""  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="5" name="wait event">
+<CUSTOM  event="AppC__pTSConfirm__AppC__pTSConfirm" params=""  />
+<NEXTACTIVITYELEMENT id="6" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="6" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottom.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ec7277413c327edb8e816284446eaf15ae1b1eb4
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottom.xml
@@ -0,0 +1,561 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="35" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="1" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==10 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="120" />
+<NEXTACTIVITYELEMENT id="136" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="2" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==1 ];[ tcpctrl__state ==3 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="11" />
+<NEXTACTIVITYELEMENT id="12" />
+<NEXTACTIVITYELEMENT id="137" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="3" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==5 ];[ tcpctrl__state == 7 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="117" />
+<NEXTACTIVITYELEMENT id="123" />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="4" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==2 ];[ tcpctrl__state ==4 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="115" />
+<NEXTACTIVITYELEMENT id="114" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="5" name="choice">
+<CUSTOM  guards="[ ];[ ];"  />
+<NEXTACTIVITYELEMENT id="10" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="6" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="107" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="7" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="106" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="8" name="choice">
+<CUSTOM  guards="[ tcpctrl__state  == 4 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="7" />
+<NEXTACTIVITYELEMENT id="135" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="9" name="choice">
+<CUSTOM  guards="[ ];[ ];[ ];"  />
+<NEXTACTIVITYELEMENT id="108" />
+<NEXTACTIVITYELEMENT id="8" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="10" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="109" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="11" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="128" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="12" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="131" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="13" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==6 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="14" />
+<NEXTACTIVITYELEMENT id="104" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="14" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="99" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="15" name="choice">
+<CUSTOM  guards="[ tcpctrl__state == 1 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="66" />
+<NEXTACTIVITYELEMENT id="97" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="16" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="74" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="17" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="68" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="18" name="choice">
+<CUSTOM  guards="[ tcpctrl__state == 5];[ tcpctrl__state ==4 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="27" />
+<NEXTACTIVITYELEMENT id="17" />
+<NEXTACTIVITYELEMENT id="13" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="19" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="64" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="20" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==0 ];[ tcpctrl__state==0 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="62" />
+<NEXTACTIVITYELEMENT id="19" />
+<NEXTACTIVITYELEMENT id="98" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="21" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="88" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="22" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="85" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="23" name="choice">
+<CUSTOM  guards="[ ];[ ];[ ];"  />
+<NEXTACTIVITYELEMENT id="9" />
+<NEXTACTIVITYELEMENT id="20" />
+<NEXTACTIVITYELEMENT id="18" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="24" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="23" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="25" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="87" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="26" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="86" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="27" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="71" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="28" name="choice">
+<CUSTOM  guards="[ tcpctrl__state==0 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="32" />
+<NEXTACTIVITYELEMENT id="46" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="29" name="choice">
+<CUSTOM  guards="[ tcpctrl__a>0 ];[ tcpctrl__a==0 ];"  />
+<NEXTACTIVITYELEMENT id="48" />
+<NEXTACTIVITYELEMENT id="45" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="30" name="choice">
+<CUSTOM  guards="[ true ];[ true ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="25" />
+<NEXTACTIVITYELEMENT id="21" />
+<NEXTACTIVITYELEMENT id="15" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="31" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==4 ];[ tcpctrl__state == 1];[ else ];"  />
+<NEXTACTIVITYELEMENT id="50" />
+<NEXTACTIVITYELEMENT id="22" />
+<NEXTACTIVITYELEMENT id="47" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="32" name="action">
+<CUSTOM  action="tcpctrl__state =1" />
+<NEXTACTIVITYELEMENT id="33" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="33" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="34" name="read channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromPtoT "  />
+<NEXTACTIVITYELEMENT id="24" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="35" name="loop">
+<CUSTOM  init="i=0" condition="(tcpctrl__a==0)" increment="i = i" isInfinite="false"  />
+<NEXTACTIVITYELEMENT id="38" />
+<NEXTACTIVITYELEMENT id="37" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="36" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="37" name="action">
+<CUSTOM  action="tcpctrl__state=0" />
+<NEXTACTIVITYELEMENT id="36" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLNotifiedEvent" value="" id="38" name="notified event">
+<CUSTOM  event="AppC__abort__AppC__abort" params="" variable="tcpctrl__a"  />
+<NEXTACTIVITYELEMENT id="29" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="39" name="read channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="16" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="40" name="wait event">
+<CUSTOM  event="AppC__timeOut__AppC__timeOut" params=""  />
+<NEXTACTIVITYELEMENT id="39" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="41" name="wait event">
+<CUSTOM  event="AppC__receive__AppC__receive" params=""  />
+<NEXTACTIVITYELEMENT id="34" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="42" name="wait event">
+<CUSTOM  event="AppC__close__AppC__close" params=""  />
+<NEXTACTIVITYELEMENT id="30" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="43" name="wait event">
+<CUSTOM  event="AppC__send_TCP__AppC__send_TCP" params=""  />
+<NEXTACTIVITYELEMENT id="31" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="44" name="wait event">
+<CUSTOM  event="AppC__open__AppC__open" params=""  />
+<NEXTACTIVITYELEMENT id="28" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSelectEvt" value="" id="45" name="select">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="40" />
+<NEXTACTIVITYELEMENT id="41" />
+<NEXTACTIVITYELEMENT id="42" />
+<NEXTACTIVITYELEMENT id="43" />
+<NEXTACTIVITYELEMENT id="44" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="46" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="47" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="48" name="wait event">
+<CUSTOM  event="AppC__abort__AppC__abort" params=""  />
+<NEXTACTIVITYELEMENT id="49" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="49" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="50" name="read channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromAtoT "  />
+<NEXTACTIVITYELEMENT id="26" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="51" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="89" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="52" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="53" name="action">
+<CUSTOM  action="tcpctrl__state =5" />
+<NEXTACTIVITYELEMENT id="83" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="54" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="55" name="action">
+<CUSTOM  action="tcpctrl__state=3" />
+<NEXTACTIVITYELEMENT id="76" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="56" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="92" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="57" name="action">
+<CUSTOM  action="tcpctrl__state =10" />
+<NEXTACTIVITYELEMENT id="81" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="58" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="59" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="91" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="60" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="90" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="61" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="62" name="action">
+<CUSTOM  action="tcpctrl__state =1" />
+<NEXTACTIVITYELEMENT id="63" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="63" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="64" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="94" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="65" name="action">
+<CUSTOM  action="tcpctrl__state =3" />
+<NEXTACTIVITYELEMENT id="61" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="66" name="action">
+<CUSTOM  action="tcpctrl__state =0" />
+<NEXTACTIVITYELEMENT id="67" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="67" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="68" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="95" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="69" name="action">
+<CUSTOM  action="tcpctrl__state =9" />
+<NEXTACTIVITYELEMENT id="70" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="70" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="71" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="96" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="72" name="action">
+<CUSTOM  action="tcpctrl__state =7" />
+<NEXTACTIVITYELEMENT id="73" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="73" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="74" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="93" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="75" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="76" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="77" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="77" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="78" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="78" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="79" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="80" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="80" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="52" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="81" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="82" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="82" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="58" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="83" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="84" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="84" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="54" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="85" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="56" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="86" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="51" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="87" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="59" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="88" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="60" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="89" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="79" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="90" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="57" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="91" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="53" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="92" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="55" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="93" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="75" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="94" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="65" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="95" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="69" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="96" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="72" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="97" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="98" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="99" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="100" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="100" name="action">
+<CUSTOM  action="tcpctrl__state =8" />
+<NEXTACTIVITYELEMENT id="103" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="101" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="102" name="action">
+<CUSTOM  action="tcpctrl__state =0" />
+<NEXTACTIVITYELEMENT id="101" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="103" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="102" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="104" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="105" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="106" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoA "  />
+<NEXTACTIVITYELEMENT id="138" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="107" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="111" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="108" name="send event">
+<CUSTOM  event="AppC__stop__AppC__stop" params=""  />
+<NEXTACTIVITYELEMENT id="139" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="109" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="112" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="110" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="111" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="105" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="112" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="113" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="113" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="110" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="114" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="115" name="action">
+<CUSTOM  action="tcpctrl__state =4" />
+<NEXTACTIVITYELEMENT id="116" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="116" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="117" name="action">
+<CUSTOM  action="tcpctrl__state =6" />
+<NEXTACTIVITYELEMENT id="118" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="118" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="119" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="120" name="action">
+<CUSTOM  action="tcpctrl__state =0" />
+<NEXTACTIVITYELEMENT id="121" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="121" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="122" name="action">
+<CUSTOM  action="tcpctrl__state =0" />
+<NEXTACTIVITYELEMENT id="119" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="123" name="action">
+<CUSTOM  action="tcpctrl__state =8" />
+<NEXTACTIVITYELEMENT id="122" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="124" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="129" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="125" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="126" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="127" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="127" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="130" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="128" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="124" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="129" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="126" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="130" name="action">
+<CUSTOM  action="tcpctrl__state =2" />
+<NEXTACTIVITYELEMENT id="125" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="131" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="134" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="132" name="action">
+<CUSTOM  action="tcpctrl__state =2" />
+<NEXTACTIVITYELEMENT id="133" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="133" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="134" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="132" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="135" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="136" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="137" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="138" name="send event">
+<CUSTOM  event="AppC__receive_Application__AppC__receive_Application" params=""  />
+<NEXTACTIVITYELEMENT id="6" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="139" name="read channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottomRight.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottomRight.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d0e74ad7a1a44bf5103ccc974523e4a5b750a2dd
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottomRight.xml
@@ -0,0 +1,561 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="35" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="1" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==10 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="120" />
+<NEXTACTIVITYELEMENT id="136" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="2" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==1 ];[ tcpctrl__state ==3 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="11" />
+<NEXTACTIVITYELEMENT id="12" />
+<NEXTACTIVITYELEMENT id="137" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="3" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==5 ];[ tcpctrl__state == 7 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="117" />
+<NEXTACTIVITYELEMENT id="123" />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="4" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==2 ];[ tcpctrl__state ==4 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="115" />
+<NEXTACTIVITYELEMENT id="114" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="5" name="choice">
+<CUSTOM  guards="[ ];[ ];"  />
+<NEXTACTIVITYELEMENT id="10" />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="6" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="107" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="7" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="106" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="8" name="choice">
+<CUSTOM  guards="[ tcpctrl__state  == 4 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="7" />
+<NEXTACTIVITYELEMENT id="135" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="9" name="choice">
+<CUSTOM  guards="[ ];[ ];[ ];"  />
+<NEXTACTIVITYELEMENT id="108" />
+<NEXTACTIVITYELEMENT id="8" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="10" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="109" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="11" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="128" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="12" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="131" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="13" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==6 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="14" />
+<NEXTACTIVITYELEMENT id="104" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="14" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="99" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="15" name="choice">
+<CUSTOM  guards="[ tcpctrl__state == 1 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="66" />
+<NEXTACTIVITYELEMENT id="97" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="16" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="74" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="17" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="68" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="18" name="choice">
+<CUSTOM  guards="[ tcpctrl__state == 5];[ tcpctrl__state ==4 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="27" />
+<NEXTACTIVITYELEMENT id="17" />
+<NEXTACTIVITYELEMENT id="13" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="19" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="64" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="20" name="choice">
+<CUSTOM  guards="[ tcpctrl__state ==0 ];[ tcpctrl__state==0 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="62" />
+<NEXTACTIVITYELEMENT id="19" />
+<NEXTACTIVITYELEMENT id="98" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="21" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="88" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="22" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="85" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="23" name="choice">
+<CUSTOM  guards="[ ];[ ];[ ];"  />
+<NEXTACTIVITYELEMENT id="9" />
+<NEXTACTIVITYELEMENT id="20" />
+<NEXTACTIVITYELEMENT id="18" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="24" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="23" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="25" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="87" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="26" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="86" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="27" name="execi">
+<CUSTOM  action="b" />
+<NEXTACTIVITYELEMENT id="71" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="28" name="choice">
+<CUSTOM  guards="[ tcpctrl__state==0 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="32" />
+<NEXTACTIVITYELEMENT id="46" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="29" name="choice">
+<CUSTOM  guards="[ tcpctrl__a>0 ];[ tcpctrl__a==0 ];"  />
+<NEXTACTIVITYELEMENT id="48" />
+<NEXTACTIVITYELEMENT id="45" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="30" name="choice">
+<CUSTOM  guards="[ (tcpctrl__state ==2) or (tcpctrl__state ==4) ];[ tcpctrl__state ==9 ];[ else ];"  />
+<NEXTACTIVITYELEMENT id="25" />
+<NEXTACTIVITYELEMENT id="21" />
+<NEXTACTIVITYELEMENT id="15" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="31" name="choice">
+<CUSTOM  guards="[ true ];[ true ];[ true ];"  />
+<NEXTACTIVITYELEMENT id="50" />
+<NEXTACTIVITYELEMENT id="22" />
+<NEXTACTIVITYELEMENT id="47" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="32" name="action">
+<CUSTOM  action="tcpctrl__state =1" />
+<NEXTACTIVITYELEMENT id="33" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="33" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="34" name="read channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromPtoT "  />
+<NEXTACTIVITYELEMENT id="24" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="35" name="loop">
+<CUSTOM  init="i=0" condition="(tcpctrl__a==0)" increment="i = i" isInfinite="false"  />
+<NEXTACTIVITYELEMENT id="38" />
+<NEXTACTIVITYELEMENT id="37" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="36" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="37" name="action">
+<CUSTOM  action="tcpctrl__state=0" />
+<NEXTACTIVITYELEMENT id="36" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLNotifiedEvent" value="" id="38" name="notified event">
+<CUSTOM  event="AppC__abort__AppC__abort" params="" variable="tcpctrl__a"  />
+<NEXTACTIVITYELEMENT id="29" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="39" name="read channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="16" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="40" name="wait event">
+<CUSTOM  event="AppC__timeOut__AppC__timeOut" params=""  />
+<NEXTACTIVITYELEMENT id="39" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="41" name="wait event">
+<CUSTOM  event="AppC__receive__AppC__receive" params=""  />
+<NEXTACTIVITYELEMENT id="34" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="42" name="wait event">
+<CUSTOM  event="AppC__close__AppC__close" params=""  />
+<NEXTACTIVITYELEMENT id="30" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="43" name="wait event">
+<CUSTOM  event="AppC__send_TCP__AppC__send_TCP" params=""  />
+<NEXTACTIVITYELEMENT id="31" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="44" name="wait event">
+<CUSTOM  event="AppC__open__AppC__open" params=""  />
+<NEXTACTIVITYELEMENT id="28" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSelectEvt" value="" id="45" name="select">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="40" />
+<NEXTACTIVITYELEMENT id="41" />
+<NEXTACTIVITYELEMENT id="42" />
+<NEXTACTIVITYELEMENT id="43" />
+<NEXTACTIVITYELEMENT id="44" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="46" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="47" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="48" name="wait event">
+<CUSTOM  event="AppC__abort__AppC__abort" params=""  />
+<NEXTACTIVITYELEMENT id="49" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="49" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="50" name="read channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromAtoT "  />
+<NEXTACTIVITYELEMENT id="26" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="51" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="89" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="52" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="53" name="action">
+<CUSTOM  action="tcpctrl__state =5" />
+<NEXTACTIVITYELEMENT id="83" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="54" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="55" name="action">
+<CUSTOM  action="tcpctrl__state=3" />
+<NEXTACTIVITYELEMENT id="76" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="56" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="92" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="57" name="action">
+<CUSTOM  action="tcpctrl__state =10" />
+<NEXTACTIVITYELEMENT id="81" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="58" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="59" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="91" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="60" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="90" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="61" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="62" name="action">
+<CUSTOM  action="tcpctrl__state =1" />
+<NEXTACTIVITYELEMENT id="63" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="63" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="64" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="94" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="65" name="action">
+<CUSTOM  action="tcpctrl__state =3" />
+<NEXTACTIVITYELEMENT id="61" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="66" name="action">
+<CUSTOM  action="tcpctrl__state =0" />
+<NEXTACTIVITYELEMENT id="67" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="67" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="68" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="95" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="69" name="action">
+<CUSTOM  action="tcpctrl__state =9" />
+<NEXTACTIVITYELEMENT id="70" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="70" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="71" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="96" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="72" name="action">
+<CUSTOM  action="tcpctrl__state =7" />
+<NEXTACTIVITYELEMENT id="73" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="73" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="74" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="93" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="75" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="76" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="77" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="77" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="78" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="78" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="79" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="80" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="80" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="52" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="81" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="82" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="82" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="58" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="83" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="84" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="84" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="54" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="85" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="56" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="86" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="51" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="87" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="59" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="88" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="60" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="89" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="79" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="90" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="57" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="91" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="53" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="92" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="55" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="93" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="75" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="94" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="65" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="95" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="69" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="96" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="72" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="97" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="98" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="99" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="100" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="100" name="action">
+<CUSTOM  action="tcpctrl__state =8" />
+<NEXTACTIVITYELEMENT id="103" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="101" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="102" name="action">
+<CUSTOM  action="tcpctrl__state =0" />
+<NEXTACTIVITYELEMENT id="101" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="103" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="102" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="104" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="105" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="106" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoA "  />
+<NEXTACTIVITYELEMENT id="138" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="107" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="111" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="108" name="send event">
+<CUSTOM  event="AppC__stop__AppC__stop" params=""  />
+<NEXTACTIVITYELEMENT id="139" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="109" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="112" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="110" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="111" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="105" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="112" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="113" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="113" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="110" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="114" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="115" name="action">
+<CUSTOM  action="tcpctrl__state =4" />
+<NEXTACTIVITYELEMENT id="116" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="116" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="117" name="action">
+<CUSTOM  action="tcpctrl__state =6" />
+<NEXTACTIVITYELEMENT id="118" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="118" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="119" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="120" name="action">
+<CUSTOM  action="tcpctrl__state =0" />
+<NEXTACTIVITYELEMENT id="121" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="121" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="122" name="action">
+<CUSTOM  action="tcpctrl__state =0" />
+<NEXTACTIVITYELEMENT id="119" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="123" name="action">
+<CUSTOM  action="tcpctrl__state =8" />
+<NEXTACTIVITYELEMENT id="122" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="124" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="129" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="125" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="126" name="send request">
+<CUSTOM  request="AppC__req_Timer" params=""  />
+<NEXTACTIVITYELEMENT id="127" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="127" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="130" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="128" name="action">
+<CUSTOM  action="seqNum=seqNum+wind" />
+<NEXTACTIVITYELEMENT id="124" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="129" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="126" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="130" name="action">
+<CUSTOM  action="tcpctrl__state =2" />
+<NEXTACTIVITYELEMENT id="125" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="131" name="write channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__fromTtoP "  />
+<NEXTACTIVITYELEMENT id="134" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="132" name="action">
+<CUSTOM  action="tcpctrl__state =2" />
+<NEXTACTIVITYELEMENT id="133" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="133" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="134" name="send event">
+<CUSTOM  event="AppC__send__AppC__send" params=""  />
+<NEXTACTIVITYELEMENT id="132" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="135" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="136" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="137" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="138" name="send event">
+<CUSTOM  event="AppC__receive_Application__AppC__receive_Application" params=""  />
+<NEXTACTIVITYELEMENT id="6" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="139" name="read channel">
+<CUSTOM  nbOfSamples="1"  channels="AppC__temp "  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ForLoopAfterStart.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ForLoopAfterStart.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7479397f0f2202943bfecfca5fb690378645f589
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ForLoopAfterStart.xml
@@ -0,0 +1,13 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="2" name="action">
+<CUSTOM  action="tcpctrl__state=0" />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Chip2Octet_Disable_ExecC.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Chip2Octet_Disable_ExecC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..706ae6f37486134961ceb73781f29e69ea8b0460
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Chip2Octet_Disable_ExecC.xml
@@ -0,0 +1,21 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="1" name="read channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in "  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in "  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ExecI.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ExecI.xml
new file mode 100644
index 0000000000000000000000000000000000000000..84b8bcd6405104de27303c3ae18a0e704b089be9
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ExecI.xml
@@ -0,0 +1,17 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="2" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="3" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ReadRequestArg.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ReadRequestArg.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a9555fc44af24ca8919929de5093707ad2f48cc1
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ReadRequestArg.xml
@@ -0,0 +1,17 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in "  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_WriteChannel.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_WriteChannel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6d3ff961e140db7b6633a619536b6f03392732aa
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_WriteChannel.xml
@@ -0,0 +1,17 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="3" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Symbol2ChipSeq_Disable_ReadChannel.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Symbol2ChipSeq_Disable_ReadChannel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..756b85ad30cd16cad7e5c82f6f7b75d1db25fbe0
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Symbol2ChipSeq_Disable_ReadChannel.xml
@@ -0,0 +1,21 @@
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc">
+<CUSTOM  action="size" />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel">
+<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in "  />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args">
+<CUSTOM  action="size = arg1__req" />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
diff --git a/ttool/src/test/resources/ui/diagram2tml/input/SmartCardProtocol.xml b/ttool/src/test/resources/ui/diagram2tml/input/SmartCardProtocol.xml
new file mode 100644
index 0000000000000000000000000000000000000000..745f29ca72e6e06344d46fa433e4bbfc42836353
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/input/SmartCardProtocol.xml
@@ -0,0 +1,6916 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<TURTLEGMODELING version="1.0beta">
+
+<Modeling type="TML Component Design" nameTab="AppC" >
+<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="0" maxX="1724" minY="0" maxY="916" channels="true" events="true" requests="true" zoom="1.0000000000000018" >
+<CONNECTOR type="126" id="1" >
+<cdparam x="522" y="390" />
+<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="522" y="390" id="60" />
+<P2  x="468" y="336" id="39" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="2" >
+<cdparam x="409" y="124" />
+<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="402" y="84" id="37" />
+<P2  x="593" y="85" id="186" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="3" >
+<cdparam x="652" y="444" />
+<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="816" y="554" id="89" />
+<P2  x="971" y="502" id="152" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4" >
+<cdparam x="652" y="418" />
+<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="816" y="522" id="87" />
+<P2  x="922" y="482" id="154" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="5" >
+<cdparam x="602" y="327" />
+<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="752" y="408" id="79" />
+<P2  x="831" y="376" id="103" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="6" >
+<cdparam x="685" y="310" />
+<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="857" y="376" id="107" />
+<P2  x="922" y="368" id="144" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="7" >
+<cdparam x="652" y="395" />
+<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="816" y="493" id="83" />
+<P2  x="922" y="459" id="146" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="8" >
+<cdparam x="652" y="369" />
+<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="816" y="461" id="85" />
+<P2  x="922" y="432" id="148" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="9" >
+<cdparam x="737" y="314" />
+<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="922" y="403" id="150" />
+<P2  x="816" y="432" id="81" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="10" >
+<cdparam x="735" y="260" />
+<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="919" y="336" id="142" />
+<P2  x="749" y="284" id="198" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="11" >
+<cdparam x="641" y="230" />
+<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="749" y="248" id="200" />
+<P2  x="919" y="297" id="140" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="12" >
+<cdparam x="641" y="195" />
+<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="749" y="204" id="202" />
+<P2  x="919" y="254" id="138" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="13" >
+<cdparam x="740" y="353" />
+<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="831" y="376" id="102" />
+<P2  x="749" y="315" id="204" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="14" >
+<cdparam x="460" y="270" />
+<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="522" y="304" id="194" />
+<P2  x="468" y="304" id="45" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="15" >
+<cdparam x="387" y="129" />
+<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="466" y="127" id="49" />
+<P2  x="525" y="127" id="206" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="16" >
+<cdparam x="389" y="200" />
+<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="468" y="216" id="43" />
+<P2  x="522" y="216" id="192" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="17" >
+<cdparam x="460" y="236" />
+<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="522" y="261" id="190" />
+<P2  x="468" y="261" id="41" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="18" >
+<cdparam x="460" y="296" />
+<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="536" y="349" id="188" />
+<P2  x="548" y="390" id="65" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="19" >
+<cdparam x="389" y="163" />
+<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="468" y="170" id="47" />
+<P2  x="522" y="170" id="196" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="20" >
+<cdparam x="967" y="190" />
+<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="Connector between ports" />
+<P1  x="919" y="204" id="136" />
+<P2  x="749" y="125" id="184" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="21" >
+<cdparam x="1028" y="535" />
+<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="Connector between ports" />
+<P1  x="630" y="347" id="208" />
+<P2  x="671" y="408" id="91" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="22" >
+<cdparam x="1304" y="321" />
+<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="Connector between ports" />
+<P1  x="1224" y="379" id="121" />
+<P2  x="1180" y="386" id="156" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="23" >
+<cdparam x="1168" y="455" />
+<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="Connector between ports" />
+<P1  x="1180" y="421" id="158" />
+<P2  x="1224" y="414" id="123" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="26" >
+<cdparam x="1037" y="180" />
+<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="Connector between ports" />
+<P1  x="1180" y="214" id="160" />
+<P2  x="1180" y="282" id="162" />
+<Point x="1224" y="226" />
+<Point x="1224" y="266" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="24" >
+<father id="26" num="0" />
+<cdparam x="1224" y="226" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="25" >
+<father id="26" num="1" />
+<cdparam x="1224" y="266" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="126" id="27" >
+<cdparam x="873" y="361" />
+<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="Connector between ports" />
+<P1  x="1180" y="461" id="164" />
+<P2  x="1224" y="442" id="125" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1205" id="36" >
+<cdparam x="1152" y="505" />
+<sizeparam width="206" height="105" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1725" minY="0" maxY="917" />
+<infoparam name="Record component" value="TCP_CTRL" />
+<TGConnectingPoint num="0" id="28" />
+<TGConnectingPoint num="1" id="29" />
+<TGConnectingPoint num="2" id="30" />
+<TGConnectingPoint num="3" id="31" />
+<TGConnectingPoint num="4" id="32" />
+<TGConnectingPoint num="5" id="33" />
+<TGConnectingPoint num="6" id="34" />
+<TGConnectingPoint num="7" id="35" />
+<extraparam>
+<Attribute access="2" id="a" value="" type="0" typeOther="" />
+<Attribute access="2" id="state" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1202" id="59" >
+<cdparam x="164" y="97" />
+<sizeparam width="291" height="277" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1725" minY="0" maxY="917" />
+<infoparam name="TGComponent" value="InterfaceDevice" />
+<TGConnectingPoint num="0" id="51" />
+<TGConnectingPoint num="1" id="52" />
+<TGConnectingPoint num="2" id="53" />
+<TGConnectingPoint num="3" id="54" />
+<TGConnectingPoint num="4" id="55" />
+<TGConnectingPoint num="5" id="56" />
+<TGConnectingPoint num="6" id="57" />
+<TGConnectingPoint num="7" id="58" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="resetType" value="0" type="0" typeOther="" />
+<Attribute access="2" id="x" value="0" type="0" typeOther="" />
+<Attribute access="2" id="i" value="0" type="0" typeOther="" />
+<Attribute access="2" id="nbOfComputedPackets" value="1" type="0" typeOther="" />
+<Attribute access="2" id="b" value="" type="4" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1203" id="38" >
+<father id="59" num="0" />
+<cdparam x="389" y="84" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" />
+<infoparam name="TGComponent" value="Event reset, pTS" />
+<TGConnectingPoint num="0" id="37" />
+<extraparam>
+<Prop commName="reset, pTS" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="40" >
+<father id="59" num="1" />
+<cdparam x="442" y="323" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" />
+<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
+<TGConnectingPoint num="0" id="39" />
+<extraparam>
+<Prop commName="answerToReset, pTSConfirm" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="42" >
+<father id="59" num="2" />
+<cdparam x="442" y="248" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" />
+<infoparam name="TGComponent" value="Channel fromSCtoD" />
+<TGConnectingPoint num="0" id="41" />
+<extraparam>
+<Prop commName="fromSCtoD" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="44" >
+<father id="59" num="3" />
+<cdparam x="442" y="203" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" />
+<infoparam name="TGComponent" value="Channel fromDtoSC" />
+<TGConnectingPoint num="0" id="43" />
+<extraparam>
+<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="46" >
+<father id="59" num="4" />
+<cdparam x="442" y="291" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" />
+<infoparam name="TGComponent" value="Event data_Ready_SC" />
+<TGConnectingPoint num="0" id="45" />
+<extraparam>
+<Prop commName="data_Ready_SC" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="48" >
+<father id="59" num="5" />
+<cdparam x="442" y="157" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" />
+<infoparam name="TGComponent" value="Event data_Ready" />
+<TGConnectingPoint num="0" id="47" />
+<extraparam>
+<Prop commName="data_Ready" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="2" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="50" >
+<father id="59" num="6" />
+<cdparam x="445" y="117" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="281" minY="-10" maxY="267" />
+<infoparam name="TGComponent" value="Request activation" />
+<TGConnectingPoint num="0" id="49" />
+<extraparam>
+<Prop commName="activation" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1200" id="227" >
+<cdparam x="535" y="94" />
+<sizeparam width="936" height="530" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1725" minY="0" maxY="917" />
+<infoparam name="TGComponent" value="SmartCard" />
+<TGConnectingPoint num="0" id="219" />
+<TGConnectingPoint num="1" id="220" />
+<TGConnectingPoint num="2" id="221" />
+<TGConnectingPoint num="3" id="222" />
+<TGConnectingPoint num="4" id="223" />
+<TGConnectingPoint num="5" id="224" />
+<TGConnectingPoint num="6" id="225" />
+<TGConnectingPoint num="7" id="226" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1201" id="78" >
+<father id="227" num="0" />
+<cdparam x="522" y="377" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="923" minY="-13" maxY="517" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="60" />
+<TGConnectingPoint num="1" id="61" />
+<TGConnectingPoint num="2" id="62" />
+<TGConnectingPoint num="3" id="63" />
+<TGConnectingPoint num="4" id="64" />
+<TGConnectingPoint num="5" id="65" />
+<TGConnectingPoint num="6" id="66" />
+<TGConnectingPoint num="7" id="67" />
+<TGConnectingPoint num="8" id="68" />
+<TGConnectingPoint num="9" id="69" />
+<TGConnectingPoint num="10" id="70" />
+<TGConnectingPoint num="11" id="71" />
+<TGConnectingPoint num="12" id="72" />
+<TGConnectingPoint num="13" id="73" />
+<TGConnectingPoint num="14" id="74" />
+<TGConnectingPoint num="15" id="75" />
+<TGConnectingPoint num="16" id="76" />
+<TGConnectingPoint num="17" id="77" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="101" >
+<father id="227" num="1" />
+<cdparam x="565" y="418" />
+<sizeparam width="240" height="146" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="696" minY="0" maxY="384" />
+<infoparam name="TGComponent" value="Application" />
+<TGConnectingPoint num="0" id="93" />
+<TGConnectingPoint num="1" id="94" />
+<TGConnectingPoint num="2" id="95" />
+<TGConnectingPoint num="3" id="96" />
+<TGConnectingPoint num="4" id="97" />
+<TGConnectingPoint num="5" id="98" />
+<TGConnectingPoint num="6" id="99" />
+<TGConnectingPoint num="7" id="100" />
+<extraparam>
+<Data isAttacker="No" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="80" >
+<father id="101" num="0" />
+<cdparam x="742" y="408" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" />
+<infoparam name="TGComponent" value="Request start_TCP_IP" />
+<TGConnectingPoint num="0" id="79" />
+<extraparam>
+<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="82" >
+<father id="101" num="1" />
+<cdparam x="795" y="422" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" />
+<infoparam name="TGComponent" value="Channel fromTtoA" />
+<TGConnectingPoint num="0" id="81" />
+<extraparam>
+<Prop commName="fromTtoA" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="84" >
+<father id="101" num="2" />
+<cdparam x="795" y="483" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" />
+<infoparam name="TGComponent" value="Event send_TCP" />
+<TGConnectingPoint num="0" id="83" />
+<extraparam>
+<Prop commName="send_TCP" commType="1" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="86" >
+<father id="101" num="3" />
+<cdparam x="795" y="451" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" />
+<infoparam name="TGComponent" value="Event open, abort, close" />
+<TGConnectingPoint num="0" id="85" />
+<extraparam>
+<Prop commName="open, abort, close" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="88" >
+<father id="101" num="4" />
+<cdparam x="795" y="512" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" />
+<infoparam name="TGComponent" value="Event receive_Application" />
+<TGConnectingPoint num="0" id="87" />
+<extraparam>
+<Prop commName="receive_Application" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="90" >
+<father id="101" num="5" />
+<cdparam x="795" y="544" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" />
+<infoparam name="TGComponent" value="Channel fromAtoT" />
+<TGConnectingPoint num="0" id="89" />
+<extraparam>
+<Prop commName="fromAtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="92" >
+<father id="101" num="6" />
+<cdparam x="661" y="408" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" />
+<infoparam name="TGComponent" value="Request start_Application" />
+<TGConnectingPoint num="0" id="91" />
+<extraparam>
+<Prop commName="start_Application" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1200" id="183" >
+<father id="227" num="2" />
+<cdparam x="844" y="134" />
+<sizeparam width="570" height="486" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="366" minY="0" maxY="44" />
+<infoparam name="TGComponent" value="TCPIP Entities" />
+<TGConnectingPoint num="0" id="175" />
+<TGConnectingPoint num="1" id="176" />
+<TGConnectingPoint num="2" id="177" />
+<TGConnectingPoint num="3" id="178" />
+<TGConnectingPoint num="4" id="179" />
+<TGConnectingPoint num="5" id="180" />
+<TGConnectingPoint num="6" id="181" />
+<TGConnectingPoint num="7" id="182" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="120" >
+<father id="183" num="0" />
+<cdparam x="831" y="363" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="557" minY="-13" maxY="473" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="102" />
+<TGConnectingPoint num="1" id="103" />
+<TGConnectingPoint num="2" id="104" />
+<TGConnectingPoint num="3" id="105" />
+<TGConnectingPoint num="4" id="106" />
+<TGConnectingPoint num="5" id="107" />
+<TGConnectingPoint num="6" id="108" />
+<TGConnectingPoint num="7" id="109" />
+<TGConnectingPoint num="8" id="110" />
+<TGConnectingPoint num="9" id="111" />
+<TGConnectingPoint num="10" id="112" />
+<TGConnectingPoint num="11" id="113" />
+<TGConnectingPoint num="12" id="114" />
+<TGConnectingPoint num="13" id="115" />
+<TGConnectingPoint num="14" id="116" />
+<TGConnectingPoint num="15" id="117" />
+<TGConnectingPoint num="16" id="118" />
+<TGConnectingPoint num="17" id="119" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="135" >
+<father id="183" num="1" />
+<cdparam x="1234" y="329" />
+<sizeparam width="141" height="142" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="429" minY="0" maxY="344" />
+<infoparam name="TGComponent" value="Timer" />
+<TGConnectingPoint num="0" id="127" />
+<TGConnectingPoint num="1" id="128" />
+<TGConnectingPoint num="2" id="129" />
+<TGConnectingPoint num="3" id="130" />
+<TGConnectingPoint num="4" id="131" />
+<TGConnectingPoint num="5" id="132" />
+<TGConnectingPoint num="6" id="133" />
+<TGConnectingPoint num="7" id="134" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="x" value="0" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="122" >
+<father id="135" num="0" />
+<cdparam x="1224" y="369" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="131" minY="-10" maxY="132" />
+<infoparam name="TGComponent" value="Event timeOut" />
+<TGConnectingPoint num="0" id="121" />
+<extraparam>
+<Prop commName="timeOut" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="124" >
+<father id="135" num="1" />
+<cdparam x="1224" y="404" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="131" minY="-10" maxY="132" />
+<infoparam name="TGComponent" value="Request req_Timer" />
+<TGConnectingPoint num="0" id="123" />
+<extraparam>
+<Prop commName="req_Timer" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="126" >
+<father id="135" num="2" />
+<cdparam x="1224" y="432" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="131" minY="-10" maxY="132" />
+<infoparam name="TGComponent" value="Event stop" />
+<TGConnectingPoint num="0" id="125" />
+<extraparam>
+<Prop commName="stop" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="174" >
+<father id="183" num="2" />
+<cdparam x="932" y="173" />
+<sizeparam width="237" height="318" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="333" minY="0" maxY="168" />
+<infoparam name="TGComponent" value="TCPIP" />
+<TGConnectingPoint num="0" id="166" />
+<TGConnectingPoint num="1" id="167" />
+<TGConnectingPoint num="2" id="168" />
+<TGConnectingPoint num="3" id="169" />
+<TGConnectingPoint num="4" id="170" />
+<TGConnectingPoint num="5" id="171" />
+<TGConnectingPoint num="6" id="172" />
+<TGConnectingPoint num="7" id="173" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="wind" value="64" type="0" typeOther="" />
+<Attribute access="2" id="seqNum" value="0" type="0" typeOther="" />
+<Attribute access="2" id="i" value="" type="0" typeOther="" />
+<Attribute access="2" id="j" value="" type="0" typeOther="" />
+<Attribute access="2" id="a" value="0" type="0" typeOther="" />
+<Attribute access="2" id="b" value="0" type="0" typeOther="" />
+<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="137" >
+<father id="174" num="0" />
+<cdparam x="919" y="191" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="224" minY="-13" maxY="305" />
+<infoparam name="TGComponent" value="Event send" />
+<TGConnectingPoint num="0" id="136" />
+<extraparam>
+<Prop commName="send" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="139" >
+<father id="174" num="1" />
+<cdparam x="919" y="241" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="224" minY="-13" maxY="305" />
+<infoparam name="TGComponent" value="Event receive" />
+<TGConnectingPoint num="0" id="138" />
+<extraparam>
+<Prop commName="receive" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="141" >
+<father id="174" num="2" />
+<cdparam x="919" y="284" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="224" minY="-13" maxY="305" />
+<infoparam name="TGComponent" value="Channel fromPtoT" />
+<TGConnectingPoint num="0" id="140" />
+<extraparam>
+<Prop commName="fromPtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="143" >
+<father id="174" num="3" />
+<cdparam x="919" y="323" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="224" minY="-13" maxY="305" />
+<infoparam name="TGComponent" value="Channel fromTtoP" />
+<TGConnectingPoint num="0" id="142" />
+<extraparam>
+<Prop commName="fromTtoP" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="145" >
+<father id="174" num="4" />
+<cdparam x="922" y="358" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Request start_TCP_IP" />
+<TGConnectingPoint num="0" id="144" />
+<extraparam>
+<Prop commName="start_TCP_IP" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="147" >
+<father id="174" num="5" />
+<cdparam x="922" y="449" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Event send_TCP" />
+<TGConnectingPoint num="0" id="146" />
+<extraparam>
+<Prop commName="send_TCP" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="149" >
+<father id="174" num="6" />
+<cdparam x="922" y="422" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Event open, abort, close" />
+<TGConnectingPoint num="0" id="148" />
+<extraparam>
+<Prop commName="open, abort, close" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="151" >
+<father id="174" num="7" />
+<cdparam x="922" y="393" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Channel fromTtoA" />
+<TGConnectingPoint num="0" id="150" />
+<extraparam>
+<Prop commName="fromTtoA" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="153" >
+<father id="174" num="8" />
+<cdparam x="961" y="481" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Channel fromAtoT" />
+<TGConnectingPoint num="0" id="152" />
+<extraparam>
+<Prop commName="fromAtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="155" >
+<father id="174" num="9" />
+<cdparam x="922" y="472" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Event receive_Application" />
+<TGConnectingPoint num="0" id="154" />
+<extraparam>
+<Prop commName="receive_Application" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="157" >
+<father id="174" num="10" />
+<cdparam x="1159" y="376" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Event timeOut" />
+<TGConnectingPoint num="0" id="156" />
+<extraparam>
+<Prop commName="timeOut" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="159" >
+<father id="174" num="11" />
+<cdparam x="1159" y="411" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Request req_Timer" />
+<TGConnectingPoint num="0" id="158" />
+<extraparam>
+<Prop commName="req_Timer" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="161" >
+<father id="174" num="12" />
+<cdparam x="1159" y="204" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Channel temp" />
+<TGConnectingPoint num="0" id="160" />
+<extraparam>
+<Prop commName="temp" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="163" >
+<father id="174" num="13" />
+<cdparam x="1159" y="272" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Channel temp" />
+<TGConnectingPoint num="0" id="162" />
+<extraparam>
+<Prop commName="temp" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="165" >
+<father id="174" num="14" />
+<cdparam x="1159" y="451" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" />
+<infoparam name="TGComponent" value="Event stop" />
+<TGConnectingPoint num="0" id="164" />
+<extraparam>
+<Prop commName="stop" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="218" >
+<father id="227" num="3" />
+<cdparam x="535" y="98" />
+<sizeparam width="201" height="238" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="735" minY="0" maxY="292" />
+<infoparam name="TGComponent" value="SmartCard" />
+<TGConnectingPoint num="0" id="210" />
+<TGConnectingPoint num="1" id="211" />
+<TGConnectingPoint num="2" id="212" />
+<TGConnectingPoint num="3" id="213" />
+<TGConnectingPoint num="4" id="214" />
+<TGConnectingPoint num="5" id="215" />
+<TGConnectingPoint num="6" id="216" />
+<TGConnectingPoint num="7" id="217" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="resetType" value="0" type="0" typeOther="" />
+<Attribute access="2" id="a" value="0" type="0" typeOther="" />
+<Attribute access="2" id="b" value="" type="4" typeOther="" />
+<Attribute access="2" id="i" value="0" type="0" typeOther="" />
+<Attribute access="2" id="j" value="0" type="0" typeOther="" />
+<Attribute access="2" id="x" value="0" type="0" typeOther="" />
+<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
+<Attribute access="2" id="t" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="185" >
+<father id="218" num="0" />
+<cdparam x="723" y="112" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Event send" />
+<TGConnectingPoint num="0" id="184" />
+<extraparam>
+<Prop commName="send" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="187" >
+<father id="218" num="1" />
+<cdparam x="580" y="85" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Event reset, pTS" />
+<TGConnectingPoint num="0" id="186" />
+<extraparam>
+<Prop commName="reset, pTS" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="189" >
+<father id="218" num="2" />
+<cdparam x="523" y="323" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
+<TGConnectingPoint num="0" id="188" />
+<extraparam>
+<Prop commName="answerToReset, pTSConfirm" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="191" >
+<father id="218" num="3" />
+<cdparam x="522" y="248" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Channel fromSCtoD" />
+<TGConnectingPoint num="0" id="190" />
+<extraparam>
+<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="193" >
+<father id="218" num="4" />
+<cdparam x="522" y="203" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Channel fromDtoSC" />
+<TGConnectingPoint num="0" id="192" />
+<extraparam>
+<Prop commName="fromDtoSC" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="195" >
+<father id="218" num="5" />
+<cdparam x="522" y="291" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Event data_Ready_SC" />
+<TGConnectingPoint num="0" id="194" />
+<extraparam>
+<Prop commName="data_Ready_SC" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="197" >
+<father id="218" num="6" />
+<cdparam x="522" y="157" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Event data_Ready" />
+<TGConnectingPoint num="0" id="196" />
+<extraparam>
+<Prop commName="data_Ready" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="2" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="199" >
+<father id="218" num="7" />
+<cdparam x="723" y="271" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Channel fromTtoP" />
+<TGConnectingPoint num="0" id="198" />
+<extraparam>
+<Prop commName="fromTtoP" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="201" >
+<father id="218" num="8" />
+<cdparam x="723" y="235" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Channel fromPtoT" />
+<TGConnectingPoint num="0" id="200" />
+<extraparam>
+<Prop commName="fromPtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="203" >
+<father id="218" num="9" />
+<cdparam x="723" y="191" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Event receive" />
+<TGConnectingPoint num="0" id="202" />
+<extraparam>
+<Prop commName="receive" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="205" >
+<father id="218" num="10" />
+<cdparam x="723" y="302" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" />
+<infoparam name="TGComponent" value="Request start_TCP_IP" />
+<TGConnectingPoint num="0" id="204" />
+<extraparam>
+<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="207" >
+<father id="218" num="11" />
+<cdparam x="525" y="117" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="191" minY="-10" maxY="228" />
+<infoparam name="TGComponent" value="Request activation" />
+<TGConnectingPoint num="0" id="206" />
+<extraparam>
+<Prop commName="activation" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="209" >
+<father id="218" num="12" />
+<cdparam x="620" y="326" />
+<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="191" minY="-10" maxY="228" />
+<infoparam name="TGComponent" value="Request start_Application" />
+<TGConnectingPoint num="0" id="208" />
+<extraparam>
+<Prop commName="start_Application" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+
+
+</TMLComponentTaskDiagramPanel>
+
+<TMLActivityDiagramPanel name="InterfaceDevice" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1012" id="235" >
+<cdparam x="553" y="376" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" 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="choice" value="null" />
+<TGConnectingPoint num="0" id="231" />
+<TGConnectingPoint num="1" id="232" />
+<TGConnectingPoint num="2" id="233" />
+<TGConnectingPoint num="3" id="234" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="228" >
+<father id="235" num="0" />
+<cdparam x="528" y="386" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="229" >
+<father id="235" num="1" />
+<cdparam x="588" y="386" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="230" >
+<father id="235" num="2" />
+<cdparam x="573" y="421" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="243" >
+<cdparam x="644" y="517" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" 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="choice" value="null" />
+<TGConnectingPoint num="0" id="239" />
+<TGConnectingPoint num="1" id="240" />
+<TGConnectingPoint num="2" id="241" />
+<TGConnectingPoint num="3" id="242" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="236" >
+<father id="243" num="0" />
+<cdparam x="599" y="527" />
+<sizeparam width="52" height="15" minWidth="10" minHeight="0" 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="[ x==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="237" >
+<father id="243" num="1" />
+<cdparam x="679" y="527" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="238" >
+<father id="243" num="2" />
+<cdparam x="664" y="562" />
+<sizeparam width="42" height="15" minWidth="10" minHeight="0" 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="[ x&gt;0 ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="245" >
+<cdparam x="222" y="58" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="244" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="248" >
+<cdparam x="188" y="137" />
+<sizeparam width="81" height="20" minWidth="30" minHeight="0" 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="send request" value="activation()" />
+<TGConnectingPoint num="0" id="246" />
+<TGConnectingPoint num="1" id="247" />
+<extraparam>
+<Data requestName="activation" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="251" >
+<cdparam x="202" y="237" />
+<sizeparam width="53" height="20" minWidth="30" minHeight="0" 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="send event" value="reset()" />
+<TGConnectingPoint num="0" id="249" />
+<TGConnectingPoint num="1" id="250" />
+<latencyCheck />
+<extraparam>
+<Data eventName="reset" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="254" >
+<cdparam x="167" y="288" />
+<sizeparam width="120" height="20" minWidth="30" minHeight="0" 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="wait event" value="answerToReset() " />
+<TGConnectingPoint num="0" id="252" />
+<TGConnectingPoint num="1" id="253" />
+<extraparam>
+<Data eventName="answerToReset" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="257" >
+<cdparam x="207" y="337" />
+<sizeparam width="43" height="20" minWidth="30" minHeight="0" 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="send event" value="pTS()" />
+<TGConnectingPoint num="0" id="255" />
+<TGConnectingPoint num="1" id="256" />
+<extraparam>
+<Data eventName="pTS" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="260" >
+<cdparam x="356" y="165" />
+<sizeparam width="94" height="20" minWidth="30" minHeight="0" 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="wait event" value="pTSConfirm() " />
+<TGConnectingPoint num="0" id="258" />
+<TGConnectingPoint num="1" id="259" />
+<latencyCheck />
+<breakpoint />
+<extraparam>
+<Data eventName="pTSConfirm" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="277" >
+<cdparam x="367" y="222" />
+<sizeparam width="114" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="data exchange
+" />
+<TGConnectingPoint num="0" id="261" />
+<TGConnectingPoint num="1" id="262" />
+<TGConnectingPoint num="2" id="263" />
+<TGConnectingPoint num="3" id="264" />
+<TGConnectingPoint num="4" id="265" />
+<TGConnectingPoint num="5" id="266" />
+<TGConnectingPoint num="6" id="267" />
+<TGConnectingPoint num="7" id="268" />
+<TGConnectingPoint num="8" id="269" />
+<TGConnectingPoint num="9" id="270" />
+<TGConnectingPoint num="10" id="271" />
+<TGConnectingPoint num="11" id="272" />
+<TGConnectingPoint num="12" id="273" />
+<TGConnectingPoint num="13" id="274" />
+<TGConnectingPoint num="14" id="275" />
+<TGConnectingPoint num="15" id="276" />
+<extraparam>
+<Line value="data exchange" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="280" >
+<cdparam x="429" y="448" />
+<sizeparam width="94" height="20" minWidth="30" minHeight="0" 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="write channel" value="fromDtoSC(1)" />
+<TGConnectingPoint num="0" id="278" />
+<TGConnectingPoint num="1" id="279" />
+<extraparam>
+<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="283" >
+<cdparam x="419" y="507" />
+<sizeparam width="115" height="20" minWidth="30" minHeight="0" 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="send event" value="data_Ready(x, b)" />
+<TGConnectingPoint num="0" id="281" />
+<TGConnectingPoint num="1" id="282" />
+<latencyCheck />
+<extraparam>
+<Data eventName="data_Ready" nbOfParams="5" />
+<Param index="0" value="x" />
+<Param index="1" value="b" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="285" >
+<cdparam x="466" y="570" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="284" />
+</COMPONENT>
+
+<COMPONENT type="1017" id="288" >
+<cdparam x="588" y="447" />
+<sizeparam width="142" height="20" minWidth="30" minHeight="0" 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="notified event" value="x=?data_Ready_SC()" />
+<TGConnectingPoint num="0" id="286" />
+<TGConnectingPoint num="1" id="287" />
+<extraparam>
+<Data eventName="data_Ready_SC" variable="x" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="290" >
+<cdparam x="569" y="577" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="289" />
+</COMPONENT>
+
+<COMPONENT type="1009" id="293" >
+<cdparam x="610" y="700" />
+<sizeparam width="98" height="20" minWidth="30" minHeight="0" 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="read channel" value="fromSCtoD(1) " />
+<TGConnectingPoint num="0" id="291" />
+<TGConnectingPoint num="1" id="292" />
+<extraparam>
+<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="296" >
+<cdparam x="600" y="619" />
+<sizeparam width="119" height="20" minWidth="30" minHeight="0" 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="wait event" value="data_Ready_SC() " />
+<TGConnectingPoint num="0" id="294" />
+<TGConnectingPoint num="1" id="295" />
+<accessibility />
+<extraparam>
+<Data eventName="data_Ready_SC" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="298" >
+<cdparam x="649" y="774" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="297" />
+</COMPONENT>
+
+<COMPONENT type="1014" id="302" >
+<cdparam x="300" y="287" />
+<sizeparam width="268" height="20" minWidth="30" minHeight="0" 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="for loop" value="for(i=0;i&lt;nbOfComputedPackets;i = i +1)" />
+<TGConnectingPoint num="0" id="299" />
+<TGConnectingPoint num="1" id="300" />
+<TGConnectingPoint num="2" id="301" />
+<extraparam>
+<Data init="i=0" condition="i&lt;nbOfComputedPackets" increment="i = i +1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="304" >
+<cdparam x="382" y="380" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="303" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="305" >
+<cdparam x="434" y="312" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="434" y="312" id="301" />
+<P2  x="392" y="375" id="303" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="306" >
+<cdparam x="561" y="301" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="568" y="301" id="300" />
+<P2  x="568" y="366" id="231" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="311" >
+<cdparam x="78" y="363" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to wait event" value="null" />
+<P1  x="228" y="362" id="256" />
+<P2  x="403" y="160" id="258" />
+<Point x="228" y="383" />
+<Point x="307" y="383" />
+<Point x="307" y="140" />
+<Point x="403" y="140" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="307" >
+<father id="311" num="0" />
+<cdparam x="228" y="383" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="308" >
+<father id="311" num="1" />
+<cdparam x="307" y="383" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="309" >
+<father id="311" num="2" />
+<cdparam x="307" y="140" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="310" >
+<father id="311" num="3" />
+<cdparam x="403" y="140" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="115" id="312" >
+<cdparam x="228" y="57" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to send request" value="null" />
+<P1  x="229" y="78" id="244" />
+<P2  x="228" y="132" id="246" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="313" >
+<cdparam x="228" y="162" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to send event" value="null" />
+<P1  x="228" y="162" id="247" />
+<P2  x="228" y="232" id="249" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="314" >
+<cdparam x="228" y="284" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to send event" value="null" />
+<P1  x="227" y="313" id="253" />
+<P2  x="228" y="332" id="255" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="315" >
+<cdparam x="528" y="391" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to write channel" value="null" />
+<P1  x="528" y="391" id="232" />
+<P2  x="476" y="443" id="278" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="316" >
+<cdparam x="476" y="473" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="476" y="473" id="279" />
+<P2  x="476" y="502" id="281" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="317" >
+<cdparam x="471" y="529" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="476" y="532" id="282" />
+<P2  x="476" y="565" id="284" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="318" >
+<cdparam x="619" y="532" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="619" y="532" id="240" />
+<P2  x="579" y="572" id="289" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="319" >
+<cdparam x="580" y="405" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to notified event" value="null" />
+<P1  x="608" y="391" id="233" />
+<P2  x="659" y="442" id="286" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="320" >
+<cdparam x="659" y="472" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from notified event to choice" value="null" />
+<P1  x="659" y="472" id="287" />
+<P2  x="659" y="507" id="239" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="321" >
+<cdparam x="659" y="572" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="659" y="572" id="242" />
+<P2  x="659" y="614" id="294" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="322" >
+<cdparam x="670" y="644" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="659" y="644" id="295" />
+<P2  x="659" y="695" id="291" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="323" >
+<cdparam x="659" y="725" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to stop state" value="null" />
+<P1  x="659" y="725" id="292" />
+<P2  x="659" y="769" id="297" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="324" >
+<cdparam x="403" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to for loop" value="null" />
+<P1  x="403" y="190" id="259" />
+<P2  x="434" y="282" id="299" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="325" >
+<cdparam x="228" y="262" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to wait event" value="null" />
+<P1  x="228" y="262" id="250" />
+<P2  x="227" y="283" id="252" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1000" id="327" >
+<cdparam x="159" y="66" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="326" />
+</COMPONENT>
+
+<COMPONENT type="1010" id="330" >
+<cdparam x="138" y="129" />
+<sizeparam width="57" height="20" minWidth="30" minHeight="0" 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="wait event" value="reset() " />
+<TGConnectingPoint num="0" id="328" />
+<TGConnectingPoint num="1" id="329" />
+<extraparam>
+<Data eventName="reset" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="333" >
+<cdparam x="108" y="182" />
+<sizeparam width="116" height="20" minWidth="30" minHeight="0" 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="send event" value="answerToReset()" />
+<TGConnectingPoint num="0" id="331" />
+<TGConnectingPoint num="1" id="332" />
+<extraparam>
+<Data eventName="answerToReset" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="336" >
+<cdparam x="143" y="237" />
+<sizeparam width="47" height="20" minWidth="30" minHeight="0" 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="wait event" value="pTS() " />
+<TGConnectingPoint num="0" id="334" />
+<TGConnectingPoint num="1" id="335" />
+<extraparam>
+<Data eventName="pTS" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="339" >
+<cdparam x="121" y="308" />
+<sizeparam width="90" height="20" minWidth="30" minHeight="0" 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="send event" value="pTSConfirm()" />
+<TGConnectingPoint num="0" id="337" />
+<TGConnectingPoint num="1" id="338" />
+<extraparam>
+<Data eventName="pTSConfirm" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="356" >
+<cdparam x="376" y="98" />
+<sizeparam width="249" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="The first two layers of the OSI model 
+are used to communicate between 
+the smart card and the terminal
+" />
+<TGConnectingPoint num="0" id="340" />
+<TGConnectingPoint num="1" id="341" />
+<TGConnectingPoint num="2" id="342" />
+<TGConnectingPoint num="3" id="343" />
+<TGConnectingPoint num="4" id="344" />
+<TGConnectingPoint num="5" id="345" />
+<TGConnectingPoint num="6" id="346" />
+<TGConnectingPoint num="7" id="347" />
+<TGConnectingPoint num="8" id="348" />
+<TGConnectingPoint num="9" id="349" />
+<TGConnectingPoint num="10" id="350" />
+<TGConnectingPoint num="11" id="351" />
+<TGConnectingPoint num="12" id="352" />
+<TGConnectingPoint num="13" id="353" />
+<TGConnectingPoint num="14" id="354" />
+<TGConnectingPoint num="15" id="355" />
+<extraparam>
+<Line value="The first two layers of the OSI model " />
+<Line value="are used to communicate between " />
+<Line value="the smart card and the terminal" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="359" >
+<cdparam x="250" y="97" />
+<sizeparam width="96" height="20" minWidth="30" minHeight="0" 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="send request" value="start_TCP_IP()" />
+<TGConnectingPoint num="0" id="357" />
+<TGConnectingPoint num="1" id="358" />
+<extraparam>
+<Data requestName="start_TCP_IP" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="362" >
+<cdparam x="236" y="148" />
+<sizeparam width="125" height="20" minWidth="30" minHeight="0" 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="send request" value="start_Application()" />
+<TGConnectingPoint num="0" id="360" />
+<TGConnectingPoint num="1" id="361" />
+<extraparam>
+<Data requestName="start_Application" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="364" >
+<cdparam x="515" y="428" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="363" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="367" >
+<cdparam x="305" y="350" />
+<sizeparam width="115" height="20" minWidth="30" minHeight="0" 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="send event" value="data_Ready_SC()" />
+<TGConnectingPoint num="0" id="365" />
+<TGConnectingPoint num="1" id="366" />
+<extraparam>
+<Data eventName="data_Ready_SC" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="369" >
+<cdparam x="352" y="426" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="368" />
+</COMPONENT>
+
+<COMPONENT type="1009" id="372" >
+<cdparam x="318" y="308" />
+<sizeparam width="88" height="20" minWidth="30" minHeight="0" 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="read channel" value="fromTtoP(1) " />
+<TGConnectingPoint num="0" id="370" />
+<TGConnectingPoint num="1" id="371" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="375" >
+<cdparam x="335" y="264" />
+<sizeparam width="55" height="20" minWidth="30" minHeight="0" 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="wait event" value="send() " />
+<TGConnectingPoint num="0" id="373" />
+<TGConnectingPoint num="1" id="374" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="378" >
+<cdparam x="315" y="392" />
+<sizeparam width="94" height="20" minWidth="30" minHeight="0" 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="write channel" value="fromSCtoD(1)" />
+<TGConnectingPoint num="0" id="376" />
+<TGConnectingPoint num="1" id="377" />
+<extraparam>
+<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="381" >
+<cdparam x="493" y="350" />
+<sizeparam width="65" height="20" minWidth="30" minHeight="0" 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="send event" value="receive()" />
+<TGConnectingPoint num="0" id="379" />
+<TGConnectingPoint num="1" id="380" />
+<extraparam>
+<Data eventName="receive" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1009" id="384" >
+<cdparam x="476" y="311" />
+<sizeparam width="98" height="20" minWidth="30" minHeight="0" 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="read channel" value="fromDtoSC(1) " />
+<TGConnectingPoint num="0" id="382" />
+<TGConnectingPoint num="1" id="383" />
+<extraparam>
+<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="387" >
+<cdparam x="483" y="387" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" 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="write channel" value="fromPtoT(1)" />
+<TGConnectingPoint num="0" id="385" />
+<TGConnectingPoint num="1" id="386" />
+<extraparam>
+<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="390" >
+<cdparam x="466" y="268" />
+<sizeparam width="118" height="20" minWidth="30" minHeight="0" 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="wait event" value="data_Ready(t, b) " />
+<TGConnectingPoint num="0" id="388" />
+<TGConnectingPoint num="1" id="389" />
+<breakpoint />
+<extraparam>
+<Data eventName="data_Ready" nbOfParams="5" />
+<Param index="0" value="t" />
+<Param index="1" value="b" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1014" id="394" >
+<cdparam x="236" y="202" />
+<sizeparam width="124" height="20" minWidth="30" minHeight="0" 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="for loop" value="for(j=0;x==0;j = j)" />
+<TGConnectingPoint num="0" id="391" />
+<TGConnectingPoint num="1" id="392" />
+<TGConnectingPoint num="2" id="393" />
+<extraparam>
+<Data init="j=0" condition="x==0" increment="j = j" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="396" >
+<cdparam x="297" y="231" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="395" />
+</COMPONENT>
+
+<COMPONENT type="1018" id="407" >
+<cdparam x="424" y="226" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" 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="select" value="null" />
+<TGConnectingPoint num="0" id="397" />
+<TGConnectingPoint num="1" id="398" />
+<TGConnectingPoint num="2" id="399" />
+<TGConnectingPoint num="3" id="400" />
+<TGConnectingPoint num="4" id="401" />
+<TGConnectingPoint num="5" id="402" />
+<TGConnectingPoint num="6" id="403" />
+<TGConnectingPoint num="7" id="404" />
+<TGConnectingPoint num="8" id="405" />
+<TGConnectingPoint num="9" id="406" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="412" >
+<cdparam x="111" y="331" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to send request" value="null" />
+<P1  x="166" y="333" id="338" />
+<P2  x="298" y="92" id="357" />
+<Point x="166" y="351" />
+<Point x="231" y="351" />
+<Point x="231" y="72" />
+<Point x="298" y="72" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="408" >
+<father id="412" num="0" />
+<cdparam x="166" y="351" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="409" >
+<father id="412" num="1" />
+<cdparam x="231" y="351" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="410" >
+<father id="412" num="2" />
+<cdparam x="231" y="72" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="411" >
+<father id="412" num="3" />
+<cdparam x="298" y="72" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="115" id="413" >
+<cdparam x="166" y="64" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to wait event" value="null" />
+<P1  x="166" y="86" id="326" />
+<P2  x="166" y="124" id="328" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="414" >
+<cdparam x="166" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to send event" value="null" />
+<P1  x="166" y="154" id="329" />
+<P2  x="166" y="177" id="331" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="415" >
+<cdparam x="312" y="133" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to send request" value="null" />
+<P1  x="298" y="122" id="358" />
+<P2  x="298" y="143" id="360" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="416" >
+<cdparam x="355" y="300" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="362" y="289" id="374" />
+<P2  x="362" y="303" id="370" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="417" >
+<cdparam x="355" y="365" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to send event" value="null" />
+<P1  x="362" y="333" id="371" />
+<P2  x="362" y="345" id="365" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="418" >
+<cdparam x="355" y="417" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="362" y="375" id="366" />
+<P2  x="362" y="387" id="376" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="419" >
+<cdparam x="355" y="473" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="362" y="417" id="377" />
+<P2  x="362" y="421" id="368" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="420" >
+<cdparam x="541" y="358" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to send event" value="null" />
+<P1  x="525" y="336" id="383" />
+<P2  x="525" y="345" id="379" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="421" >
+<cdparam x="540" y="402" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="525" y="375" id="380" />
+<P2  x="525" y="382" id="385" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="422" >
+<cdparam x="543" y="305" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="525" y="293" id="389" />
+<P2  x="525" y="306" id="382" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="423" >
+<cdparam x="540" y="464" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="525" y="412" id="386" />
+<P2  x="525" y="423" id="363" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="424" >
+<cdparam x="298" y="173" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to for loop" value="null" />
+<P1  x="298" y="173" id="361" />
+<P2  x="298" y="197" id="391" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="425" >
+<cdparam x="328" y="232" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from for loop to stop state" value="null" />
+<P1  x="298" y="227" id="393" />
+<P2  x="307" y="226" id="395" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="426" >
+<cdparam x="395" y="283" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from select to wait event" value="null" />
+<P1  x="399" y="241" id="398" />
+<P2  x="362" y="259" id="373" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="427" >
+<cdparam x="543" y="341" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from select to wait event" value="null" />
+<P1  x="479" y="241" id="399" />
+<P2  x="525" y="263" id="388" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="428" >
+<cdparam x="391" y="282" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from for loop to select" value="null" />
+<P1  x="360" y="216" id="392" />
+<P2  x="439" y="216" id="397" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="429" >
+<cdparam x="164" y="262" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to send event" value="null" />
+<P1  x="166" y="262" id="335" />
+<P2  x="166" y="303" id="337" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="430" >
+<cdparam x="166" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to wait event" value="null" />
+<P1  x="166" y="207" id="332" />
+<P2  x="166" y="232" id="334" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="TCPIP" minX="10" maxX="2900" minY="10" maxY="1900" >
+<COMPONENT type="1012" id="438" >
+<cdparam x="2086" y="1378" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="434" />
+<TGConnectingPoint num="1" id="435" />
+<TGConnectingPoint num="2" id="436" />
+<TGConnectingPoint num="3" id="437" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="431" >
+<father id="438" num="0" />
+<cdparam x="2061" y="1388" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="432" >
+<father id="438" num="1" />
+<cdparam x="2121" y="1388" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="433" >
+<father id="438" num="2" />
+<cdparam x="2106" y="1426" />
+<sizeparam width="135" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==10 ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="446" >
+<cdparam x="2262" y="951" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="442" />
+<TGConnectingPoint num="1" id="443" />
+<TGConnectingPoint num="2" id="444" />
+<TGConnectingPoint num="3" id="445" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="439" >
+<father id="446" num="0" />
+<cdparam x="2212" y="961" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==1 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="440" >
+<father id="446" num="1" />
+<cdparam x="2297" y="961" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==3 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="441" >
+<father id="446" num="2" />
+<cdparam x="2282" y="996" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="454" >
+<cdparam x="1981" y="1346" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="450" />
+<TGConnectingPoint num="1" id="451" />
+<TGConnectingPoint num="2" id="452" />
+<TGConnectingPoint num="3" id="453" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="447" >
+<father id="454" num="0" />
+<cdparam x="1934" y="1356" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==5 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="448" >
+<father id="454" num="1" />
+<cdparam x="2016" y="1356" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="449" >
+<father id="454" num="2" />
+<cdparam x="2001" y="1391" />
+<sizeparam width="131" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state == 7 ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="462" >
+<cdparam x="1811" y="1269" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="458" />
+<TGConnectingPoint num="1" id="459" />
+<TGConnectingPoint num="2" id="460" />
+<TGConnectingPoint num="3" id="461" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="455" >
+<father id="462" num="0" />
+<cdparam x="1762" y="1279" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==4 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="456" >
+<father id="462" num="1" />
+<cdparam x="1846" y="1279" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="457" >
+<father id="462" num="2" />
+<cdparam x="1831" y="1314" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==2 ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="470" >
+<cdparam x="1716" y="1141" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="466" />
+<TGConnectingPoint num="1" id="467" />
+<TGConnectingPoint num="2" id="468" />
+<TGConnectingPoint num="3" id="469" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="463" >
+<father id="470" num="0" />
+<cdparam x="1691" y="1151" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="464" >
+<father id="470" num="1" />
+<cdparam x="1751" y="1151" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="465" >
+<father id="470" num="2" />
+<cdparam x="1736" y="1186" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="474" >
+<cdparam x="1524" y="1254" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="472" />
+<TGConnectingPoint num="1" id="473" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="471" >
+<father id="474" num="0" />
+<cdparam x="1539" y="1274" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="478" >
+<cdparam x="1524" y="1064" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="476" />
+<TGConnectingPoint num="1" id="477" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="475" >
+<father id="478" num="0" />
+<cdparam x="1538" y="1088" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="486" >
+<cdparam x="1592" y="1006" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="482" />
+<TGConnectingPoint num="1" id="483" />
+<TGConnectingPoint num="2" id="484" />
+<TGConnectingPoint num="3" id="485" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="479" >
+<father id="486" num="0" />
+<cdparam x="1542" y="1016" />
+<sizeparam width="135" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state  == 4 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="480" >
+<father id="486" num="1" />
+<cdparam x="1627" y="1016" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="481" >
+<father id="486" num="2" />
+<cdparam x="1612" y="1051" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="494" >
+<cdparam x="1713" y="875" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="490" />
+<TGConnectingPoint num="1" id="491" />
+<TGConnectingPoint num="2" id="492" />
+<TGConnectingPoint num="3" id="493" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="487" >
+<father id="494" num="0" />
+<cdparam x="1688" y="885" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="488" >
+<father id="494" num="1" />
+<cdparam x="1748" y="885" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="489" >
+<father id="494" num="2" />
+<cdparam x="1733" y="920" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="498" >
+<cdparam x="1636" y="1235" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="496" />
+<TGConnectingPoint num="1" id="497" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="495" >
+<father id="498" num="0" />
+<cdparam x="1655" y="1254" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="502" >
+<cdparam x="2213" y="1059" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="500" />
+<TGConnectingPoint num="1" id="501" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="499" >
+<father id="502" num="0" />
+<cdparam x="2200" y="1083" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="506" >
+<cdparam x="2336" y="1024" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="504" />
+<TGConnectingPoint num="1" id="505" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="503" >
+<father id="506" num="0" />
+<cdparam x="2312" y="1044" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="514" >
+<cdparam x="1193" y="1020" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="510" />
+<TGConnectingPoint num="1" id="511" />
+<TGConnectingPoint num="2" id="512" />
+<TGConnectingPoint num="3" id="513" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="507" >
+<father id="514" num="0" />
+<cdparam x="1168" y="1030" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="508" >
+<father id="514" num="1" />
+<cdparam x="1228" y="1030" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="509" >
+<father id="514" num="2" />
+<cdparam x="1213" y="1065" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==6 ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="518" >
+<cdparam x="1203" y="1107" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="516" />
+<TGConnectingPoint num="1" id="517" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="515" >
+<father id="518" num="0" />
+<cdparam x="1218" y="1127" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="526" >
+<cdparam x="557" y="712" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="522" />
+<TGConnectingPoint num="1" id="523" />
+<TGConnectingPoint num="2" id="524" />
+<TGConnectingPoint num="3" id="525" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="519" >
+<father id="526" num="0" />
+<cdparam x="514" y="722" />
+<sizeparam width="131" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state == 1 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="520" >
+<father id="526" num="1" />
+<cdparam x="592" y="722" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="521" >
+<father id="526" num="2" />
+<cdparam x="577" y="757" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="530" >
+<cdparam x="717" y="694" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="528" />
+<TGConnectingPoint num="1" id="529" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="527" >
+<father id="530" num="0" />
+<cdparam x="732" y="714" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="534" >
+<cdparam x="938" y="1025" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="532" />
+<TGConnectingPoint num="1" id="533" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="531" >
+<father id="534" num="0" />
+<cdparam x="953" y="1045" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="542" >
+<cdparam x="1034" y="939" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="538" />
+<TGConnectingPoint num="1" id="539" />
+<TGConnectingPoint num="2" id="540" />
+<TGConnectingPoint num="3" id="541" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="535" >
+<father id="542" num="0" />
+<cdparam x="989" y="949" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==4 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="536" >
+<father id="542" num="1" />
+<cdparam x="1070" y="949" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="537" >
+<father id="542" num="2" />
+<cdparam x="1054" y="984" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state == 5]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="546" >
+<cdparam x="795" y="1009" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="544" />
+<TGConnectingPoint num="1" id="545" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="543" >
+<father id="546" num="0" />
+<cdparam x="818" y="1031" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="554" >
+<cdparam x="828" y="869" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="550" />
+<TGConnectingPoint num="1" id="551" />
+<TGConnectingPoint num="2" id="552" />
+<TGConnectingPoint num="3" id="553" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="547" >
+<father id="554" num="0" />
+<cdparam x="753" y="885" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="548" >
+<father id="554" num="1" />
+<cdparam x="863" y="879" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="549" >
+<father id="554" num="2" />
+<cdparam x="848" y="914" />
+<sizeparam width="123" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state==0 ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="558" >
+<cdparam x="341" y="764" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="556" />
+<TGConnectingPoint num="1" id="557" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="555" >
+<father id="558" num="0" />
+<cdparam x="354" y="785" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="562" >
+<cdparam x="127" y="794" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="560" />
+<TGConnectingPoint num="1" id="561" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="559" >
+<father id="562" num="0" />
+<cdparam x="146" y="818" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="570" >
+<cdparam x="993" y="780" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="566" />
+<TGConnectingPoint num="1" id="567" />
+<TGConnectingPoint num="2" id="568" />
+<TGConnectingPoint num="3" id="569" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="563" >
+<father id="570" num="0" />
+<cdparam x="949" y="793" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="564" >
+<father id="570" num="1" />
+<cdparam x="1028" y="790" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="565" >
+<father id="570" num="2" />
+<cdparam x="1013" y="825" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="574" >
+<cdparam x="1003" y="701" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="572" />
+<TGConnectingPoint num="1" id="573" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="571" >
+<father id="574" num="0" />
+<cdparam x="1018" y="721" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="578" >
+<cdparam x="434" y="783" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="576" />
+<TGConnectingPoint num="1" id="577" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="575" >
+<father id="578" num="0" />
+<cdparam x="449" y="802" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="582" >
+<cdparam x="225" y="863" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="580" />
+<TGConnectingPoint num="1" id="581" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="579" >
+<father id="582" num="0" />
+<cdparam x="245" y="885" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="586" >
+<cdparam x="1044" y="1057" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="584" />
+<TGConnectingPoint num="1" id="585" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="583" >
+<father id="586" num="0" />
+<cdparam x="1059" y="1077" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="594" >
+<cdparam x="173" y="486" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="590" />
+<TGConnectingPoint num="1" id="591" />
+<TGConnectingPoint num="2" id="592" />
+<TGConnectingPoint num="3" id="593" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="587" >
+<father id="594" num="0" />
+<cdparam x="98" y="496" />
+<sizeparam width="123" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="588" >
+<father id="594" num="1" />
+<cdparam x="208" y="496" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="589" >
+<father id="594" num="2" />
+<cdparam x="193" y="531" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="602" >
+<cdparam x="359" y="192" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="598" />
+<TGConnectingPoint num="1" id="599" />
+<TGConnectingPoint num="2" id="600" />
+<TGConnectingPoint num="3" id="601" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="595" >
+<father id="602" num="0" />
+<cdparam x="317" y="202" />
+<sizeparam width="88" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.a&gt;0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="596" >
+<father id="602" num="1" />
+<cdparam x="394" y="202" />
+<sizeparam width="98" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.a==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="597" >
+<father id="602" num="2" />
+<cdparam x="379" y="237" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="610" >
+<cdparam x="449" y="582" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="606" />
+<TGConnectingPoint num="1" id="607" />
+<TGConnectingPoint num="2" id="608" />
+<TGConnectingPoint num="3" id="609" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="603" >
+<father id="610" num="0" />
+<cdparam x="398" y="592" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==9 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="604" >
+<father id="610" num="1" />
+<cdparam x="500" y="599" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="605" >
+<father id="610" num="2" />
+<cdparam x="469" y="627" />
+<sizeparam width="277" height="15" minWidth="10" minHeight="0" 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="[ (tcpctrl.state ==2) or (tcpctrl.state ==4) ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="618" >
+<cdparam x="274" y="564" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="614" />
+<TGConnectingPoint num="1" id="615" />
+<TGConnectingPoint num="2" id="616" />
+<TGConnectingPoint num="3" id="617" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="611" >
+<father id="618" num="0" />
+<cdparam x="228" y="574" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state == 1]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="612" >
+<father id="618" num="1" />
+<cdparam x="317" y="584" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="613" >
+<father id="618" num="2" />
+<cdparam x="294" y="613" />
+<sizeparam width="127" height="15" minWidth="10" minHeight="0" 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="[ tcpctrl.state ==4 ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="620" >
+<cdparam x="227" y="27" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="619" />
+</COMPONENT>
+
+<COMPONENT type="301" id="637" >
+<cdparam x="10" y="30" />
+<sizeparam width="98" height="135" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="0: closed
+1: Listen
+2: SYN rcvd
+3: SYN sent
+4: Estab
+5: Fin wait1
+6: Fin wait2
+7: closing
+8: Time wait
+9: close wait
+10:last ack
+" />
+<TGConnectingPoint num="0" id="621" />
+<TGConnectingPoint num="1" id="622" />
+<TGConnectingPoint num="2" id="623" />
+<TGConnectingPoint num="3" id="624" />
+<TGConnectingPoint num="4" id="625" />
+<TGConnectingPoint num="5" id="626" />
+<TGConnectingPoint num="6" id="627" />
+<TGConnectingPoint num="7" id="628" />
+<TGConnectingPoint num="8" id="629" />
+<TGConnectingPoint num="9" id="630" />
+<TGConnectingPoint num="10" id="631" />
+<TGConnectingPoint num="11" id="632" />
+<TGConnectingPoint num="12" id="633" />
+<TGConnectingPoint num="13" id="634" />
+<TGConnectingPoint num="14" id="635" />
+<TGConnectingPoint num="15" id="636" />
+<extraparam>
+<Line value="0: closed" />
+<Line value="1: Listen" />
+<Line value="2: SYN rcvd" />
+<Line value="3: SYN sent" />
+<Line value="4: Estab" />
+<Line value="5: Fin wait1" />
+<Line value="6: Fin wait2" />
+<Line value="7: closing" />
+<Line value="8: Time wait" />
+<Line value="9: close wait" />
+<Line value="10:last ack" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="640" >
+<cdparam x="72" y="549" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =1" />
+<TGConnectingPoint num="0" id="638" />
+<TGConnectingPoint num="1" id="639" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="642" >
+<cdparam x="116" y="615" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="641" />
+</COMPONENT>
+
+<COMPONENT type="1009" id="645" >
+<cdparam x="964" y="585" />
+<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="read channel" value="fromPtoT(1) " />
+<TGConnectingPoint num="0" id="643" />
+<TGConnectingPoint num="1" id="644" />
+<extraparam>
+<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1014" id="649" >
+<cdparam x="145" y="85" />
+<sizeparam width="180" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="for loop" value="for(i=0;(tcpctrl.a==0);i = i)" />
+<TGConnectingPoint num="0" id="646" />
+<TGConnectingPoint num="1" id="647" />
+<TGConnectingPoint num="2" id="648" />
+<extraparam>
+<Data init="i=0" condition="(tcpctrl.a==0)" increment="i = i" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="651" >
+<cdparam x="224" y="207" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="650" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="654" >
+<cdparam x="182" y="144" />
+<sizeparam width="105" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state=0" />
+<TGConnectingPoint num="0" id="652" />
+<TGConnectingPoint num="1" id="653" />
+</COMPONENT>
+
+<COMPONENT type="1017" id="657" >
+<cdparam x="311" y="133" />
+<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="notified event" value="tcpctrl.a=?abort()" />
+<TGConnectingPoint num="0" id="655" />
+<TGConnectingPoint num="1" id="656" />
+<extraparam>
+<Data eventName="abort" variable="tcpctrl.a" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1009" id="660" >
+<cdparam x="690" y="589" />
+<sizeparam width="64" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="read channel" value="temp(1) " />
+<TGConnectingPoint num="0" id="658" />
+<TGConnectingPoint num="1" id="659" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="663" >
+<cdparam x="686" y="534" />
+<sizeparam width="73" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="timeOut() " />
+<TGConnectingPoint num="0" id="661" />
+<TGConnectingPoint num="1" id="662" />
+<extraparam>
+<Data eventName="timeOut" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="666" >
+<cdparam x="974" y="528" />
+<sizeparam width="69" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="receive() " />
+<TGConnectingPoint num="0" id="664" />
+<TGConnectingPoint num="1" id="665" />
+<extraparam>
+<Data eventName="receive" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="669" >
+<cdparam x="436" y="492" />
+<sizeparam width="57" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="close() " />
+<TGConnectingPoint num="0" id="667" />
+<TGConnectingPoint num="1" id="668" />
+<extraparam>
+<Data eventName="close" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="672" >
+<cdparam x="247" y="468" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="send_TCP() " />
+<TGConnectingPoint num="0" id="670" />
+<TGConnectingPoint num="1" id="671" />
+<extraparam>
+<Data eventName="send_TCP" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="675" >
+<cdparam x="160" y="419" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="open() " />
+<TGConnectingPoint num="0" id="673" />
+<TGConnectingPoint num="1" id="674" />
+<breakpoint />
+<extraparam>
+<Data eventName="open" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1018" id="686" >
+<cdparam x="449" y="267" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="select" value="null" />
+<TGConnectingPoint num="0" id="676" />
+<TGConnectingPoint num="1" id="677" />
+<TGConnectingPoint num="2" id="678" />
+<TGConnectingPoint num="3" id="679" />
+<TGConnectingPoint num="4" id="680" />
+<TGConnectingPoint num="5" id="681" />
+<TGConnectingPoint num="6" id="682" />
+<TGConnectingPoint num="7" id="683" />
+<TGConnectingPoint num="8" id="684" />
+<TGConnectingPoint num="9" id="685" />
+<breakpoint />
+</COMPONENT>
+
+<COMPONENT type="1001" id="688" >
+<cdparam x="226" y="529" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="687" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="690" >
+<cdparam x="343" y="614" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="689" />
+</COMPONENT>
+
+<COMPONENT type="1010" id="693" >
+<cdparam x="272" y="228" />
+<sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="abort() " />
+<TGConnectingPoint num="0" id="691" />
+<TGConnectingPoint num="1" id="692" />
+<extraparam>
+<Data eventName="abort" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="695" >
+<cdparam x="291" y="290" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="694" />
+</COMPONENT>
+
+<COMPONENT type="301" id="712" >
+<cdparam x="602" y="86" />
+<sizeparam width="393" height="51" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="b est le nombre d&apos;instructions necessaires pour paquetiser
+ou depaquitiser un paquet TCP
+
+On prend b=1 comme exemple
+" />
+<TGConnectingPoint num="0" id="696" />
+<TGConnectingPoint num="1" id="697" />
+<TGConnectingPoint num="2" id="698" />
+<TGConnectingPoint num="3" id="699" />
+<TGConnectingPoint num="4" id="700" />
+<TGConnectingPoint num="5" id="701" />
+<TGConnectingPoint num="6" id="702" />
+<TGConnectingPoint num="7" id="703" />
+<TGConnectingPoint num="8" id="704" />
+<TGConnectingPoint num="9" id="705" />
+<TGConnectingPoint num="10" id="706" />
+<TGConnectingPoint num="11" id="707" />
+<TGConnectingPoint num="12" id="708" />
+<TGConnectingPoint num="13" id="709" />
+<TGConnectingPoint num="14" id="710" />
+<TGConnectingPoint num="15" id="711" />
+<extraparam>
+<Line value="b est le nombre d&apos;instructions necessaires pour paquetiser" />
+<Line value="ou depaquitiser un paquet TCP" />
+<Line value="" />
+<Line value="On prend b=1 comme exemple" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1009" id="715" >
+<cdparam x="186" y="808" />
+<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="read channel" value="fromAtoT(1) " />
+<TGConnectingPoint num="0" id="713" />
+<TGConnectingPoint num="1" id="714" />
+<extraparam>
+<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="718" >
+<cdparam x="188" y="1002" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="716" />
+<TGConnectingPoint num="1" id="717" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="720" >
+<cdparam x="219" y="1237" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="719" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="723" >
+<cdparam x="384" y="1032" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =5" />
+<TGConnectingPoint num="0" id="721" />
+<TGConnectingPoint num="1" id="722" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="725" >
+<cdparam x="428" y="1213" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="724" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="728" >
+<cdparam x="80" y="1041" />
+<sizeparam width="105" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state=3" />
+<TGConnectingPoint num="0" id="726" />
+<TGConnectingPoint num="1" id="727" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="731" >
+<cdparam x="90" y="938" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="729" />
+<TGConnectingPoint num="1" id="730" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="734" >
+<cdparam x="288" y="1026" />
+<sizeparam width="117" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =10" />
+<TGConnectingPoint num="0" id="732" />
+<TGConnectingPoint num="1" id="733" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="736" >
+<cdparam x="334" y="1229" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="735" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="739" >
+<cdparam x="397" y="941" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="737" />
+<TGConnectingPoint num="1" id="738" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="742" >
+<cdparam x="304" y="900" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="740" />
+<TGConnectingPoint num="1" id="741" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="744" >
+<cdparam x="789" y="1270" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="743" />
+</COMPONENT>
+
+<COMPONENT type="301" id="761" >
+<cdparam x="998" y="850" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Fin
+" />
+<TGConnectingPoint num="0" id="745" />
+<TGConnectingPoint num="1" id="746" />
+<TGConnectingPoint num="2" id="747" />
+<TGConnectingPoint num="3" id="748" />
+<TGConnectingPoint num="4" id="749" />
+<TGConnectingPoint num="5" id="750" />
+<TGConnectingPoint num="6" id="751" />
+<TGConnectingPoint num="7" id="752" />
+<TGConnectingPoint num="8" id="753" />
+<TGConnectingPoint num="9" id="754" />
+<TGConnectingPoint num="10" id="755" />
+<TGConnectingPoint num="11" id="756" />
+<TGConnectingPoint num="12" id="757" />
+<TGConnectingPoint num="13" id="758" />
+<TGConnectingPoint num="14" id="759" />
+<TGConnectingPoint num="15" id="760" />
+<extraparam>
+<Line value="Fin" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="764" >
+<cdparam x="674" y="965" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =1" />
+<TGConnectingPoint num="0" id="762" />
+<TGConnectingPoint num="1" id="763" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="766" >
+<cdparam x="718" y="1032" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="765" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="769" >
+<cdparam x="758" y="1086" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="767" />
+<TGConnectingPoint num="1" id="768" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="786" >
+<cdparam x="781" y="950" />
+<sizeparam width="94" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Active Open
+" />
+<TGConnectingPoint num="0" id="770" />
+<TGConnectingPoint num="1" id="771" />
+<TGConnectingPoint num="2" id="772" />
+<TGConnectingPoint num="3" id="773" />
+<TGConnectingPoint num="4" id="774" />
+<TGConnectingPoint num="5" id="775" />
+<TGConnectingPoint num="6" id="776" />
+<TGConnectingPoint num="7" id="777" />
+<TGConnectingPoint num="8" id="778" />
+<TGConnectingPoint num="9" id="779" />
+<TGConnectingPoint num="10" id="780" />
+<TGConnectingPoint num="11" id="781" />
+<TGConnectingPoint num="12" id="782" />
+<TGConnectingPoint num="13" id="783" />
+<TGConnectingPoint num="14" id="784" />
+<TGConnectingPoint num="15" id="785" />
+<extraparam>
+<Line value="Active Open" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="803" >
+<cdparam x="715" y="907" />
+<sizeparam width="104" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Passive Open
+" />
+<TGConnectingPoint num="0" id="787" />
+<TGConnectingPoint num="1" id="788" />
+<TGConnectingPoint num="2" id="789" />
+<TGConnectingPoint num="3" id="790" />
+<TGConnectingPoint num="4" id="791" />
+<TGConnectingPoint num="5" id="792" />
+<TGConnectingPoint num="6" id="793" />
+<TGConnectingPoint num="7" id="794" />
+<TGConnectingPoint num="8" id="795" />
+<TGConnectingPoint num="9" id="796" />
+<TGConnectingPoint num="10" id="797" />
+<TGConnectingPoint num="11" id="798" />
+<TGConnectingPoint num="12" id="799" />
+<TGConnectingPoint num="13" id="800" />
+<TGConnectingPoint num="14" id="801" />
+<TGConnectingPoint num="15" id="802" />
+<extraparam>
+<Line value="Passive Open" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="806" >
+<cdparam x="745" y="1193" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =3" />
+<TGConnectingPoint num="0" id="804" />
+<TGConnectingPoint num="1" id="805" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="809" >
+<cdparam x="442" y="768" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="807" />
+<TGConnectingPoint num="1" id="808" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="811" >
+<cdparam x="486" y="830" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="810" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="814" >
+<cdparam x="901" y="1123" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="812" />
+<TGConnectingPoint num="1" id="813" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="831" >
+<cdparam x="884" y="1068" />
+<sizeparam width="115" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="send Ack of Fin
+" />
+<TGConnectingPoint num="0" id="815" />
+<TGConnectingPoint num="1" id="816" />
+<TGConnectingPoint num="2" id="817" />
+<TGConnectingPoint num="3" id="818" />
+<TGConnectingPoint num="4" id="819" />
+<TGConnectingPoint num="5" id="820" />
+<TGConnectingPoint num="6" id="821" />
+<TGConnectingPoint num="7" id="822" />
+<TGConnectingPoint num="8" id="823" />
+<TGConnectingPoint num="9" id="824" />
+<TGConnectingPoint num="10" id="825" />
+<TGConnectingPoint num="11" id="826" />
+<TGConnectingPoint num="12" id="827" />
+<TGConnectingPoint num="13" id="828" />
+<TGConnectingPoint num="14" id="829" />
+<TGConnectingPoint num="15" id="830" />
+<extraparam>
+<Line value="send Ack of Fin" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="834" >
+<cdparam x="889" y="1234" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =9" />
+<TGConnectingPoint num="0" id="832" />
+<TGConnectingPoint num="1" id="833" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="836" >
+<cdparam x="933" y="1311" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="835" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="839" >
+<cdparam x="1007" y="1155" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="837" />
+<TGConnectingPoint num="1" id="838" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="856" >
+<cdparam x="1000" y="1094" />
+<sizeparam width="115" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="send Ack of Fin
+" />
+<TGConnectingPoint num="0" id="840" />
+<TGConnectingPoint num="1" id="841" />
+<TGConnectingPoint num="2" id="842" />
+<TGConnectingPoint num="3" id="843" />
+<TGConnectingPoint num="4" id="844" />
+<TGConnectingPoint num="5" id="845" />
+<TGConnectingPoint num="6" id="846" />
+<TGConnectingPoint num="7" id="847" />
+<TGConnectingPoint num="8" id="848" />
+<TGConnectingPoint num="9" id="849" />
+<TGConnectingPoint num="10" id="850" />
+<TGConnectingPoint num="11" id="851" />
+<TGConnectingPoint num="12" id="852" />
+<TGConnectingPoint num="13" id="853" />
+<TGConnectingPoint num="14" id="854" />
+<TGConnectingPoint num="15" id="855" />
+<extraparam>
+<Line value="send Ack of Fin" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="859" >
+<cdparam x="995" y="1266" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =7" />
+<TGConnectingPoint num="0" id="857" />
+<TGConnectingPoint num="1" id="858" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="861" >
+<cdparam x="1039" y="1341" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="860" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="864" >
+<cdparam x="680" y="758" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="862" />
+<TGConnectingPoint num="1" id="863" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="866" >
+<cdparam x="712" y="865" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="865" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="869" >
+<cdparam x="92" y="1100" />
+<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="867" />
+<TGConnectingPoint num="1" id="868" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="872" >
+<cdparam x="102" y="1167" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="870" />
+<TGConnectingPoint num="1" id="871" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="874" >
+<cdparam x="122" y="1236" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="873" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="877" >
+<cdparam x="189" y="1102" />
+<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="875" />
+<TGConnectingPoint num="1" id="876" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="880" >
+<cdparam x="199" y="1169" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="878" />
+<TGConnectingPoint num="1" id="879" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="883" >
+<cdparam x="306" y="1106" />
+<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="881" />
+<TGConnectingPoint num="1" id="882" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="886" >
+<cdparam x="316" y="1173" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="884" />
+<TGConnectingPoint num="1" id="885" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="889" >
+<cdparam x="398" y="1090" />
+<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="887" />
+<TGConnectingPoint num="1" id="888" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="892" >
+<cdparam x="408" y="1159" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="890" />
+<TGConnectingPoint num="1" id="891" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="895" >
+<cdparam x="52" y="861" />
+<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="893" />
+<TGConnectingPoint num="1" id="894" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="898" >
+<cdparam x="150" y="940" />
+<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="896" />
+<TGConnectingPoint num="1" id="897" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="901" >
+<cdparam x="359" y="865" />
+<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="899" />
+<TGConnectingPoint num="1" id="900" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="904" >
+<cdparam x="266" y="831" />
+<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="902" />
+<TGConnectingPoint num="1" id="903" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="907" >
+<cdparam x="204" y="1052" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="905" />
+<TGConnectingPoint num="1" id="906" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="910" >
+<cdparam x="321" y="962" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="908" />
+<TGConnectingPoint num="1" id="909" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="913" >
+<cdparam x="413" y="983" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="911" />
+<TGConnectingPoint num="1" id="912" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="916" >
+<cdparam x="107" y="986" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="914" />
+<TGConnectingPoint num="1" id="915" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="919" >
+<cdparam x="697" y="813" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="917" />
+<TGConnectingPoint num="1" id="918" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="922" >
+<cdparam x="773" y="1141" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="920" />
+<TGConnectingPoint num="1" id="921" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="925" >
+<cdparam x="918" y="1178" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="923" />
+<TGConnectingPoint num="1" id="924" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="928" >
+<cdparam x="1024" y="1211" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="926" />
+<TGConnectingPoint num="1" id="927" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="930" >
+<cdparam x="612" y="762" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="929" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="932" >
+<cdparam x="899" y="922" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="931" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="935" >
+<cdparam x="1166" y="1214" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="933" />
+<TGConnectingPoint num="1" id="934" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="952" >
+<cdparam x="1159" y="1153" />
+<sizeparam width="115" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="send Ack of Fin
+" />
+<TGConnectingPoint num="0" id="936" />
+<TGConnectingPoint num="1" id="937" />
+<TGConnectingPoint num="2" id="938" />
+<TGConnectingPoint num="3" id="939" />
+<TGConnectingPoint num="4" id="940" />
+<TGConnectingPoint num="5" id="941" />
+<TGConnectingPoint num="6" id="942" />
+<TGConnectingPoint num="7" id="943" />
+<TGConnectingPoint num="8" id="944" />
+<TGConnectingPoint num="9" id="945" />
+<TGConnectingPoint num="10" id="946" />
+<TGConnectingPoint num="11" id="947" />
+<TGConnectingPoint num="12" id="948" />
+<TGConnectingPoint num="13" id="949" />
+<TGConnectingPoint num="14" id="950" />
+<TGConnectingPoint num="15" id="951" />
+<extraparam>
+<Line value="send Ack of Fin" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="955" >
+<cdparam x="1154" y="1295" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =8" />
+<TGConnectingPoint num="0" id="953" />
+<TGConnectingPoint num="1" id="954" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="957" >
+<cdparam x="1197" y="1471" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="956" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="960" >
+<cdparam x="1153" y="1402" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="958" />
+<TGConnectingPoint num="1" id="959" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="963" >
+<cdparam x="1183" y="1351" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="961" />
+<TGConnectingPoint num="1" id="962" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="965" >
+<cdparam x="1277" y="1070" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="964" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="967" >
+<cdparam x="1519" y="1457" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="966" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="970" >
+<cdparam x="1487" y="1132" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoA(1)" />
+<TGConnectingPoint num="0" id="968" />
+<TGConnectingPoint num="1" id="969" />
+<extraparam>
+<Data channelName="fromTtoA" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="973" >
+<cdparam x="1487" y="1348" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="971" />
+<TGConnectingPoint num="1" id="972" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="976" >
+<cdparam x="1707" y="1026" />
+<sizeparam width="48" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="stop()" />
+<TGConnectingPoint num="0" id="974" />
+<TGConnectingPoint num="1" id="975" />
+<extraparam>
+<Data eventName="stop" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="993" >
+<cdparam x="1759" y="1192" />
+<sizeparam width="92" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Correct ack
+" />
+<TGConnectingPoint num="0" id="977" />
+<TGConnectingPoint num="1" id="978" />
+<TGConnectingPoint num="2" id="979" />
+<TGConnectingPoint num="3" id="980" />
+<TGConnectingPoint num="4" id="981" />
+<TGConnectingPoint num="5" id="982" />
+<TGConnectingPoint num="6" id="983" />
+<TGConnectingPoint num="7" id="984" />
+<TGConnectingPoint num="8" id="985" />
+<TGConnectingPoint num="9" id="986" />
+<TGConnectingPoint num="10" id="987" />
+<TGConnectingPoint num="11" id="988" />
+<TGConnectingPoint num="12" id="989" />
+<TGConnectingPoint num="13" id="990" />
+<TGConnectingPoint num="14" id="991" />
+<TGConnectingPoint num="15" id="992" />
+<extraparam>
+<Line value="Correct ack" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="1010" >
+<cdparam x="1635" y="1168" />
+<sizeparam width="76" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="false ack
+" />
+<TGConnectingPoint num="0" id="994" />
+<TGConnectingPoint num="1" id="995" />
+<TGConnectingPoint num="2" id="996" />
+<TGConnectingPoint num="3" id="997" />
+<TGConnectingPoint num="4" id="998" />
+<TGConnectingPoint num="5" id="999" />
+<TGConnectingPoint num="6" id="1000" />
+<TGConnectingPoint num="7" id="1001" />
+<TGConnectingPoint num="8" id="1002" />
+<TGConnectingPoint num="9" id="1003" />
+<TGConnectingPoint num="10" id="1004" />
+<TGConnectingPoint num="11" id="1005" />
+<TGConnectingPoint num="12" id="1006" />
+<TGConnectingPoint num="13" id="1007" />
+<TGConnectingPoint num="14" id="1008" />
+<TGConnectingPoint num="15" id="1009" />
+<extraparam>
+<Line value="false ack" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="1013" >
+<cdparam x="1599" y="1299" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="1011" />
+<TGConnectingPoint num="1" id="1012" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1015" >
+<cdparam x="1632" y="1468" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1014" />
+</COMPONENT>
+
+<COMPONENT type="301" id="1032" >
+<cdparam x="1469" y="1295" />
+<sizeparam width="137" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="return acknowldge
+" />
+<TGConnectingPoint num="0" id="1016" />
+<TGConnectingPoint num="1" id="1017" />
+<TGConnectingPoint num="2" id="1018" />
+<TGConnectingPoint num="3" id="1019" />
+<TGConnectingPoint num="4" id="1020" />
+<TGConnectingPoint num="5" id="1021" />
+<TGConnectingPoint num="6" id="1022" />
+<TGConnectingPoint num="7" id="1023" />
+<TGConnectingPoint num="8" id="1024" />
+<TGConnectingPoint num="9" id="1025" />
+<TGConnectingPoint num="10" id="1026" />
+<TGConnectingPoint num="11" id="1027" />
+<TGConnectingPoint num="12" id="1028" />
+<TGConnectingPoint num="13" id="1029" />
+<TGConnectingPoint num="14" id="1030" />
+<TGConnectingPoint num="15" id="1031" />
+<extraparam>
+<Line value="return acknowldge" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="1049" >
+<cdparam x="1620" y="927" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="data
+" />
+<TGConnectingPoint num="0" id="1033" />
+<TGConnectingPoint num="1" id="1034" />
+<TGConnectingPoint num="2" id="1035" />
+<TGConnectingPoint num="3" id="1036" />
+<TGConnectingPoint num="4" id="1037" />
+<TGConnectingPoint num="5" id="1038" />
+<TGConnectingPoint num="6" id="1039" />
+<TGConnectingPoint num="7" id="1040" />
+<TGConnectingPoint num="8" id="1041" />
+<TGConnectingPoint num="9" id="1042" />
+<TGConnectingPoint num="10" id="1043" />
+<TGConnectingPoint num="11" id="1044" />
+<TGConnectingPoint num="12" id="1045" />
+<TGConnectingPoint num="13" id="1046" />
+<TGConnectingPoint num="14" id="1047" />
+<TGConnectingPoint num="15" id="1048" />
+<extraparam>
+<Line value="data" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="1052" >
+<cdparam x="1504" y="1405" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1050" />
+<TGConnectingPoint num="1" id="1051" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="1055" >
+<cdparam x="1617" y="1348" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1053" />
+<TGConnectingPoint num="1" id="1054" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="1058" >
+<cdparam x="1612" y="1404" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="1056" />
+<TGConnectingPoint num="1" id="1057" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1060" >
+<cdparam x="1730" y="1335" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1059" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="1063" >
+<cdparam x="1772" y="1349" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =4" />
+<TGConnectingPoint num="0" id="1061" />
+<TGConnectingPoint num="1" id="1062" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1065" >
+<cdparam x="1818" y="1457" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1064" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="1068" >
+<cdparam x="1866" y="1411" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =6" />
+<TGConnectingPoint num="0" id="1066" />
+<TGConnectingPoint num="1" id="1067" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1070" >
+<cdparam x="1910" y="1481" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1069" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1072" >
+<cdparam x="1986" y="1543" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1071" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="1075" >
+<cdparam x="2047" y="1466" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="1073" />
+<TGConnectingPoint num="1" id="1074" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1077" >
+<cdparam x="2091" y="1537" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1076" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="1080" >
+<cdparam x="1942" y="1493" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="1078" />
+<TGConnectingPoint num="1" id="1079" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="1083" >
+<cdparam x="1942" y="1434" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =8" />
+<TGConnectingPoint num="0" id="1081" />
+<TGConnectingPoint num="1" id="1082" />
+</COMPONENT>
+
+<COMPONENT type="301" id="1100" >
+<cdparam x="1825" y="889" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Syn
+" />
+<TGConnectingPoint num="0" id="1084" />
+<TGConnectingPoint num="1" id="1085" />
+<TGConnectingPoint num="2" id="1086" />
+<TGConnectingPoint num="3" id="1087" />
+<TGConnectingPoint num="4" id="1088" />
+<TGConnectingPoint num="5" id="1089" />
+<TGConnectingPoint num="6" id="1090" />
+<TGConnectingPoint num="7" id="1091" />
+<TGConnectingPoint num="8" id="1092" />
+<TGConnectingPoint num="9" id="1093" />
+<TGConnectingPoint num="10" id="1094" />
+<TGConnectingPoint num="11" id="1095" />
+<TGConnectingPoint num="12" id="1096" />
+<TGConnectingPoint num="13" id="1097" />
+<TGConnectingPoint num="14" id="1098" />
+<TGConnectingPoint num="15" id="1099" />
+<extraparam>
+<Line value="Syn" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="1117" >
+<cdparam x="1707" y="945" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="ack
+" />
+<TGConnectingPoint num="0" id="1101" />
+<TGConnectingPoint num="1" id="1102" />
+<TGConnectingPoint num="2" id="1103" />
+<TGConnectingPoint num="3" id="1104" />
+<TGConnectingPoint num="4" id="1105" />
+<TGConnectingPoint num="5" id="1106" />
+<TGConnectingPoint num="6" id="1107" />
+<TGConnectingPoint num="7" id="1108" />
+<TGConnectingPoint num="8" id="1109" />
+<TGConnectingPoint num="9" id="1110" />
+<TGConnectingPoint num="10" id="1111" />
+<TGConnectingPoint num="11" id="1112" />
+<TGConnectingPoint num="12" id="1113" />
+<TGConnectingPoint num="13" id="1114" />
+<TGConnectingPoint num="14" id="1115" />
+<TGConnectingPoint num="15" id="1116" />
+<extraparam>
+<Line value="ack" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="1120" >
+<cdparam x="2176" y="1198" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="1118" />
+<TGConnectingPoint num="1" id="1119" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1122" >
+<cdparam x="2207" y="1483" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1121" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="1125" >
+<cdparam x="2177" y="1298" />
+<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="1123" />
+<TGConnectingPoint num="1" id="1124" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="1128" >
+<cdparam x="2187" y="1365" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="1126" />
+<TGConnectingPoint num="1" id="1127" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="1131" >
+<cdparam x="2138" y="1136" />
+<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="1129" />
+<TGConnectingPoint num="1" id="1130" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1134" >
+<cdparam x="2192" y="1248" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1132" />
+<TGConnectingPoint num="1" id="1133" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="1137" >
+<cdparam x="2163" y="1424" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =2" />
+<TGConnectingPoint num="0" id="1135" />
+<TGConnectingPoint num="1" id="1136" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="1140" >
+<cdparam x="2299" y="1122" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="1138" />
+<TGConnectingPoint num="1" id="1139" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="1157" >
+<cdparam x="2283" y="1065" />
+<sizeparam width="121" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="send Ack of SYN
+" />
+<TGConnectingPoint num="0" id="1141" />
+<TGConnectingPoint num="1" id="1142" />
+<TGConnectingPoint num="2" id="1143" />
+<TGConnectingPoint num="3" id="1144" />
+<TGConnectingPoint num="4" id="1145" />
+<TGConnectingPoint num="5" id="1146" />
+<TGConnectingPoint num="6" id="1147" />
+<TGConnectingPoint num="7" id="1148" />
+<TGConnectingPoint num="8" id="1149" />
+<TGConnectingPoint num="9" id="1150" />
+<TGConnectingPoint num="10" id="1151" />
+<TGConnectingPoint num="11" id="1152" />
+<TGConnectingPoint num="12" id="1153" />
+<TGConnectingPoint num="13" id="1154" />
+<TGConnectingPoint num="14" id="1155" />
+<TGConnectingPoint num="15" id="1156" />
+<extraparam>
+<Line value="send Ack of SYN" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="1160" >
+<cdparam x="2287" y="1267" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =2" />
+<TGConnectingPoint num="0" id="1158" />
+<TGConnectingPoint num="1" id="1159" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1162" >
+<cdparam x="2330" y="1324" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1161" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1165" >
+<cdparam x="2316" y="1199" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1163" />
+<TGConnectingPoint num="1" id="1164" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1167" >
+<cdparam x="1649" y="1057" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1166" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1169" >
+<cdparam x="2168" y="1421" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1168" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1171" >
+<cdparam x="2268" y="1039" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1170" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1174" >
+<cdparam x="1459" y="1192" />
+<sizeparam width="140" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="receive_Application()" />
+<TGConnectingPoint num="0" id="1172" />
+<TGConnectingPoint num="1" id="1173" />
+<extraparam>
+<Data eventName="receive_Application" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1009" id="1177" >
+<cdparam x="1699" y="1086" />
+<sizeparam width="64" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="read channel" value="temp(1) " />
+<TGConnectingPoint num="0" id="1175" />
+<TGConnectingPoint num="1" id="1176" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="115" id="1178" >
+<cdparam x="1048" y="795" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1048" y="795" id="568" />
+<P2  x="1728" y="865" id="490" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1179" >
+<cdparam x="1048" y="795" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1089" y="954" id="540" />
+<P2  x="1208" y="1010" id="510" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1180" >
+<cdparam x="1008" y="610" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to execI" value="null" />
+<P1  x="1008" y="610" id="644" />
+<P2  x="1008" y="696" id="572" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1181" >
+<cdparam x="722" y="614" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to execI" value="null" />
+<P1  x="722" y="614" id="659" />
+<P2  x="722" y="689" id="528" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1182" >
+<cdparam x="504" y="597" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="504" y="597" id="608" />
+<P2  x="572" y="702" id="522" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1183" >
+<cdparam x="464" y="637" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="464" y="637" id="609" />
+<P2  x="439" y="778" id="576" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1184" >
+<cdparam x="424" y="597" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="424" y="597" id="607" />
+<P2  x="346" y="759" id="556" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1185" >
+<cdparam x="289" y="619" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to read channel" value="null" />
+<P1  x="289" y="619" id="617" />
+<P2  x="230" y="803" id="713" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1186" >
+<cdparam x="249" y="579" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="249" y="579" id="615" />
+<P2  x="132" y="789" id="560" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1187" >
+<cdparam x="371" y="93" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from for loop to notified event" value="null" />
+<P1  x="325" y="99" id="647" />
+<P2  x="374" y="128" id="655" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1188" >
+<cdparam x="234" y="169" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="234" y="169" id="653" />
+<P2  x="234" y="202" id="650" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1189" >
+<cdparam x="234" y="104" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from for loop to action state" value="null" />
+<P1  x="235" y="110" id="648" />
+<P2  x="234" y="139" id="652" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1190" >
+<cdparam x="234" y="47" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to for loop" value="null" />
+<P1  x="234" y="47" id="619" />
+<P2  x="235" y="80" id="646" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1191" >
+<cdparam x="425" y="162" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from notified event to choice" value="null" />
+<P1  x="374" y="158" id="656" />
+<P2  x="374" y="182" id="598" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1192" >
+<cdparam x="564" y="482" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="464" y="322" id="682" />
+<P2  x="722" y="529" id="661" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1193" >
+<cdparam x="722" y="559" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="722" y="559" id="662" />
+<P2  x="722" y="584" id="658" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1194" >
+<cdparam x="604" y="442" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="504" y="282" id="678" />
+<P2  x="1008" y="523" id="664" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1195" >
+<cdparam x="1007" y="553" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="1008" y="553" id="665" />
+<P2  x="1008" y="580" id="643" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1196" >
+<cdparam x="524" y="442" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="464" y="322" id="679" />
+<P2  x="464" y="487" id="667" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1197" >
+<cdparam x="330" y="428" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="424" y="282" id="680" />
+<P2  x="289" y="463" id="670" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1198" >
+<cdparam x="318" y="520" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to choice" value="null" />
+<P1  x="289" y="493" id="671" />
+<P2  x="289" y="554" id="614" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1199" >
+<cdparam x="160" y="481" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="148" y="501" id="591" />
+<P2  x="126" y="544" id="638" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1200" >
+<cdparam x="290" y="388" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="424" y="282" id="677" />
+<P2  x="188" y="414" id="673" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1201" >
+<cdparam x="229" y="467" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to choice" value="null" />
+<P1  x="188" y="444" id="674" />
+<P2  x="188" y="476" id="590" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1202" >
+<cdparam x="228" y="501" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="228" y="501" id="592" />
+<P2  x="236" y="524" id="687" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1203" >
+<cdparam x="334" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="334" y="207" id="599" />
+<P2  x="301" y="223" id="691" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1204" >
+<cdparam x="301" y="253" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to stop state" value="null" />
+<P1  x="301" y="253" id="692" />
+<P2  x="301" y="285" id="694" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1205" >
+<cdparam x="464" y="517" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to choice" value="null" />
+<P1  x="464" y="517" id="668" />
+<P2  x="464" y="572" id="606" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1206" >
+<cdparam x="329" y="579" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="329" y="579" id="616" />
+<P2  x="353" y="609" id="689" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1207" >
+<cdparam x="126" y="574" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="126" y="574" id="639" />
+<P2  x="126" y="610" id="641" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1208" >
+<cdparam x="414" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to select" value="null" />
+<P1  x="414" y="207" id="600" />
+<P2  x="464" y="257" id="676" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1209" >
+<cdparam x="230" y="833" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to execI" value="null" />
+<P1  x="230" y="833" id="714" />
+<P2  x="230" y="858" id="580" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1210" >
+<cdparam x="716" y="749" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="968" y="795" id="567" />
+<P2  x="843" y="859" id="550" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1211" >
+<cdparam x="720" y="1074" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="728" y="990" id="763" />
+<P2  x="728" y="1027" id="765" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1212" >
+<cdparam x="733" y="899" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="803" y="884" id="551" />
+<P2  x="728" y="960" id="762" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1213" >
+<cdparam x="800" y="938" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="843" y="924" id="553" />
+<P2  x="800" y="1004" id="544" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1214" >
+<cdparam x="800" y="1057" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="800" y="1044" id="545" />
+<P2  x="800" y="1081" id="767" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1215" >
+<cdparam x="132" y="886" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="132" y="886" id="894" />
+<P2  x="132" y="933" id="729" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1216" >
+<cdparam x="943" y="1061" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="943" y="1060" id="533" />
+<P2  x="943" y="1118" id="812" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1217" >
+<cdparam x="1049" y="1093" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1049" y="1092" id="585" />
+<P2  x="1049" y="1150" id="837" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1218" >
+<cdparam x="1049" y="994" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1049" y="994" id="541" />
+<P2  x="1049" y="1052" id="584" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1219" >
+<cdparam x="696" y="742" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="722" y="729" id="529" />
+<P2  x="722" y="753" id="862" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1220" >
+<cdparam x="132" y="1125" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="132" y="1125" id="868" />
+<P2  x="132" y="1162" id="870" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1221" >
+<cdparam x="132" y="1192" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="132" y="1192" id="871" />
+<P2  x="132" y="1231" id="873" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1222" >
+<cdparam x="132" y="1066" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to send request" value="null" />
+<P1  x="132" y="1066" id="727" />
+<P2  x="132" y="1095" id="867" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1223" >
+<cdparam x="229" y="1127" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="229" y="1127" id="876" />
+<P2  x="229" y="1164" id="878" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1224" >
+<cdparam x="346" y="1131" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="346" y="1131" id="882" />
+<P2  x="346" y="1168" id="884" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1225" >
+<cdparam x="346" y="1051" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to send request" value="null" />
+<P1  x="346" y="1051" id="733" />
+<P2  x="346" y="1101" id="881" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1226" >
+<cdparam x="437" y="1118" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="438" y="1115" id="888" />
+<P2  x="438" y="1154" id="890" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1227" >
+<cdparam x="438" y="1057" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to send request" value="null" />
+<P1  x="438" y="1057" id="722" />
+<P2  x="438" y="1085" id="887" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1228" >
+<cdparam x="132" y="808" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="132" y="829" id="561" />
+<P2  x="132" y="856" id="893" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1229" >
+<cdparam x="230" y="898" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="230" y="898" id="581" />
+<P2  x="230" y="935" id="896" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1230" >
+<cdparam x="230" y="965" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="230" y="965" id="897" />
+<P2  x="230" y="997" id="716" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1231" >
+<cdparam x="346" y="799" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="346" y="799" id="557" />
+<P2  x="346" y="826" id="902" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1232" >
+<cdparam x="346" y="856" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="346" y="856" id="903" />
+<P2  x="346" y="895" id="740" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1233" >
+<cdparam x="439" y="818" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="439" y="818" id="577" />
+<P2  x="439" y="860" id="899" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1234" >
+<cdparam x="439" y="890" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="439" y="890" id="900" />
+<P2  x="439" y="936" id="737" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1235" >
+<cdparam x="132" y="963" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="132" y="963" id="730" />
+<P2  x="132" y="981" id="914" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1236" >
+<cdparam x="132" y="1011" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="132" y="1011" id="915" />
+<P2  x="132" y="1036" id="726" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1237" >
+<cdparam x="230" y="1027" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="230" y="1027" id="717" />
+<P2  x="229" y="1047" id="905" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1238" >
+<cdparam x="228" y="1088" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to send request" value="null" />
+<P1  x="229" y="1077" id="906" />
+<P2  x="229" y="1097" id="875" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1239" >
+<cdparam x="346" y="925" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="346" y="925" id="741" />
+<P2  x="346" y="957" id="908" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1240" >
+<cdparam x="348" y="987" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="346" y="987" id="909" />
+<P2  x="346" y="1021" id="732" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1241" >
+<cdparam x="439" y="966" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="439" y="966" id="738" />
+<P2  x="438" y="978" id="911" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1242" >
+<cdparam x="438" y="1008" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="438" y="1008" id="912" />
+<P2  x="438" y="1027" id="721" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1243" >
+<cdparam x="722" y="783" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="722" y="783" id="863" />
+<P2  x="722" y="808" id="917" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1244" >
+<cdparam x="722" y="838" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="722" y="838" id="918" />
+<P2  x="722" y="860" id="865" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1245" >
+<cdparam x="800" y="1111" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="800" y="1111" id="768" />
+<P2  x="798" y="1136" id="920" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1246" >
+<cdparam x="798" y="1166" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="798" y="1166" id="921" />
+<P2  x="799" y="1188" id="804" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1247" >
+<cdparam x="943" y="1148" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="943" y="1148" id="813" />
+<P2  x="943" y="1173" id="923" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1248" >
+<cdparam x="950" y="1201" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="943" y="1203" id="924" />
+<P2  x="943" y="1229" id="832" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1249" >
+<cdparam x="1049" y="1180" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="1049" y="1180" id="838" />
+<P2  x="1049" y="1206" id="926" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1250" >
+<cdparam x="1049" y="1223" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="1049" y="1236" id="927" />
+<P2  x="1049" y="1261" id="857" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1251" >
+<cdparam x="883" y="884" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="883" y="884" id="552" />
+<P2  x="909" y="917" id="931" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1252" >
+<cdparam x="612" y="727" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="612" y="727" id="524" />
+<P2  x="622" y="757" id="929" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1253" >
+<cdparam x="532" y="727" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="532" y="727" id="523" />
+<P2  x="496" y="763" id="807" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1254" >
+<cdparam x="799" y="1218" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="799" y="1218" id="805" />
+<P2  x="799" y="1265" id="743" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1255" >
+<cdparam x="1009" y="954" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1009" y="954" id="539" />
+<P2  x="943" y="1020" id="532" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1256" >
+<cdparam x="229" y="1194" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="229" y="1194" id="879" />
+<P2  x="229" y="1232" id="719" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1257" >
+<cdparam x="346" y="1198" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="346" y="1198" id="885" />
+<P2  x="344" y="1224" id="735" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1258" >
+<cdparam x="438" y="1184" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="438" y="1184" id="891" />
+<P2  x="438" y="1208" id="724" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1259" >
+<cdparam x="496" y="793" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="496" y="793" id="808" />
+<P2  x="496" y="825" id="810" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1260" >
+<cdparam x="943" y="1259" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="943" y="1259" id="833" />
+<P2  x="943" y="1306" id="835" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1261" >
+<cdparam x="1008" y="736" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to choice" value="null" />
+<P1  x="1008" y="736" id="573" />
+<P2  x="1008" y="770" id="566" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1262" >
+<cdparam x="1008" y="835" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1008" y="835" id="569" />
+<P2  x="1049" y="929" id="538" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1263" >
+<cdparam x="1049" y="1291" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1049" y="1291" id="858" />
+<P2  x="1049" y="1336" id="860" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1264" >
+<cdparam x="1208" y="1152" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1208" y="1142" id="517" />
+<P2  x="1208" y="1209" id="933" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1265" >
+<cdparam x="1208" y="1239" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to action state" value="null" />
+<P1  x="1208" y="1239" id="934" />
+<P2  x="1208" y="1290" id="953" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1266" >
+<cdparam x="1208" y="1320" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to send event" value="null" />
+<P1  x="1208" y="1320" id="954" />
+<P2  x="1208" y="1346" id="961" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1267" >
+<cdparam x="1206" y="1385" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="1208" y="1376" id="962" />
+<P2  x="1207" y="1397" id="958" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1268" >
+<cdparam x="1206" y="1088" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1208" y="1075" id="513" />
+<P2  x="1208" y="1102" id="516" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1269" >
+<cdparam x="1248" y="1035" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="1248" y="1035" id="512" />
+<P2  x="1287" y="1065" id="964" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1270" >
+<cdparam x="1207" y="1427" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1207" y="1427" id="959" />
+<P2  x="1207" y="1466" id="956" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1271" >
+<cdparam x="1553" y="1019" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1567" y="1021" id="483" />
+<P2  x="1529" y="1059" id="476" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1272" >
+<cdparam x="1529" y="1324" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1529" y="1289" id="473" />
+<P2  x="1529" y="1343" id="971" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1273" >
+<cdparam x="1684" y="929" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to send event" value="null" />
+<P1  x="1728" y="930" id="493" />
+<P2  x="1731" y="1021" id="974" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1274" >
+<cdparam x="1615" y="1283" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1641" y="1270" id="497" />
+<P2  x="1641" y="1294" id="1011" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1275" >
+<cdparam x="1641" y="1324" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="1641" y="1324" id="1012" />
+<P2  x="1642" y="1343" id="1053" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1276" >
+<cdparam x="1529" y="1373" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="1529" y="1373" id="972" />
+<P2  x="1529" y="1400" id="1050" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1277" >
+<cdparam x="1529" y="1422" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="1529" y="1430" id="1051" />
+<P2  x="1529" y="1452" id="966" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1278" >
+<cdparam x="1642" y="1373" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="1642" y="1373" id="1054" />
+<P2  x="1642" y="1399" id="1056" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1279" >
+<cdparam x="1956" y="1361" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="1956" y="1361" id="451" />
+<P2  x="1920" y="1406" id="1066" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1280" >
+<cdparam x="2100" y="1490" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="2101" y="1491" id="1074" />
+<P2  x="2101" y="1532" id="1076" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1281" >
+<cdparam x="1996" y="1401" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="1996" y="1401" id="453" />
+<P2  x="1996" y="1429" id="1081" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1282" >
+<cdparam x="1996" y="1459" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to action state" value="null" />
+<P1  x="1996" y="1459" id="1082" />
+<P2  x="1996" y="1488" id="1078" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1283" >
+<cdparam x="2021" y="1038" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="2237" y="966" id="443" />
+<P2  x="2218" y="1054" id="500" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1284" >
+<cdparam x="2217" y="1323" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="2217" y="1323" id="1124" />
+<P2  x="2217" y="1360" id="1126" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1285" >
+<cdparam x="2218" y="1094" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="2218" y="1094" id="501" />
+<P2  x="2218" y="1131" id="1129" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1286" >
+<cdparam x="2218" y="1161" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="2218" y="1161" id="1130" />
+<P2  x="2218" y="1193" id="1118" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1287" >
+<cdparam x="2218" y="1223" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="2218" y="1223" id="1119" />
+<P2  x="2217" y="1243" id="1132" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1288" >
+<cdparam x="2216" y="1284" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to send request" value="null" />
+<P1  x="2217" y="1273" id="1133" />
+<P2  x="2217" y="1293" id="1123" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1289" >
+<cdparam x="2217" y="1390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to action state" value="null" />
+<P1  x="2217" y="1390" id="1127" />
+<P2  x="2217" y="1419" id="1135" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1290" >
+<cdparam x="2341" y="1060" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="2341" y="1059" id="505" />
+<P2  x="2341" y="1117" id="1138" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1291" >
+<cdparam x="1529" y="1099" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1529" y="1099" id="477" />
+<P2  x="1529" y="1127" id="968" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1292" >
+<cdparam x="2101" y="1433" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="2101" y="1433" id="437" />
+<P2  x="2101" y="1461" id="1073" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1293" >
+<cdparam x="2158" y="1460" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="2141" y="1393" id="436" />
+<P2  x="2178" y="1416" id="1168" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1294" >
+<cdparam x="1688" y="890" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1688" y="890" id="491" />
+<P2  x="1607" y="996" id="482" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1295" >
+<cdparam x="1768" y="890" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1768" y="890" id="492" />
+<P2  x="2277" y="941" id="442" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1296" >
+<cdparam x="2317" y="966" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="2317" y="966" id="444" />
+<P2  x="2341" y="1019" id="504" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1297" >
+<cdparam x="2341" y="1147" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="2341" y="1147" id="1139" />
+<P2  x="2341" y="1194" id="1163" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1298" >
+<cdparam x="2341" y="1224" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to send event" value="null" />
+<P1  x="2341" y="1224" id="1164" />
+<P2  x="2341" y="1262" id="1158" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1299" >
+<cdparam x="1731" y="1051" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to choice" value="null" />
+<P1  x="1731" y="1051" id="975" />
+<P2  x="1731" y="1081" id="1175" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1300" >
+<cdparam x="1647" y="1021" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="1647" y="1021" id="484" />
+<P2  x="1659" y="1052" id="1166" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1301" >
+<cdparam x="1826" y="1324" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="1826" y="1324" id="461" />
+<P2  x="1826" y="1344" id="1061" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1302" >
+<cdparam x="1826" y="1374" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1826" y="1374" id="1062" />
+<P2  x="1828" y="1452" id="1064" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1303" >
+<cdparam x="1786" y="1284" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="1786" y="1284" id="459" />
+<P2  x="1740" y="1330" id="1059" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1304" >
+<cdparam x="1920" y="1436" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1920" y="1436" id="1067" />
+<P2  x="1920" y="1476" id="1069" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1305" >
+<cdparam x="1996" y="1518" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1996" y="1518" id="1079" />
+<P2  x="1996" y="1538" id="1071" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1306" >
+<cdparam x="2036" y="1361" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="2036" y="1361" id="452" />
+<P2  x="2101" y="1368" id="434" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1307" >
+<cdparam x="1866" y="1284" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1866" y="1284" id="460" />
+<P2  x="1996" y="1336" id="450" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1308" >
+<cdparam x="2341" y="1292" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="2341" y="1292" id="1159" />
+<P2  x="2340" y="1319" id="1161" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1309" >
+<cdparam x="2217" y="1449" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="2217" y="1449" id="1136" />
+<P2  x="2217" y="1478" id="1121" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1310" >
+<cdparam x="2277" y="1006" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="2277" y="1006" id="445" />
+<P2  x="2278" y="1034" id="1170" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1311" >
+<cdparam x="1642" y="1429" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="1642" y="1429" id="1057" />
+<P2  x="1642" y="1463" id="1014" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1312" >
+<cdparam x="1529" y="1157" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="1529" y="1157" id="969" />
+<P2  x="1529" y="1187" id="1172" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1313" >
+<cdparam x="1529" y="1217" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to execI" value="null" />
+<P1  x="1529" y="1217" id="1173" />
+<P2  x="1529" y="1249" id="472" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1314" >
+<cdparam x="1691" y="1156" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1691" y="1156" id="467" />
+<P2  x="1641" y="1230" id="496" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1315" >
+<cdparam x="1771" y="1156" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1771" y="1156" id="468" />
+<P2  x="1826" y="1259" id="458" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1316" >
+<cdparam x="1731" y="1111" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to choice" value="null" />
+<P1  x="1731" y="1111" id="1176" />
+<P2  x="1731" y="1131" id="466" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="Timer" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1012" id="1324" >
+<cdparam x="509" y="222" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" 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="choice" value="null" />
+<TGConnectingPoint num="0" id="1320" />
+<TGConnectingPoint num="1" id="1321" />
+<TGConnectingPoint num="2" id="1322" />
+<TGConnectingPoint num="3" id="1323" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="1317" >
+<father id="1324" num="0" />
+<cdparam x="464" y="232" />
+<sizeparam width="52" height="15" minWidth="10" minHeight="0" 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="[ x==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1318" >
+<father id="1324" num="1" />
+<cdparam x="544" y="234" />
+<sizeparam width="42" height="15" minWidth="10" minHeight="0" 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="[ x&gt;0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1319" >
+<father id="1324" num="2" />
+<cdparam x="529" y="267" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="1326" >
+<cdparam x="517" y="87" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1325" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1328" >
+<cdparam x="417" y="367" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1327" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1331" >
+<cdparam x="393" y="299" />
+<sizeparam width="69" height="20" minWidth="30" minHeight="0" 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="send event" value="timeOut()" />
+<TGConnectingPoint num="0" id="1329" />
+<TGConnectingPoint num="1" id="1330" />
+<extraparam>
+<Data eventName="timeOut" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="1334" >
+<cdparam x="596" y="300" />
+<sizeparam width="52" height="20" minWidth="30" minHeight="0" 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="wait event" value="stop() " />
+<TGConnectingPoint num="0" id="1332" />
+<TGConnectingPoint num="1" id="1333" />
+<extraparam>
+<Data eventName="stop" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1336" >
+<cdparam x="612" y="365" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1335" />
+</COMPONENT>
+
+<COMPONENT type="1017" id="1339" >
+<cdparam x="487" y="150" />
+<sizeparam width="75" height="20" minWidth="30" minHeight="0" 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="notified event" value="x=?stop()" />
+<TGConnectingPoint num="0" id="1337" />
+<TGConnectingPoint num="1" id="1338" />
+<extraparam>
+<Data eventName="stop" variable="x" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="115" id="1340" >
+<cdparam x="427" y="324" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="427" y="324" id="1330" />
+<P2  x="427" y="362" id="1327" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1341" >
+<cdparam x="622" y="325" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to stop state" value="null" />
+<P1  x="622" y="325" id="1333" />
+<P2  x="622" y="360" id="1335" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1342" >
+<cdparam x="524" y="107" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to notified event" value="null" />
+<P1  x="524" y="107" id="1325" />
+<P2  x="524" y="145" id="1337" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1343" >
+<cdparam x="524" y="175" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from notified event to choice" value="null" />
+<P1  x="524" y="175" id="1338" />
+<P2  x="524" y="212" id="1320" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1344" >
+<cdparam x="484" y="237" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to send event" value="null" />
+<P1  x="484" y="237" id="1321" />
+<P2  x="427" y="294" id="1329" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1345" >
+<cdparam x="564" y="237" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="564" y="237" id="1322" />
+<P2  x="622" y="295" id="1332" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="Application" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1012" id="1353" >
+<cdparam x="491" y="277" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" 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="choice" value="null" />
+<TGConnectingPoint num="0" id="1349" />
+<TGConnectingPoint num="1" id="1350" />
+<TGConnectingPoint num="2" id="1351" />
+<TGConnectingPoint num="3" id="1352" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="1346" >
+<father id="1353" num="0" />
+<cdparam x="466" y="287" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1347" >
+<father id="1353" num="1" />
+<cdparam x="526" y="287" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1348" >
+<father id="1353" num="2" />
+<cdparam x="511" y="322" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="1355" >
+<cdparam x="501" y="91" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1354" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1358" >
+<cdparam x="482" y="129" />
+<sizeparam width="52" height="20" minWidth="30" minHeight="0" 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="send event" value="open()" />
+<TGConnectingPoint num="0" id="1356" />
+<TGConnectingPoint num="1" id="1357" />
+<extraparam>
+<Data eventName="open" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="1361" >
+<cdparam x="466" y="178" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" 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="write channel" value="fromAtoT(1)" />
+<TGConnectingPoint num="0" id="1359" />
+<TGConnectingPoint num="1" id="1360" />
+<extraparam>
+<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="1364" >
+<cdparam x="467" y="226" />
+<sizeparam width="80" height="20" minWidth="30" minHeight="0" 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="send event" value="send_TCP()" />
+<TGConnectingPoint num="0" id="1362" />
+<TGConnectingPoint num="1" id="1363" />
+<extraparam>
+<Data eventName="send_TCP" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1366" >
+<cdparam x="576" y="388" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1365" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1369" >
+<cdparam x="559" y="329" />
+<sizeparam width="54" height="20" minWidth="30" minHeight="0" 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="send event" value="abort()" />
+<TGConnectingPoint num="0" id="1367" />
+<TGConnectingPoint num="1" id="1368" />
+<extraparam>
+<Data eventName="abort" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="1372" >
+<cdparam x="406" y="337" />
+<sizeparam width="53" height="20" minWidth="30" minHeight="0" 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="send event" value="close()" />
+<TGConnectingPoint num="0" id="1370" />
+<TGConnectingPoint num="1" id="1371" />
+<extraparam>
+<Data eventName="close" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1374" >
+<cdparam x="422" y="386" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1373" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="1375" >
+<cdparam x="509" y="94" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to send event" value="null" />
+<P1  x="508" y="111" id="1354" />
+<P2  x="508" y="124" id="1356" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1376" >
+<cdparam x="508" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="508" y="154" id="1357" />
+<P2  x="508" y="173" id="1359" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1377" >
+<cdparam x="508" y="222" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="508" y="203" id="1360" />
+<P2  x="507" y="221" id="1362" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1378" >
+<cdparam x="586" y="354" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="586" y="354" id="1368" />
+<P2  x="586" y="383" id="1365" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1379" >
+<cdparam x="508" y="298" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to choice" value="null" />
+<P1  x="507" y="251" id="1363" />
+<P2  x="506" y="267" id="1349" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1380" >
+<cdparam x="470" y="348" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to send event" value="null" />
+<P1  x="466" y="292" id="1350" />
+<P2  x="432" y="332" id="1370" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1381" >
+<cdparam x="432" y="362" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="432" y="362" id="1371" />
+<P2  x="432" y="381" id="1373" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1382" >
+<cdparam x="550" y="348" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to send event" value="null" />
+<P1  x="546" y="292" id="1351" />
+<P2  x="586" y="324" id="1367" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Architecture" nameTab="Mapping1" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1100" id="1452" >
+<cdparam x="51" y="90" />
+<sizeparam width="459" height="321" minWidth="150" minHeight="150" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="cpu0" value="name" />
+<TGConnectingPoint num="0" id="1428" />
+<TGConnectingPoint num="1" id="1429" />
+<TGConnectingPoint num="2" id="1430" />
+<TGConnectingPoint num="3" id="1431" />
+<TGConnectingPoint num="4" id="1432" />
+<TGConnectingPoint num="5" id="1433" />
+<TGConnectingPoint num="6" id="1434" />
+<TGConnectingPoint num="7" id="1435" />
+<TGConnectingPoint num="8" id="1436" />
+<TGConnectingPoint num="9" id="1437" />
+<TGConnectingPoint num="10" id="1438" />
+<TGConnectingPoint num="11" id="1439" />
+<TGConnectingPoint num="12" id="1440" />
+<TGConnectingPoint num="13" id="1441" />
+<TGConnectingPoint num="14" id="1442" />
+<TGConnectingPoint num="15" id="1443" />
+<TGConnectingPoint num="16" id="1444" />
+<TGConnectingPoint num="17" id="1445" />
+<TGConnectingPoint num="18" id="1446" />
+<TGConnectingPoint num="19" id="1447" />
+<TGConnectingPoint num="20" id="1448" />
+<TGConnectingPoint num="21" id="1449" />
+<TGConnectingPoint num="22" id="1450" />
+<TGConnectingPoint num="23" id="1451" />
+<extraparam>
+<info stereotype="CPURRPB" nodeName="cpu0" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="1"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="99"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="1391" >
+<father id="1452" num="0" />
+<cdparam x="226" y="304" />
+<sizeparam width="109" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="350" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::Timer" />
+<TGConnectingPoint num="0" id="1383" />
+<TGConnectingPoint num="1" id="1384" />
+<TGConnectingPoint num="2" id="1385" />
+<TGConnectingPoint num="3" id="1386" />
+<TGConnectingPoint num="4" id="1387" />
+<TGConnectingPoint num="5" id="1388" />
+<TGConnectingPoint num="6" id="1389" />
+<TGConnectingPoint num="7" id="1390" />
+<extraparam>
+<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="1400" >
+<father id="1452" num="1" />
+<cdparam x="290" y="234" />
+<sizeparam width="144" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="315" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::Application" />
+<TGConnectingPoint num="0" id="1392" />
+<TGConnectingPoint num="1" id="1393" />
+<TGConnectingPoint num="2" id="1394" />
+<TGConnectingPoint num="3" id="1395" />
+<TGConnectingPoint num="4" id="1396" />
+<TGConnectingPoint num="5" id="1397" />
+<TGConnectingPoint num="6" id="1398" />
+<TGConnectingPoint num="7" id="1399" />
+<extraparam>
+<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="1409" >
+<father id="1452" num="2" />
+<cdparam x="96" y="246" />
+<sizeparam width="109" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="350" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::TCPIP" />
+<TGConnectingPoint num="0" id="1401" />
+<TGConnectingPoint num="1" id="1402" />
+<TGConnectingPoint num="2" id="1403" />
+<TGConnectingPoint num="3" id="1404" />
+<TGConnectingPoint num="4" id="1405" />
+<TGConnectingPoint num="5" id="1406" />
+<TGConnectingPoint num="6" id="1407" />
+<TGConnectingPoint num="7" id="1408" />
+<extraparam>
+<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="1418" >
+<father id="1452" num="3" />
+<cdparam x="291" y="153" />
+<sizeparam width="141" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="318" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::SmartCard" />
+<TGConnectingPoint num="0" id="1410" />
+<TGConnectingPoint num="1" id="1411" />
+<TGConnectingPoint num="2" id="1412" />
+<TGConnectingPoint num="3" id="1413" />
+<TGConnectingPoint num="4" id="1414" />
+<TGConnectingPoint num="5" id="1415" />
+<TGConnectingPoint num="6" id="1416" />
+<TGConnectingPoint num="7" id="1417" />
+<extraparam>
+<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="1427" >
+<father id="1452" num="4" />
+<cdparam x="92" y="154" />
+<sizeparam width="172" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="287" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::InterfaceDevice" />
+<TGConnectingPoint num="0" id="1419" />
+<TGConnectingPoint num="1" id="1420" />
+<TGConnectingPoint num="2" id="1421" />
+<TGConnectingPoint num="3" id="1422" />
+<TGConnectingPoint num="4" id="1423" />
+<TGConnectingPoint num="5" id="1424" />
+<TGConnectingPoint num="6" id="1425" />
+<TGConnectingPoint num="7" id="1426" />
+<extraparam>
+<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+
+</TMLArchiDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Architecture" nameTab="Mapping2" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1105" id="1477" >
+<cdparam x="420" y="527" />
+<sizeparam width="189" height="131" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Memory0" value="name" />
+<TGConnectingPoint num="0" id="1453" />
+<TGConnectingPoint num="1" id="1454" />
+<TGConnectingPoint num="2" id="1455" />
+<TGConnectingPoint num="3" id="1456" />
+<TGConnectingPoint num="4" id="1457" />
+<TGConnectingPoint num="5" id="1458" />
+<TGConnectingPoint num="6" id="1459" />
+<TGConnectingPoint num="7" id="1460" />
+<TGConnectingPoint num="8" id="1461" />
+<TGConnectingPoint num="9" id="1462" />
+<TGConnectingPoint num="10" id="1463" />
+<TGConnectingPoint num="11" id="1464" />
+<TGConnectingPoint num="12" id="1465" />
+<TGConnectingPoint num="13" id="1466" />
+<TGConnectingPoint num="14" id="1467" />
+<TGConnectingPoint num="15" id="1468" />
+<TGConnectingPoint num="16" id="1469" />
+<TGConnectingPoint num="17" id="1470" />
+<TGConnectingPoint num="18" id="1471" />
+<TGConnectingPoint num="19" id="1472" />
+<TGConnectingPoint num="20" id="1473" />
+<TGConnectingPoint num="21" id="1474" />
+<TGConnectingPoint num="22" id="1475" />
+<TGConnectingPoint num="23" id="1476" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="Memory0" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="0" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="1502" >
+<cdparam x="389" y="438" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Bus0" value="name" />
+<TGConnectingPoint num="0" id="1478" />
+<TGConnectingPoint num="1" id="1479" />
+<TGConnectingPoint num="2" id="1480" />
+<TGConnectingPoint num="3" id="1481" />
+<TGConnectingPoint num="4" id="1482" />
+<TGConnectingPoint num="5" id="1483" />
+<TGConnectingPoint num="6" id="1484" />
+<TGConnectingPoint num="7" id="1485" />
+<TGConnectingPoint num="8" id="1486" />
+<TGConnectingPoint num="9" id="1487" />
+<TGConnectingPoint num="10" id="1488" />
+<TGConnectingPoint num="11" id="1489" />
+<TGConnectingPoint num="12" id="1490" />
+<TGConnectingPoint num="13" id="1491" />
+<TGConnectingPoint num="14" id="1492" />
+<TGConnectingPoint num="15" id="1493" />
+<TGConnectingPoint num="16" id="1494" />
+<TGConnectingPoint num="17" id="1495" />
+<TGConnectingPoint num="18" id="1496" />
+<TGConnectingPoint num="19" id="1497" />
+<TGConnectingPoint num="20" id="1498" />
+<TGConnectingPoint num="21" id="1499" />
+<TGConnectingPoint num="22" id="1500" />
+<TGConnectingPoint num="23" id="1501" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="Bus0" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="5"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="1536" >
+<cdparam x="685" y="396" />
+<sizeparam width="174" height="135" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU2" value="name" />
+<TGConnectingPoint num="0" id="1512" />
+<TGConnectingPoint num="1" id="1513" />
+<TGConnectingPoint num="2" id="1514" />
+<TGConnectingPoint num="3" id="1515" />
+<TGConnectingPoint num="4" id="1516" />
+<TGConnectingPoint num="5" id="1517" />
+<TGConnectingPoint num="6" id="1518" />
+<TGConnectingPoint num="7" id="1519" />
+<TGConnectingPoint num="8" id="1520" />
+<TGConnectingPoint num="9" id="1521" />
+<TGConnectingPoint num="10" id="1522" />
+<TGConnectingPoint num="11" id="1523" />
+<TGConnectingPoint num="12" id="1524" />
+<TGConnectingPoint num="13" id="1525" />
+<TGConnectingPoint num="14" id="1526" />
+<TGConnectingPoint num="15" id="1527" />
+<TGConnectingPoint num="16" id="1528" />
+<TGConnectingPoint num="17" id="1529" />
+<TGConnectingPoint num="18" id="1530" />
+<TGConnectingPoint num="19" id="1531" />
+<TGConnectingPoint num="20" id="1532" />
+<TGConnectingPoint num="21" id="1533" />
+<TGConnectingPoint num="22" id="1534" />
+<TGConnectingPoint num="23" id="1535" />
+<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="4" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="1511" >
+<father id="1536" num="0" />
+<cdparam x="715" y="448" />
+<sizeparam width="109" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="65" minY="0" maxY="95" />
+<infoparam name="TGComponent" value="AppC::Timer" />
+<TGConnectingPoint num="0" id="1503" />
+<TGConnectingPoint num="1" id="1504" />
+<TGConnectingPoint num="2" id="1505" />
+<TGConnectingPoint num="3" id="1506" />
+<TGConnectingPoint num="4" id="1507" />
+<TGConnectingPoint num="5" id="1508" />
+<TGConnectingPoint num="6" id="1509" />
+<TGConnectingPoint num="7" id="1510" />
+<extraparam>
+<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1100" id="1570" >
+<cdparam x="167" y="400" />
+<sizeparam width="165" height="126" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU1" value="name" />
+<TGConnectingPoint num="0" id="1546" />
+<TGConnectingPoint num="1" id="1547" />
+<TGConnectingPoint num="2" id="1548" />
+<TGConnectingPoint num="3" id="1549" />
+<TGConnectingPoint num="4" id="1550" />
+<TGConnectingPoint num="5" id="1551" />
+<TGConnectingPoint num="6" id="1552" />
+<TGConnectingPoint num="7" id="1553" />
+<TGConnectingPoint num="8" id="1554" />
+<TGConnectingPoint num="9" id="1555" />
+<TGConnectingPoint num="10" id="1556" />
+<TGConnectingPoint num="11" id="1557" />
+<TGConnectingPoint num="12" id="1558" />
+<TGConnectingPoint num="13" id="1559" />
+<TGConnectingPoint num="14" id="1560" />
+<TGConnectingPoint num="15" id="1561" />
+<TGConnectingPoint num="16" id="1562" />
+<TGConnectingPoint num="17" id="1563" />
+<TGConnectingPoint num="18" id="1564" />
+<TGConnectingPoint num="19" id="1565" />
+<TGConnectingPoint num="20" id="1566" />
+<TGConnectingPoint num="21" id="1567" />
+<TGConnectingPoint num="22" id="1568" />
+<TGConnectingPoint num="23" id="1569" />
+<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="2" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="1545" >
+<father id="1570" num="0" />
+<cdparam x="167" y="445" />
+<sizeparam width="163" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2" minY="0" maxY="86" />
+<infoparam name="TGComponent" value="AppC::InterfaceDevice" />
+<TGConnectingPoint num="0" id="1537" />
+<TGConnectingPoint num="1" id="1538" />
+<TGConnectingPoint num="2" id="1539" />
+<TGConnectingPoint num="3" id="1540" />
+<TGConnectingPoint num="4" id="1541" />
+<TGConnectingPoint num="5" id="1542" />
+<TGConnectingPoint num="6" id="1543" />
+<TGConnectingPoint num="7" id="1544" />
+<extraparam>
+<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1100" id="1622" >
+<cdparam x="389" y="243" />
+<sizeparam width="250" height="146" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU0" value="name" />
+<TGConnectingPoint num="0" id="1598" />
+<TGConnectingPoint num="1" id="1599" />
+<TGConnectingPoint num="2" id="1600" />
+<TGConnectingPoint num="3" id="1601" />
+<TGConnectingPoint num="4" id="1602" />
+<TGConnectingPoint num="5" id="1603" />
+<TGConnectingPoint num="6" id="1604" />
+<TGConnectingPoint num="7" id="1605" />
+<TGConnectingPoint num="8" id="1606" />
+<TGConnectingPoint num="9" id="1607" />
+<TGConnectingPoint num="10" id="1608" />
+<TGConnectingPoint num="11" id="1609" />
+<TGConnectingPoint num="12" id="1610" />
+<TGConnectingPoint num="13" id="1611" />
+<TGConnectingPoint num="14" id="1612" />
+<TGConnectingPoint num="15" id="1613" />
+<TGConnectingPoint num="16" id="1614" />
+<TGConnectingPoint num="17" id="1615" />
+<TGConnectingPoint num="18" id="1616" />
+<TGConnectingPoint num="19" id="1617" />
+<TGConnectingPoint num="20" id="1618" />
+<TGConnectingPoint num="21" id="1619" />
+<TGConnectingPoint num="22" id="1620" />
+<TGConnectingPoint num="23" id="1621" />
+<extraparam>
+<info stereotype="CPURR" nodeName="CPU0" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="18" execiTime="1" execcTime="1" clockRatio="3" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="1579" >
+<father id="1622" num="0" />
+<cdparam x="486" y="303" />
+<sizeparam width="136" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="114" minY="0" maxY="106" />
+<infoparam name="TGComponent" value="AppC::SmartCard" />
+<TGConnectingPoint num="0" id="1571" />
+<TGConnectingPoint num="1" id="1572" />
+<TGConnectingPoint num="2" id="1573" />
+<TGConnectingPoint num="3" id="1574" />
+<TGConnectingPoint num="4" id="1575" />
+<TGConnectingPoint num="5" id="1576" />
+<TGConnectingPoint num="6" id="1577" />
+<TGConnectingPoint num="7" id="1578" />
+<extraparam>
+<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="1588" >
+<father id="1622" num="1" />
+<cdparam x="415" y="349" />
+<sizeparam width="139" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="111" minY="0" maxY="106" />
+<infoparam name="TGComponent" value="AppC::Application" />
+<TGConnectingPoint num="0" id="1580" />
+<TGConnectingPoint num="1" id="1581" />
+<TGConnectingPoint num="2" id="1582" />
+<TGConnectingPoint num="3" id="1583" />
+<TGConnectingPoint num="4" id="1584" />
+<TGConnectingPoint num="5" id="1585" />
+<TGConnectingPoint num="6" id="1586" />
+<TGConnectingPoint num="7" id="1587" />
+<extraparam>
+<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="1597" >
+<father id="1622" num="2" />
+<cdparam x="396" y="258" />
+<sizeparam width="108" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="142" minY="0" maxY="106" />
+<infoparam name="TGComponent" value="AppC::TCPIP" />
+<TGConnectingPoint num="0" id="1589" />
+<TGConnectingPoint num="1" id="1590" />
+<TGConnectingPoint num="2" id="1591" />
+<TGConnectingPoint num="3" id="1592" />
+<TGConnectingPoint num="4" id="1593" />
+<TGConnectingPoint num="5" id="1594" />
+<TGConnectingPoint num="6" id="1595" />
+<TGConnectingPoint num="7" id="1596" />
+<extraparam>
+<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="125" id="1623" >
+<cdparam x="513" y="536" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Memory0 to Bus0" value="{info}" />
+<P1  x="514" y="527" id="1454" />
+<P2  x="514" y="488" id="1484" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="1624" >
+<cdparam x="301" y="469" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU1 to Bus0" value="{info}" />
+<P1  x="332" y="463" id="1550" />
+<P2  x="389" y="463" id="1481" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="1625" >
+<cdparam x="773" y="479" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU2 to Bus0" value="{info}" />
+<P1  x="685" y="463" id="1515" />
+<P2  x="639" y="463" id="1482" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="1626" >
+<cdparam x="499" y="331" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU0 to Bus0" value="{info}" />
+<P1  x="514" y="389" id="1604" />
+<P2  x="514" y="438" id="1479" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+
+</TMLArchiDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="Diplodocus Methodology" nameTab="DIPLODOCUS_Methodology" >
+<DiplodocusMethodologyDiagramPanel name="DIPLODOCUS_Methodology" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="6003" id="1631" >
+<cdparam x="60" y="417" />
+<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Requirements" />
+<TGConnectingPoint num="0" id="1627" />
+<TGConnectingPoint num="1" id="1628" />
+<TGConnectingPoint num="2" id="1629" />
+<TGConnectingPoint num="3" id="1630" />
+</COMPONENT>
+
+<COMPONENT type="6006" id="1636" >
+<cdparam x="600" y="100" />
+<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Com. Patterns" />
+<TGConnectingPoint num="0" id="1632" />
+<TGConnectingPoint num="1" id="1633" />
+<TGConnectingPoint num="2" id="1634" />
+<TGConnectingPoint num="3" id="1635" />
+</COMPONENT>
+
+<COMPONENT type="6002" id="1645" >
+<cdparam x="518" y="306" />
+<sizeparam width="318" height="136" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Mapping" />
+<TGConnectingPoint num="0" id="1639" />
+<TGConnectingPoint num="1" id="1640" />
+<TGConnectingPoint num="2" id="1641" />
+<TGConnectingPoint num="3" id="1642" />
+<TGConnectingPoint num="4" id="1643" />
+<TGConnectingPoint num="5" id="1644" />
+</COMPONENT>
+<SUBCOMPONENT type="6005" id="1637" >
+<father id="1645" num="0" />
+<cdparam x="523" y="361" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="605" maxX="605" minY="355" maxY="355" />
+<infoparam name="value " value="Mapping2" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="6005" id="1638" >
+<father id="1645" num="1" />
+<cdparam x="523" y="346" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="605" maxX="605" minY="340" maxY="340" />
+<infoparam name="value " value="Mapping1" />
+</SUBCOMPONENT>
+
+<COMPONENT type="6001" id="1652" >
+<cdparam x="850" y="100" />
+<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Architecture" />
+<TGConnectingPoint num="0" id="1648" />
+<TGConnectingPoint num="1" id="1649" />
+<TGConnectingPoint num="2" id="1650" />
+<TGConnectingPoint num="3" id="1651" />
+</COMPONENT>
+<SUBCOMPONENT type="6005" id="1646" >
+<father id="1652" num="0" />
+<cdparam x="855" y="155" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="855" maxX="855" minY="155" maxY="155" />
+<infoparam name="value " value="Mapping2" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="6005" id="1647" >
+<father id="1652" num="1" />
+<cdparam x="855" y="140" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="855" maxX="855" minY="140" maxY="140" />
+<infoparam name="value " value="Mapping1" />
+</SUBCOMPONENT>
+
+<COMPONENT type="6000" id="1658" >
+<cdparam x="233" y="101" />
+<sizeparam width="334" height="161" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Application" />
+<TGConnectingPoint num="0" id="1654" />
+<TGConnectingPoint num="1" id="1655" />
+<TGConnectingPoint num="2" id="1656" />
+<TGConnectingPoint num="3" id="1657" />
+</COMPONENT>
+<SUBCOMPONENT type="6005" id="1653" >
+<father id="1658" num="0" />
+<cdparam x="238" y="141" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="355" maxX="355" minY="140" maxY="140" />
+<infoparam name="value " value="AppC" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="6004" id="1660" >
+<cdparam x="950" y="220" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="1659" />
+<P1  x="950" y="220" id="1648" />
+<P2  x="740" y="306" id="1640" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="6004" id="1662" >
+<cdparam x="700" y="220" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="1661" />
+<P1  x="700" y="220" id="1632" />
+<P2  x="677" y="306" id="1641" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="6004" id="1664" >
+<cdparam x="450" y="220" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="1663" />
+<P1  x="400" y="262" id="1654" />
+<P2  x="613" y="306" id="1639" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</DiplodocusMethodologyDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/ttool/src/test/resources/ui/generateccode/models/ZigBeeTutorial.xml b/ttool/src/test/resources/ui/diagram2tml/input/ZigBeeTutorial.xml
similarity index 99%
rename from ttool/src/test/resources/ui/generateccode/models/ZigBeeTutorial.xml
rename to ttool/src/test/resources/ui/diagram2tml/input/ZigBeeTutorial.xml
index ab65b34d37b0fa0253202101f22b732d2ad68a46..88b4b46794d09a5f5169b0b1669bf5bdc8ecc40d 100644
--- a/ttool/src/test/resources/ui/generateccode/models/ZigBeeTutorial.xml
+++ b/ttool/src/test/resources/ui/diagram2tml/input/ZigBeeTutorial.xml
@@ -6235,7 +6235,7 @@ POLLING
 <TGConnectingPoint num="0" id="2490" />
 </COMPONENT>
 
-<COMPONENT type="1508" id="2496" >
+<!-- Issue #69 COMPONENT type="1508" id="2496" >
 <cdparam x="360" y="163" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6245,7 +6245,7 @@ POLLING
 <TGConnectingPoint num="1" id="2493" />
 <TGConnectingPoint num="2" id="2494" />
 <TGConnectingPoint num="3" id="2495" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="2507" >
 <cdparam x="182" y="332" />
@@ -6911,7 +6911,7 @@ POLLING
 <infoparam name="guard 3" value="[ transferTerminated == true ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1508" id="2866" >
+<!-- Issue #69 COMPONENT type="1508" id="2866" >
 <cdparam x="279" y="127" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6921,7 +6921,7 @@ POLLING
 <TGConnectingPoint num="1" id="2863" />
 <TGConnectingPoint num="2" id="2864" />
 <TGConnectingPoint num="3" id="2865" />
-</COMPONENT>
+</COMPONENT-->
 
 <COMPONENT type="1505" id="2877" >
 <cdparam x="101" y="296" />
diff --git a/ttool/src/test/resources/ui/generateccode/input/ZigBeeTutorial.xml b/ttool/src/test/resources/ui/generateccode/input/ZigBeeTutorial.xml
new file mode 100644
index 0000000000000000000000000000000000000000..88b4b46794d09a5f5169b0b1669bf5bdc8ecc40d
--- /dev/null
+++ b/ttool/src/test/resources/ui/generateccode/input/ZigBeeTutorial.xml
@@ -0,0 +1,15816 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<TURTLEGMODELING version="0.99-beta4">
+
+<Modeling type="Diplodocus Methodology" nameTab="DIPLODOCUS_Methodology" >
+<DiplodocusMethodologyDiagramPanel name="DIPLODOCUS_Methodology" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="6003" id="5" >
+<cdparam x="63" y="99" />
+<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Requirements" />
+<TGConnectingPoint num="0" id="1" />
+<TGConnectingPoint num="1" id="2" />
+<TGConnectingPoint num="2" id="3" />
+<TGConnectingPoint num="3" id="4" />
+</COMPONENT>
+
+<COMPONENT type="6006" id="13" >
+<cdparam x="600" y="100" />
+<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Com. Patterns" />
+<TGConnectingPoint num="0" id="9" />
+<TGConnectingPoint num="1" id="10" />
+<TGConnectingPoint num="2" id="11" />
+<TGConnectingPoint num="3" id="12" />
+</COMPONENT>
+<SUBCOMPONENT type="6005" id="6" >
+<father id="13" num="0" />
+<cdparam x="605" y="140" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="605" maxX="605" minY="140" maxY="140" />
+<infoparam name="value " value="DMA_transfer" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="6005" id="7" >
+<father id="13" num="1" />
+<cdparam x="605" y="155" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="605" maxX="605" minY="155" maxY="155" />
+<infoparam name="value " value="Double_DMA_transfer" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="6005" id="8" >
+<father id="13" num="2" />
+<cdparam x="605" y="170" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="605" maxX="605" minY="170" maxY="170" />
+<infoparam name="value " value="CP_Memory_Copy" />
+</SUBCOMPONENT>
+
+<COMPONENT type="6002" id="23" >
+<cdparam x="600" y="300" />
+<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Mapping" />
+<TGConnectingPoint num="0" id="17" />
+<TGConnectingPoint num="1" id="18" />
+<TGConnectingPoint num="2" id="19" />
+<TGConnectingPoint num="3" id="20" />
+<TGConnectingPoint num="4" id="21" />
+<TGConnectingPoint num="5" id="22" />
+</COMPONENT>
+<SUBCOMPONENT type="6005" id="14" >
+<father id="23" num="0" />
+<cdparam x="605" y="340" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="605" maxX="605" minY="340" maxY="340" />
+<infoparam name="value " value="Mapping_0" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="6005" id="15" >
+<father id="23" num="1" />
+<cdparam x="605" y="355" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="605" maxX="605" minY="355" maxY="355" />
+<infoparam name="value " value="Mapping_1" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="6005" id="16" >
+<father id="23" num="2" />
+<cdparam x="605" y="370" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="605" maxX="605" minY="370" maxY="370" />
+<infoparam name="value " value="Mapping_2" />
+</SUBCOMPONENT>
+
+<COMPONENT type="6001" id="29" >
+<cdparam x="850" y="100" />
+<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Architecture" />
+<TGConnectingPoint num="0" id="25" />
+<TGConnectingPoint num="1" id="26" />
+<TGConnectingPoint num="2" id="27" />
+<TGConnectingPoint num="3" id="28" />
+</COMPONENT>
+<SUBCOMPONENT type="6005" id="24" >
+<father id="29" num="0" />
+<cdparam x="855" y="140" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="855" maxX="855" minY="140" maxY="140" />
+<infoparam name="value " value="Embb" />
+</SUBCOMPONENT>
+
+<COMPONENT type="6000" id="35" >
+<cdparam x="350" y="100" />
+<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Application" />
+<TGConnectingPoint num="0" id="31" />
+<TGConnectingPoint num="1" id="32" />
+<TGConnectingPoint num="2" id="33" />
+<TGConnectingPoint num="3" id="34" />
+</COMPONENT>
+<SUBCOMPONENT type="6005" id="30" >
+<father id="35" num="0" />
+<cdparam x="355" y="140" />
+<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="355" maxX="355" minY="140" maxY="140" />
+<infoparam name="value " value="Zigbee_TX" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="6004" id="37" >
+<cdparam x="950" y="220" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="36" />
+<P1  x="950" y="220" id="25" />
+<P2  x="740" y="300" id="18" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="6004" id="39" >
+<cdparam x="700" y="220" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="38" />
+<P1  x="700" y="220" id="9" />
+<P2  x="700" y="300" id="19" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="6004" id="41" >
+<cdparam x="450" y="220" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="40" />
+<P1  x="450" y="220" id="31" />
+<P2  x="660" y="300" id="17" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</DiplodocusMethodologyDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Component Design" nameTab="Zigbee_TX" >
+<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="0" maxX="1702" minY="0" maxY="563" channels="true" events="true" requests="true" zoom="1.0000000000000007" >
+<CONNECTOR type="126" id="43" >
+<cdparam x="1409" y="343" />
+<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="1397" y="380" id="772" />
+<P2  x="1446" y="258" id="125" />
+<Point x="1446" y="393" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="42" >
+<father id="43" num="0" />
+<cdparam x="1446" y="393" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="126" id="44" >
+<cdparam x="1383" y="381" />
+<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="1364" y="380" id="723" />
+<P2  x="1397" y="406" id="777" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="45" >
+<cdparam x="1507" y="228" />
+<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="1494" y="263" id="662" />
+<P2  x="1535" y="237" id="608" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="46" >
+<cdparam x="1462" y="247" />
+<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="1463" y="250" id="120" />
+<P2  x="1494" y="237" id="657" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="47" >
+<cdparam x="1507" y="420" />
+<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="1494" y="423" id="643" />
+<P2  x="1536" y="397" id="591" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="50" >
+<cdparam x="1409" y="471" />
+<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="1397" y="510" id="753" />
+<P2  x="1494" y="397" id="638" />
+<Point x="1432" y="523" />
+<Point x="1432" y="410" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="48" >
+<father id="50" num="0" />
+<cdparam x="1432" y="523" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="49" >
+<father id="50" num="1" />
+<cdparam x="1432" y="410" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="126" id="51" >
+<cdparam x="1379" y="511" />
+<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="1362" y="510" id="708" />
+<P2  x="1397" y="536" id="758" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="52" >
+<cdparam x="1507" y="344" />
+<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="1494" y="367" id="624" />
+<P2  x="1536" y="341" id="595" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="55" >
+<cdparam x="1413" y="226" />
+<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="1400" y="249" id="887" />
+<P2  x="1494" y="341" id="619" />
+<Point x="1430" y="262" />
+<Point x="1430" y="354" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="53" >
+<father id="55" num="0" />
+<cdparam x="1430" y="262" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="54" >
+<father id="55" num="1" />
+<cdparam x="1430" y="354" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="126" id="56" >
+<cdparam x="1388" y="262" />
+<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="1365" y="249" id="823" />
+<P2  x="1400" y="275" id="892" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="58" >
+<cdparam x="1413" y="97" />
+<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="1400" y="111" id="800" />
+<P2  x="1446" y="241" id="123" />
+<Point x="1446" y="124" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="57" >
+<father id="58" num="0" />
+<cdparam x="1446" y="124" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="126" id="59" >
+<cdparam x="1384" y="124" />
+<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="1364" y="111" id="838" />
+<P2  x="1400" y="137" id="805" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="60" >
+<cdparam x="1208" y="347" />
+<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="1186" y="401" id="690" />
+<P2  x="1220" y="375" id="721" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="62" >
+<cdparam x="1133" y="246" />
+<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="1133" y="251" id="141" />
+<P2  x="1186" y="375" id="685" />
+<Point x="1133" y="388" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="61" >
+<father id="62" num="0" />
+<cdparam x="1133" y="388" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="126" id="63" >
+<cdparam x="1105" y="254" />
+<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="1046" y="230" id="455" />
+<P2  x="1117" y="243" id="136" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="64" >
+<cdparam x="1068" y="239" />
+<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="1010" y="230" id="531" />
+<P2  x="1046" y="256" id="460" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="67" >
+<cdparam x="1105" y="374" />
+<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="1046" y="363" id="563" />
+<P2  x="1186" y="249" id="849" />
+<Point x="1103" y="376" />
+<Point x="1103" y="262" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="65" >
+<father id="67" num="0" />
+<cdparam x="1103" y="376" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="66" >
+<father id="67" num="1" />
+<cdparam x="1103" y="262" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="126" id="68" >
+<cdparam x="1065" y="372" />
+<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="1008" y="363" id="516" />
+<P2  x="1046" y="389" id="568" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="69" >
+<cdparam x="1208" y="499" />
+<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="1186" y="513" id="739" />
+<P2  x="1224" y="487" id="706" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="72" >
+<cdparam x="1105" y="408" />
+<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="1046" y="395" id="544" />
+<P2  x="1186" y="487" id="734" />
+<Point x="1101" y="408" />
+<Point x="1101" y="500" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="70" >
+<father id="72" num="0" />
+<cdparam x="1101" y="408" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="71" >
+<father id="72" num="1" />
+<cdparam x="1101" y="500" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="126" id="73" >
+<cdparam x="1065" y="404" />
+<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="1008" y="395" id="512" />
+<P2  x="1046" y="421" id="549" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="74" >
+<cdparam x="907" y="352" />
+<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="838" y="400" id="479" />
+<P2  x="874" y="374" id="518" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="75" >
+<cdparam x="867" y="334" />
+<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="799" y="374" id="340" />
+<P2  x="838" y="374" id="474" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="76" >
+<cdparam x="840" y="380" />
+<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="756" y="374" id="382" />
+<P2  x="799" y="400" id="345" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="77" >
+<cdparam x="915" y="228" />
+<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="838" y="274" id="498" />
+<P2  x="876" y="248" id="533" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="78" >
+<cdparam x="867" y="229" />
+<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="799" y="248" id="359" />
+<P2  x="838" y="248" id="493" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="79" >
+<cdparam x="829" y="257" />
+<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="754" y="248" id="397" />
+<P2  x="799" y="274" id="364" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="80" >
+<cdparam x="669" y="349" />
+<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="555" y="399" id="432" />
+<P2  x="597" y="373" id="380" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="81" >
+<cdparam x="586" y="350" />
+<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="516" y="373" id="312" />
+<P2  x="555" y="373" id="427" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="82" >
+<cdparam x="550" y="379" />
+<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="470" y="373" id="267" />
+<P2  x="516" y="399" id="317" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="83" >
+<cdparam x="687" y="234" />
+<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="555" y="282" id="413" />
+<P2  x="598" y="256" id="395" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="84" >
+<cdparam x="586" y="233" />
+<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="516" y="256" id="293" />
+<P2  x="555" y="256" id="408" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="85" >
+<cdparam x="549" y="263" />
+<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="473" y="256" id="282" />
+<P2  x="516" y="282" id="298" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="86" >
+<cdparam x="364" y="356" />
+<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="275" y="394" id="230" />
+<P2  x="316" y="368" id="265" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="87" >
+<cdparam x="321" y="350" />
+<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="231" y="368" id="152" />
+<P2  x="275" y="368" id="225" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="88" >
+<cdparam x="200" y="373" />
+<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="187" y="368" id="173" />
+<P2  x="231" y="394" id="157" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="89" >
+<cdparam x="356" y="223" />
+<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="275" y="271" id="249" />
+<P2  x="317" y="245" id="280" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="90" >
+<cdparam x="314" y="221" />
+<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="231" y="245" id="197" />
+<P2  x="275" y="245" id="244" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="91" >
+<cdparam x="175" y="251" />
+<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="154" y="245" id="186" />
+<P2  x="231" y="271" id="202" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="92" >
+<cdparam x="1792" y="148" />
+<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="1186" y="275" id="854" />
+<P2  x="1222" y="249" id="821" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="94" >
+<cdparam x="1750" y="240" />
+<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="1133" y="234" id="139" />
+<P2  x="1186" y="110" id="868" />
+<Point x="1133" y="123" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="93" >
+<father id="94" num="0" />
+<cdparam x="1133" y="123" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="3161" minY="0" maxY="1161" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="126" id="95" >
+<cdparam x="1792" y="8" />
+<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="1186" y="136" id="873" />
+<P2  x="1220" y="110" id="836" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="96" >
+<cdparam x="280" y="67" />
+<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="1657" y="318" id="593" />
+<P2  x="1562" y="278" id="606" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="97" >
+<cdparam x="390" y="97" />
+<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="1333" y="181" id="819" />
+<P2  x="1257" y="145" id="834" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="98" >
+<cdparam x="390" y="507" />
+<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="1335" y="458" id="704" />
+<P2  x="1249" y="424" id="719" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="99" >
+<cdparam x="1161" y="396" />
+<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="989" y="321" id="514" />
+<P2  x="912" y="285" id="529" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="100" >
+<cdparam x="1160" y="500" />
+<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="729" y="327" id="378" />
+<P2  x="639" y="286" id="393" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="101" >
+<cdparam x="755" y="498" />
+<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="442" y="319" id="263" />
+<P2  x="350" y="277" id="278" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="102" >
+<cdparam x="217" y="495" />
+<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="108" y="320" id="171" />
+<P2  x="53" y="276" id="184" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="301" id="119" >
+<cdparam x="18" y="45" />
+<sizeparam width="237" height="51" minWidth="60" minHeight="23" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="UML Note" value="In this model THE PARAMETER SIZE
+IS NOT MODIFIED according to the
+operations performed by the
+processing tasks
+" />
+<TGConnectingPoint num="0" id="103" />
+<TGConnectingPoint num="1" id="104" />
+<TGConnectingPoint num="2" id="105" />
+<TGConnectingPoint num="3" id="106" />
+<TGConnectingPoint num="4" id="107" />
+<TGConnectingPoint num="5" id="108" />
+<TGConnectingPoint num="6" id="109" />
+<TGConnectingPoint num="7" id="110" />
+<TGConnectingPoint num="8" id="111" />
+<TGConnectingPoint num="9" id="112" />
+<TGConnectingPoint num="10" id="113" />
+<TGConnectingPoint num="11" id="114" />
+<TGConnectingPoint num="12" id="115" />
+<TGConnectingPoint num="13" id="116" />
+<TGConnectingPoint num="14" id="117" />
+<TGConnectingPoint num="15" id="118" />
+<extraparam>
+<Line value="In this model THE PARAMETER SIZE" />
+<Line value="IS NOT MODIFIED according to the" />
+<Line value="operations performed by the" />
+<Line value="processing tasks" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1208" id="135" >
+<cdparam x="1441" y="239" />
+<sizeparam width="22" height="22" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="Composite port" value="J" />
+<TGConnectingPoint num="0" id="120" />
+<TGConnectingPoint num="1" id="121" />
+<TGConnectingPoint num="2" id="122" />
+<TGConnectingPoint num="3" id="123" />
+<TGConnectingPoint num="4" id="124" />
+<TGConnectingPoint num="5" id="125" />
+<TGConnectingPoint num="6" id="126" />
+<TGConnectingPoint num="7" id="127" />
+<TGConnectingPoint num="8" id="128" />
+<TGConnectingPoint num="9" id="129" />
+<TGConnectingPoint num="10" id="130" />
+<TGConnectingPoint num="11" id="131" />
+<TGConnectingPoint num="12" id="132" />
+<TGConnectingPoint num="13" id="133" />
+<TGConnectingPoint num="14" id="134" />
+</COMPONENT>
+
+<COMPONENT type="1207" id="151" >
+<cdparam x="1117" y="232" />
+<sizeparam width="22" height="22" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="Composite port" value="F" />
+<TGConnectingPoint num="0" id="136" />
+<TGConnectingPoint num="1" id="137" />
+<TGConnectingPoint num="2" id="138" />
+<TGConnectingPoint num="3" id="139" />
+<TGConnectingPoint num="4" id="140" />
+<TGConnectingPoint num="5" id="141" />
+<TGConnectingPoint num="6" id="142" />
+<TGConnectingPoint num="7" id="143" />
+<TGConnectingPoint num="8" id="144" />
+<TGConnectingPoint num="9" id="145" />
+<TGConnectingPoint num="10" id="146" />
+<TGConnectingPoint num="11" id="147" />
+<TGConnectingPoint num="12" id="148" />
+<TGConnectingPoint num="13" id="149" />
+<TGConnectingPoint num="14" id="150" />
+</COMPONENT>
+
+<COMPONENT type="1200" id="224" >
+<cdparam x="0" y="164" />
+<sizeparam width="231" height="254" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="Composite component" value="Source" />
+<TGConnectingPoint num="0" id="216" />
+<TGConnectingPoint num="1" id="217" />
+<TGConnectingPoint num="2" id="218" />
+<TGConnectingPoint num="3" id="219" />
+<TGConnectingPoint num="4" id="220" />
+<TGConnectingPoint num="5" id="221" />
+<TGConnectingPoint num="6" id="222" />
+<TGConnectingPoint num="7" id="223" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1201" id="170" >
+<father id="224" num="0" />
+<cdparam x="218" y="368" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="218" minY="-13" maxY="241" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="152" />
+<TGConnectingPoint num="1" id="153" />
+<TGConnectingPoint num="2" id="154" />
+<TGConnectingPoint num="3" id="155" />
+<TGConnectingPoint num="4" id="156" />
+<TGConnectingPoint num="5" id="157" />
+<TGConnectingPoint num="6" id="158" />
+<TGConnectingPoint num="7" id="159" />
+<TGConnectingPoint num="8" id="160" />
+<TGConnectingPoint num="9" id="161" />
+<TGConnectingPoint num="10" id="162" />
+<TGConnectingPoint num="11" id="163" />
+<TGConnectingPoint num="12" id="164" />
+<TGConnectingPoint num="13" id="165" />
+<TGConnectingPoint num="14" id="166" />
+<TGConnectingPoint num="15" id="167" />
+<TGConnectingPoint num="16" id="168" />
+<TGConnectingPoint num="17" id="169" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="183" >
+<father id="224" num="1" />
+<cdparam x="2" y="333" />
+<sizeparam width="185" height="74" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="46" minY="0" maxY="180" />
+<infoparam name="Primitive component" value="F_Source" />
+<TGConnectingPoint num="0" id="175" />
+<TGConnectingPoint num="1" id="176" />
+<TGConnectingPoint num="2" id="177" />
+<TGConnectingPoint num="3" id="178" />
+<TGConnectingPoint num="4" id="179" />
+<TGConnectingPoint num="5" id="180" />
+<TGConnectingPoint num="6" id="181" />
+<TGConnectingPoint num="7" id="182" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="127" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="172" >
+<father id="183" num="0" />
+<cdparam x="95" y="320" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="172" minY="-13" maxY="61" />
+<infoparam name="Primitive port" value="Request source_req" />
+<TGConnectingPoint num="0" id="171" />
+<extraparam>
+<Prop commName="source_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="174" >
+<father id="183" num="1" />
+<cdparam x="174" y="368" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="172" minY="-13" maxY="61" />
+<infoparam name="Primitive port" value="Event Source_evt_out" />
+<TGConnectingPoint num="0" id="173" />
+<extraparam>
+<Prop commName="Source_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="196" >
+<father id="224" num="2" />
+<cdparam x="18" y="208" />
+<sizeparam width="136" height="81" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="95" minY="0" maxY="173" />
+<infoparam name="Primitive component" value="X_Source" />
+<TGConnectingPoint num="0" id="188" />
+<TGConnectingPoint num="1" id="189" />
+<TGConnectingPoint num="2" id="190" />
+<TGConnectingPoint num="3" id="191" />
+<TGConnectingPoint num="4" id="192" />
+<TGConnectingPoint num="5" id="193" />
+<TGConnectingPoint num="6" id="194" />
+<TGConnectingPoint num="7" id="195" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="185" >
+<father id="196" num="0" />
+<cdparam x="40" y="276" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="123" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Request source_req" />
+<TGConnectingPoint num="0" id="184" />
+<extraparam>
+<Prop commName="source_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="187" >
+<father id="196" num="1" />
+<cdparam x="141" y="245" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="123" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Channel Source_ch_out" />
+<TGConnectingPoint num="0" id="186" />
+<extraparam>
+<Prop commName="Source_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="true" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="Source_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="215" >
+<father id="224" num="3" />
+<cdparam x="218" y="245" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="218" minY="-13" maxY="241" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="197" />
+<TGConnectingPoint num="1" id="198" />
+<TGConnectingPoint num="2" id="199" />
+<TGConnectingPoint num="3" id="200" />
+<TGConnectingPoint num="4" id="201" />
+<TGConnectingPoint num="5" id="202" />
+<TGConnectingPoint num="6" id="203" />
+<TGConnectingPoint num="7" id="204" />
+<TGConnectingPoint num="8" id="205" />
+<TGConnectingPoint num="9" id="206" />
+<TGConnectingPoint num="10" id="207" />
+<TGConnectingPoint num="11" id="208" />
+<TGConnectingPoint num="12" id="209" />
+<TGConnectingPoint num="13" id="210" />
+<TGConnectingPoint num="14" id="211" />
+<TGConnectingPoint num="15" id="212" />
+<TGConnectingPoint num="16" id="213" />
+<TGConnectingPoint num="17" id="214" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1200" id="339" >
+<cdparam x="275" y="165" />
+<sizeparam width="241" height="259" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="Composite component" value="Symbol2ChipSeq" />
+<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" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1201" id="243" >
+<father id="339" num="0" />
+<cdparam x="262" y="368" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="225" />
+<TGConnectingPoint num="1" id="226" />
+<TGConnectingPoint num="2" id="227" />
+<TGConnectingPoint num="3" id="228" />
+<TGConnectingPoint num="4" id="229" />
+<TGConnectingPoint num="5" id="230" />
+<TGConnectingPoint num="6" id="231" />
+<TGConnectingPoint num="7" id="232" />
+<TGConnectingPoint num="8" id="233" />
+<TGConnectingPoint num="9" id="234" />
+<TGConnectingPoint num="10" id="235" />
+<TGConnectingPoint num="11" id="236" />
+<TGConnectingPoint num="12" id="237" />
+<TGConnectingPoint num="13" id="238" />
+<TGConnectingPoint num="14" id="239" />
+<TGConnectingPoint num="15" id="240" />
+<TGConnectingPoint num="16" id="241" />
+<TGConnectingPoint num="17" id="242" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="262" >
+<father id="339" num="1" />
+<cdparam x="262" y="245" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="244" />
+<TGConnectingPoint num="1" id="245" />
+<TGConnectingPoint num="2" id="246" />
+<TGConnectingPoint num="3" id="247" />
+<TGConnectingPoint num="4" id="248" />
+<TGConnectingPoint num="5" id="249" />
+<TGConnectingPoint num="6" id="250" />
+<TGConnectingPoint num="7" id="251" />
+<TGConnectingPoint num="8" id="252" />
+<TGConnectingPoint num="9" id="253" />
+<TGConnectingPoint num="10" id="254" />
+<TGConnectingPoint num="11" id="255" />
+<TGConnectingPoint num="12" id="256" />
+<TGConnectingPoint num="13" id="257" />
+<TGConnectingPoint num="14" id="258" />
+<TGConnectingPoint num="15" id="259" />
+<TGConnectingPoint num="16" id="260" />
+<TGConnectingPoint num="17" id="261" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="277" >
+<father id="339" num="2" />
+<cdparam x="316" y="332" />
+<sizeparam width="154" height="81" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="87" minY="0" maxY="178" />
+<infoparam name="Primitive component" value="F_Symbol2ChipSeq" />
+<TGConnectingPoint num="0" id="269" />
+<TGConnectingPoint num="1" id="270" />
+<TGConnectingPoint num="2" id="271" />
+<TGConnectingPoint num="3" id="272" />
+<TGConnectingPoint num="4" id="273" />
+<TGConnectingPoint num="5" id="274" />
+<TGConnectingPoint num="6" id="275" />
+<TGConnectingPoint num="7" id="276" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="264" >
+<father id="277" num="0" />
+<cdparam x="429" y="319" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Request bit2chip_req" />
+<TGConnectingPoint num="0" id="263" />
+<extraparam>
+<Prop commName="bit2chip_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="266" >
+<father id="277" num="1" />
+<cdparam x="303" y="368" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Event bit2symbol_evt_in" />
+<TGConnectingPoint num="0" id="265" />
+<extraparam>
+<Prop commName="bit2symbol_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="268" >
+<father id="277" num="2" />
+<cdparam x="457" y="373" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Event bit2symbol_evt_out" />
+<TGConnectingPoint num="0" id="267" />
+<extraparam>
+<Prop commName="bit2symbol_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="292" >
+<father id="339" num="3" />
+<cdparam x="317" y="208" />
+<sizeparam width="156" height="82" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="85" minY="0" maxY="177" />
+<infoparam name="Primitive component" value="X_Symbol2ChipSeq" />
+<TGConnectingPoint num="0" id="284" />
+<TGConnectingPoint num="1" id="285" />
+<TGConnectingPoint num="2" id="286" />
+<TGConnectingPoint num="3" id="287" />
+<TGConnectingPoint num="4" id="288" />
+<TGConnectingPoint num="5" id="289" />
+<TGConnectingPoint num="6" id="290" />
+<TGConnectingPoint num="7" id="291" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="279" >
+<father id="292" num="0" />
+<cdparam x="337" y="277" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Request bit2chip_req" />
+<TGConnectingPoint num="0" id="278" />
+<extraparam>
+<Prop commName="bit2chip_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="281" >
+<father id="292" num="1" />
+<cdparam x="304" y="245" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_in" />
+<TGConnectingPoint num="0" id="280" />
+<extraparam>
+<Prop commName="symbol2ChipSeq_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="283" >
+<father id="292" num="2" />
+<cdparam x="460" y="256" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_out" />
+<TGConnectingPoint num="0" id="282" />
+<extraparam>
+<Prop commName="symbol2ChipSeq_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="311" >
+<father id="339" num="4" />
+<cdparam x="503" y="256" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="293" />
+<TGConnectingPoint num="1" id="294" />
+<TGConnectingPoint num="2" id="295" />
+<TGConnectingPoint num="3" id="296" />
+<TGConnectingPoint num="4" id="297" />
+<TGConnectingPoint num="5" id="298" />
+<TGConnectingPoint num="6" id="299" />
+<TGConnectingPoint num="7" id="300" />
+<TGConnectingPoint num="8" id="301" />
+<TGConnectingPoint num="9" id="302" />
+<TGConnectingPoint num="10" id="303" />
+<TGConnectingPoint num="11" id="304" />
+<TGConnectingPoint num="12" id="305" />
+<TGConnectingPoint num="13" id="306" />
+<TGConnectingPoint num="14" id="307" />
+<TGConnectingPoint num="15" id="308" />
+<TGConnectingPoint num="16" id="309" />
+<TGConnectingPoint num="17" id="310" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="330" >
+<father id="339" num="5" />
+<cdparam x="503" y="373" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="312" />
+<TGConnectingPoint num="1" id="313" />
+<TGConnectingPoint num="2" id="314" />
+<TGConnectingPoint num="3" id="315" />
+<TGConnectingPoint num="4" id="316" />
+<TGConnectingPoint num="5" id="317" />
+<TGConnectingPoint num="6" id="318" />
+<TGConnectingPoint num="7" id="319" />
+<TGConnectingPoint num="8" id="320" />
+<TGConnectingPoint num="9" id="321" />
+<TGConnectingPoint num="10" id="322" />
+<TGConnectingPoint num="11" id="323" />
+<TGConnectingPoint num="12" id="324" />
+<TGConnectingPoint num="13" id="325" />
+<TGConnectingPoint num="14" id="326" />
+<TGConnectingPoint num="15" id="327" />
+<TGConnectingPoint num="16" id="328" />
+<TGConnectingPoint num="17" id="329" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1200" id="454" >
+<cdparam x="555" y="168" />
+<sizeparam width="244" height="262" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="Composite component" value="Chip2Octet" />
+<TGConnectingPoint num="0" id="446" />
+<TGConnectingPoint num="1" id="447" />
+<TGConnectingPoint num="2" id="448" />
+<TGConnectingPoint num="3" id="449" />
+<TGConnectingPoint num="4" id="450" />
+<TGConnectingPoint num="5" id="451" />
+<TGConnectingPoint num="6" id="452" />
+<TGConnectingPoint num="7" id="453" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1201" id="358" >
+<father id="454" num="0" />
+<cdparam x="786" y="374" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="340" />
+<TGConnectingPoint num="1" id="341" />
+<TGConnectingPoint num="2" id="342" />
+<TGConnectingPoint num="3" id="343" />
+<TGConnectingPoint num="4" id="344" />
+<TGConnectingPoint num="5" id="345" />
+<TGConnectingPoint num="6" id="346" />
+<TGConnectingPoint num="7" id="347" />
+<TGConnectingPoint num="8" id="348" />
+<TGConnectingPoint num="9" id="349" />
+<TGConnectingPoint num="10" id="350" />
+<TGConnectingPoint num="11" id="351" />
+<TGConnectingPoint num="12" id="352" />
+<TGConnectingPoint num="13" id="353" />
+<TGConnectingPoint num="14" id="354" />
+<TGConnectingPoint num="15" id="355" />
+<TGConnectingPoint num="16" id="356" />
+<TGConnectingPoint num="17" id="357" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="377" >
+<father id="454" num="1" />
+<cdparam x="786" y="248" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="359" />
+<TGConnectingPoint num="1" id="360" />
+<TGConnectingPoint num="2" id="361" />
+<TGConnectingPoint num="3" id="362" />
+<TGConnectingPoint num="4" id="363" />
+<TGConnectingPoint num="5" id="364" />
+<TGConnectingPoint num="6" id="365" />
+<TGConnectingPoint num="7" id="366" />
+<TGConnectingPoint num="8" id="367" />
+<TGConnectingPoint num="9" id="368" />
+<TGConnectingPoint num="10" id="369" />
+<TGConnectingPoint num="11" id="370" />
+<TGConnectingPoint num="12" id="371" />
+<TGConnectingPoint num="13" id="372" />
+<TGConnectingPoint num="14" id="373" />
+<TGConnectingPoint num="15" id="374" />
+<TGConnectingPoint num="16" id="375" />
+<TGConnectingPoint num="17" id="376" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="392" >
+<father id="454" num="2" />
+<cdparam x="597" y="340" />
+<sizeparam width="159" height="73" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="85" minY="0" maxY="189" />
+<infoparam name="Primitive component" value="F_Chip2Octet" />
+<TGConnectingPoint num="0" id="384" />
+<TGConnectingPoint num="1" id="385" />
+<TGConnectingPoint num="2" id="386" />
+<TGConnectingPoint num="3" id="387" />
+<TGConnectingPoint num="4" id="388" />
+<TGConnectingPoint num="5" id="389" />
+<TGConnectingPoint num="6" id="390" />
+<TGConnectingPoint num="7" id="391" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="379" >
+<father id="392" num="0" />
+<cdparam x="716" y="327" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" />
+<infoparam name="Primitive port" value="Request chip2octet_req" />
+<TGConnectingPoint num="0" id="378" />
+<extraparam>
+<Prop commName="chip2octet_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="381" >
+<father id="392" num="1" />
+<cdparam x="584" y="373" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" />
+<infoparam name="Primitive port" value="Event chip2octet_evt_in" />
+<TGConnectingPoint num="0" id="380" />
+<extraparam>
+<Prop commName="chip2octet_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="383" >
+<father id="392" num="2" />
+<cdparam x="743" y="374" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" />
+<infoparam name="Primitive port" value="Event chip2octet_evt_out" />
+<TGConnectingPoint num="0" id="382" />
+<extraparam>
+<Prop commName="chip2octet_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="407" >
+<father id="454" num="3" />
+<cdparam x="598" y="214" />
+<sizeparam width="156" height="85" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="88" minY="0" maxY="177" />
+<infoparam name="Primitive component" value="X_Chip2Octet" />
+<TGConnectingPoint num="0" id="399" />
+<TGConnectingPoint num="1" id="400" />
+<TGConnectingPoint num="2" id="401" />
+<TGConnectingPoint num="3" id="402" />
+<TGConnectingPoint num="4" id="403" />
+<TGConnectingPoint num="5" id="404" />
+<TGConnectingPoint num="6" id="405" />
+<TGConnectingPoint num="7" id="406" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="394" >
+<father id="407" num="0" />
+<cdparam x="626" y="286" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" />
+<infoparam name="Primitive port" value="Request chip2octet_req" />
+<TGConnectingPoint num="0" id="393" />
+<extraparam>
+<Prop commName="chip2octet_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="396" >
+<father id="407" num="1" />
+<cdparam x="585" y="256" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" />
+<infoparam name="Primitive port" value="Channel chip2octet_ch_in" />
+<TGConnectingPoint num="0" id="395" />
+<extraparam>
+<Prop commName="chip2octet_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="398" >
+<father id="407" num="2" />
+<cdparam x="741" y="248" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" />
+<infoparam name="Primitive port" value="Channel chip2octet_ch_out" />
+<TGConnectingPoint num="0" id="397" />
+<extraparam>
+<Prop commName="chip2octet_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="426" >
+<father id="454" num="4" />
+<cdparam x="542" y="256" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="408" />
+<TGConnectingPoint num="1" id="409" />
+<TGConnectingPoint num="2" id="410" />
+<TGConnectingPoint num="3" id="411" />
+<TGConnectingPoint num="4" id="412" />
+<TGConnectingPoint num="5" id="413" />
+<TGConnectingPoint num="6" id="414" />
+<TGConnectingPoint num="7" id="415" />
+<TGConnectingPoint num="8" id="416" />
+<TGConnectingPoint num="9" id="417" />
+<TGConnectingPoint num="10" id="418" />
+<TGConnectingPoint num="11" id="419" />
+<TGConnectingPoint num="12" id="420" />
+<TGConnectingPoint num="13" id="421" />
+<TGConnectingPoint num="14" id="422" />
+<TGConnectingPoint num="15" id="423" />
+<TGConnectingPoint num="16" id="424" />
+<TGConnectingPoint num="17" id="425" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="445" >
+<father id="454" num="5" />
+<cdparam x="542" y="373" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="427" />
+<TGConnectingPoint num="1" id="428" />
+<TGConnectingPoint num="2" id="429" />
+<TGConnectingPoint num="3" id="430" />
+<TGConnectingPoint num="4" id="431" />
+<TGConnectingPoint num="5" id="432" />
+<TGConnectingPoint num="6" id="433" />
+<TGConnectingPoint num="7" id="434" />
+<TGConnectingPoint num="8" id="435" />
+<TGConnectingPoint num="9" id="436" />
+<TGConnectingPoint num="10" id="437" />
+<TGConnectingPoint num="11" id="438" />
+<TGConnectingPoint num="12" id="439" />
+<TGConnectingPoint num="13" id="440" />
+<TGConnectingPoint num="14" id="441" />
+<TGConnectingPoint num="15" id="442" />
+<TGConnectingPoint num="16" id="443" />
+<TGConnectingPoint num="17" id="444" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1200" id="590" >
+<cdparam x="838" y="154" />
+<sizeparam width="208" height="281" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="Composite component" value="CWL" />
+<TGConnectingPoint num="0" id="582" />
+<TGConnectingPoint num="1" id="583" />
+<TGConnectingPoint num="2" id="584" />
+<TGConnectingPoint num="3" id="585" />
+<TGConnectingPoint num="4" id="586" />
+<TGConnectingPoint num="5" id="587" />
+<TGConnectingPoint num="6" id="588" />
+<TGConnectingPoint num="7" id="589" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1201" id="473" >
+<father id="590" num="0" />
+<cdparam x="1033" y="230" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="455" />
+<TGConnectingPoint num="1" id="456" />
+<TGConnectingPoint num="2" id="457" />
+<TGConnectingPoint num="3" id="458" />
+<TGConnectingPoint num="4" id="459" />
+<TGConnectingPoint num="5" id="460" />
+<TGConnectingPoint num="6" id="461" />
+<TGConnectingPoint num="7" id="462" />
+<TGConnectingPoint num="8" id="463" />
+<TGConnectingPoint num="9" id="464" />
+<TGConnectingPoint num="10" id="465" />
+<TGConnectingPoint num="11" id="466" />
+<TGConnectingPoint num="12" id="467" />
+<TGConnectingPoint num="13" id="468" />
+<TGConnectingPoint num="14" id="469" />
+<TGConnectingPoint num="15" id="470" />
+<TGConnectingPoint num="16" id="471" />
+<TGConnectingPoint num="17" id="472" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="492" >
+<father id="590" num="1" />
+<cdparam x="825" y="374" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="474" />
+<TGConnectingPoint num="1" id="475" />
+<TGConnectingPoint num="2" id="476" />
+<TGConnectingPoint num="3" id="477" />
+<TGConnectingPoint num="4" id="478" />
+<TGConnectingPoint num="5" id="479" />
+<TGConnectingPoint num="6" id="480" />
+<TGConnectingPoint num="7" id="481" />
+<TGConnectingPoint num="8" id="482" />
+<TGConnectingPoint num="9" id="483" />
+<TGConnectingPoint num="10" id="484" />
+<TGConnectingPoint num="11" id="485" />
+<TGConnectingPoint num="12" id="486" />
+<TGConnectingPoint num="13" id="487" />
+<TGConnectingPoint num="14" id="488" />
+<TGConnectingPoint num="15" id="489" />
+<TGConnectingPoint num="16" id="490" />
+<TGConnectingPoint num="17" id="491" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="511" >
+<father id="590" num="2" />
+<cdparam x="825" y="248" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="493" />
+<TGConnectingPoint num="1" id="494" />
+<TGConnectingPoint num="2" id="495" />
+<TGConnectingPoint num="3" id="496" />
+<TGConnectingPoint num="4" id="497" />
+<TGConnectingPoint num="5" id="498" />
+<TGConnectingPoint num="6" id="499" />
+<TGConnectingPoint num="7" id="500" />
+<TGConnectingPoint num="8" id="501" />
+<TGConnectingPoint num="9" id="502" />
+<TGConnectingPoint num="10" id="503" />
+<TGConnectingPoint num="11" id="504" />
+<TGConnectingPoint num="12" id="505" />
+<TGConnectingPoint num="13" id="506" />
+<TGConnectingPoint num="14" id="507" />
+<TGConnectingPoint num="15" id="508" />
+<TGConnectingPoint num="16" id="509" />
+<TGConnectingPoint num="17" id="510" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="528" >
+<father id="590" num="3" />
+<cdparam x="874" y="334" />
+<sizeparam width="134" height="92" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="74" minY="0" maxY="189" />
+<infoparam name="Primitive component" value="F_CWL" />
+<TGConnectingPoint num="0" id="520" />
+<TGConnectingPoint num="1" id="521" />
+<TGConnectingPoint num="2" id="522" />
+<TGConnectingPoint num="3" id="523" />
+<TGConnectingPoint num="4" id="524" />
+<TGConnectingPoint num="5" id="525" />
+<TGConnectingPoint num="6" id="526" />
+<TGConnectingPoint num="7" id="527" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="513" >
+<father id="528" num="0" />
+<cdparam x="995" y="395" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
+<infoparam name="Primitive port" value="Event cwl_evt_out_1" />
+<TGConnectingPoint num="0" id="512" />
+<extraparam>
+<Prop commName="cwl_evt_out_1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="515" >
+<father id="528" num="1" />
+<cdparam x="976" y="321" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
+<infoparam name="Primitive port" value="Request cwl_req" />
+<TGConnectingPoint num="0" id="514" />
+<extraparam>
+<Prop commName="cwl_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="517" >
+<father id="528" num="2" />
+<cdparam x="995" y="363" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
+<infoparam name="Primitive port" value="Event cwl_evt_out" />
+<TGConnectingPoint num="0" id="516" />
+<extraparam>
+<Prop commName="cwl_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="519" >
+<father id="528" num="3" />
+<cdparam x="861" y="374" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
+<infoparam name="Primitive port" value="Event cwl_evt_in" />
+<TGConnectingPoint num="0" id="518" />
+<extraparam>
+<Prop commName="cwl_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="543" >
+<father id="590" num="4" />
+<cdparam x="876" y="202" />
+<sizeparam width="134" height="96" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="74" minY="0" maxY="185" />
+<infoparam name="Primitive component" value="X_CWL" />
+<TGConnectingPoint num="0" id="535" />
+<TGConnectingPoint num="1" id="536" />
+<TGConnectingPoint num="2" id="537" />
+<TGConnectingPoint num="3" id="538" />
+<TGConnectingPoint num="4" id="539" />
+<TGConnectingPoint num="5" id="540" />
+<TGConnectingPoint num="6" id="541" />
+<TGConnectingPoint num="7" id="542" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="530" >
+<father id="543" num="0" />
+<cdparam x="899" y="285" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Request cwl_req" />
+<TGConnectingPoint num="0" id="529" />
+<extraparam>
+<Prop commName="cwl_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="532" >
+<father id="543" num="1" />
+<cdparam x="997" y="230" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Channel cwl_ch_out" />
+<TGConnectingPoint num="0" id="531" />
+<extraparam>
+<Prop commName="cwl_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="534" >
+<father id="543" num="2" />
+<cdparam x="863" y="248" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Channel cwl_ch_in" />
+<TGConnectingPoint num="0" id="533" />
+<extraparam>
+<Prop commName="cwl_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="562" >
+<father id="590" num="5" />
+<cdparam x="1033" y="395" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="544" />
+<TGConnectingPoint num="1" id="545" />
+<TGConnectingPoint num="2" id="546" />
+<TGConnectingPoint num="3" id="547" />
+<TGConnectingPoint num="4" id="548" />
+<TGConnectingPoint num="5" id="549" />
+<TGConnectingPoint num="6" id="550" />
+<TGConnectingPoint num="7" id="551" />
+<TGConnectingPoint num="8" id="552" />
+<TGConnectingPoint num="9" id="553" />
+<TGConnectingPoint num="10" id="554" />
+<TGConnectingPoint num="11" id="555" />
+<TGConnectingPoint num="12" id="556" />
+<TGConnectingPoint num="13" id="557" />
+<TGConnectingPoint num="14" id="558" />
+<TGConnectingPoint num="15" id="559" />
+<TGConnectingPoint num="16" id="560" />
+<TGConnectingPoint num="17" id="561" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="581" >
+<father id="590" num="6" />
+<cdparam x="1033" y="363" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="563" />
+<TGConnectingPoint num="1" id="564" />
+<TGConnectingPoint num="2" id="565" />
+<TGConnectingPoint num="3" id="566" />
+<TGConnectingPoint num="4" id="567" />
+<TGConnectingPoint num="5" id="568" />
+<TGConnectingPoint num="6" id="569" />
+<TGConnectingPoint num="7" id="570" />
+<TGConnectingPoint num="8" id="571" />
+<TGConnectingPoint num="9" id="572" />
+<TGConnectingPoint num="10" id="573" />
+<TGConnectingPoint num="11" id="574" />
+<TGConnectingPoint num="12" id="575" />
+<TGConnectingPoint num="13" id="576" />
+<TGConnectingPoint num="14" id="577" />
+<TGConnectingPoint num="15" id="578" />
+<TGConnectingPoint num="16" id="579" />
+<TGConnectingPoint num="17" id="580" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1200" id="684" >
+<cdparam x="1494" y="155" />
+<sizeparam width="208" height="282" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="Composite component" value="Sink" />
+<TGConnectingPoint num="0" id="676" />
+<TGConnectingPoint num="1" id="677" />
+<TGConnectingPoint num="2" id="678" />
+<TGConnectingPoint num="3" id="679" />
+<TGConnectingPoint num="4" id="680" />
+<TGConnectingPoint num="5" id="681" />
+<TGConnectingPoint num="6" id="682" />
+<TGConnectingPoint num="7" id="683" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1202" id="605" >
+<father id="684" num="0" />
+<cdparam x="1536" y="331" />
+<sizeparam width="153" height="94" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="55" minY="0" maxY="188" />
+<infoparam name="Primitive component" value="F_Sink" />
+<TGConnectingPoint num="0" id="597" />
+<TGConnectingPoint num="1" id="598" />
+<TGConnectingPoint num="2" id="599" />
+<TGConnectingPoint num="3" id="600" />
+<TGConnectingPoint num="4" id="601" />
+<TGConnectingPoint num="5" id="602" />
+<TGConnectingPoint num="6" id="603" />
+<TGConnectingPoint num="7" id="604" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="size_1" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="592" >
+<father id="605" num="0" />
+<cdparam x="1523" y="397" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" />
+<infoparam name="Primitive port" value="Event sink_evt_in_1" />
+<TGConnectingPoint num="0" id="591" />
+<extraparam>
+<Prop commName="sink_evt_in_1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="594" >
+<father id="605" num="1" />
+<cdparam x="1644" y="318" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" />
+<infoparam name="Primitive port" value="Request sink_req" />
+<TGConnectingPoint num="0" id="593" />
+<extraparam>
+<Prop commName="sink_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="596" >
+<father id="605" num="2" />
+<cdparam x="1523" y="341" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" />
+<infoparam name="Primitive port" value="Event sink_evt_in" />
+<TGConnectingPoint num="0" id="595" />
+<extraparam>
+<Prop commName="sink_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="618" >
+<father id="684" num="1" />
+<cdparam x="1535" y="205" />
+<sizeparam width="148" height="86" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="60" minY="0" maxY="196" />
+<infoparam name="Primitive component" value="X_Sink" />
+<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>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="607" >
+<father id="618" num="0" />
+<cdparam x="1549" y="278" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="135" minY="-13" maxY="73" />
+<infoparam name="Primitive port" value="Request sink_req" />
+<TGConnectingPoint num="0" id="606" />
+<extraparam>
+<Prop commName="sink_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="609" >
+<father id="618" num="1" />
+<cdparam x="1522" y="237" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="135" minY="-13" maxY="73" />
+<infoparam name="Primitive port" value="Channel sink_ch_in" />
+<TGConnectingPoint num="0" id="608" />
+<extraparam>
+<Prop commName="sink_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="true" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="sink_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="637" >
+<father id="684" num="2" />
+<cdparam x="1481" y="341" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" />
+<infoparam name="Composite port" value="" />
+<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" />
+<TGConnectingPoint num="8" id="627" />
+<TGConnectingPoint num="9" id="628" />
+<TGConnectingPoint num="10" id="629" />
+<TGConnectingPoint num="11" id="630" />
+<TGConnectingPoint num="12" id="631" />
+<TGConnectingPoint num="13" id="632" />
+<TGConnectingPoint num="14" id="633" />
+<TGConnectingPoint num="15" id="634" />
+<TGConnectingPoint num="16" id="635" />
+<TGConnectingPoint num="17" id="636" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="656" >
+<father id="684" num="3" />
+<cdparam x="1481" y="397" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="638" />
+<TGConnectingPoint num="1" id="639" />
+<TGConnectingPoint num="2" id="640" />
+<TGConnectingPoint num="3" id="641" />
+<TGConnectingPoint num="4" id="642" />
+<TGConnectingPoint num="5" id="643" />
+<TGConnectingPoint num="6" id="644" />
+<TGConnectingPoint num="7" id="645" />
+<TGConnectingPoint num="8" id="646" />
+<TGConnectingPoint num="9" id="647" />
+<TGConnectingPoint num="10" id="648" />
+<TGConnectingPoint num="11" id="649" />
+<TGConnectingPoint num="12" id="650" />
+<TGConnectingPoint num="13" id="651" />
+<TGConnectingPoint num="14" id="652" />
+<TGConnectingPoint num="15" id="653" />
+<TGConnectingPoint num="16" id="654" />
+<TGConnectingPoint num="17" id="655" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="675" >
+<father id="684" num="4" />
+<cdparam x="1481" y="237" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="657" />
+<TGConnectingPoint num="1" id="658" />
+<TGConnectingPoint num="2" id="659" />
+<TGConnectingPoint num="3" id="660" />
+<TGConnectingPoint num="4" id="661" />
+<TGConnectingPoint num="5" id="662" />
+<TGConnectingPoint num="6" id="663" />
+<TGConnectingPoint num="7" id="664" />
+<TGConnectingPoint num="8" id="665" />
+<TGConnectingPoint num="9" id="666" />
+<TGConnectingPoint num="10" id="667" />
+<TGConnectingPoint num="11" id="668" />
+<TGConnectingPoint num="12" id="669" />
+<TGConnectingPoint num="13" id="670" />
+<TGConnectingPoint num="14" id="671" />
+<TGConnectingPoint num="15" id="672" />
+<TGConnectingPoint num="16" id="673" />
+<TGConnectingPoint num="17" id="674" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1200" id="799" >
+<cdparam x="1186" y="309" />
+<sizeparam width="211" height="254" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="Composite component" value="CWP_Q" />
+<TGConnectingPoint num="0" id="791" />
+<TGConnectingPoint num="1" id="792" />
+<TGConnectingPoint num="2" id="793" />
+<TGConnectingPoint num="3" id="794" />
+<TGConnectingPoint num="4" id="795" />
+<TGConnectingPoint num="5" id="796" />
+<TGConnectingPoint num="6" id="797" />
+<TGConnectingPoint num="7" id="798" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1201" id="703" >
+<father id="799" num="0" />
+<cdparam x="1173" y="375" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="685" />
+<TGConnectingPoint num="1" id="686" />
+<TGConnectingPoint num="2" id="687" />
+<TGConnectingPoint num="3" id="688" />
+<TGConnectingPoint num="4" id="689" />
+<TGConnectingPoint num="5" id="690" />
+<TGConnectingPoint num="6" id="691" />
+<TGConnectingPoint num="7" id="692" />
+<TGConnectingPoint num="8" id="693" />
+<TGConnectingPoint num="9" id="694" />
+<TGConnectingPoint num="10" id="695" />
+<TGConnectingPoint num="11" id="696" />
+<TGConnectingPoint num="12" id="697" />
+<TGConnectingPoint num="13" id="698" />
+<TGConnectingPoint num="14" id="699" />
+<TGConnectingPoint num="15" id="700" />
+<TGConnectingPoint num="16" id="701" />
+<TGConnectingPoint num="17" id="702" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="718" >
+<father id="799" num="1" />
+<cdparam x="1224" y="471" />
+<sizeparam width="138" height="82" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="73" minY="0" maxY="172" />
+<infoparam name="Primitive component" value="F_CWP_Q" />
+<TGConnectingPoint num="0" id="710" />
+<TGConnectingPoint num="1" id="711" />
+<TGConnectingPoint num="2" id="712" />
+<TGConnectingPoint num="3" id="713" />
+<TGConnectingPoint num="4" id="714" />
+<TGConnectingPoint num="5" id="715" />
+<TGConnectingPoint num="6" id="716" />
+<TGConnectingPoint num="7" id="717" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="705" >
+<father id="718" num="0" />
+<cdparam x="1322" y="458" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Request cwpQ_req" />
+<TGConnectingPoint num="0" id="704" />
+<extraparam>
+<Prop commName="cwpQ_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="707" >
+<father id="718" num="1" />
+<cdparam x="1211" y="487" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Event cwpQ_evt_in" />
+<TGConnectingPoint num="0" id="706" />
+<extraparam>
+<Prop commName="cwpQ_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="709" >
+<father id="718" num="2" />
+<cdparam x="1349" y="510" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Event cwpQ_evt_out" />
+<TGConnectingPoint num="0" id="708" />
+<extraparam>
+<Prop commName="cwpQ_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="733" >
+<father id="799" num="2" />
+<cdparam x="1220" y="353" />
+<sizeparam width="144" height="84" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="67" minY="0" maxY="170" />
+<infoparam name="Primitive component" value="X_CWP_Q" />
+<TGConnectingPoint num="0" id="725" />
+<TGConnectingPoint num="1" id="726" />
+<TGConnectingPoint num="2" id="727" />
+<TGConnectingPoint num="3" id="728" />
+<TGConnectingPoint num="4" id="729" />
+<TGConnectingPoint num="5" id="730" />
+<TGConnectingPoint num="6" id="731" />
+<TGConnectingPoint num="7" id="732" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="720" >
+<father id="733" num="0" />
+<cdparam x="1236" y="424" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" />
+<infoparam name="Primitive port" value="Request cwpQ_req" />
+<TGConnectingPoint num="0" id="719" />
+<extraparam>
+<Prop commName="cwpQ_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="722" >
+<father id="733" num="1" />
+<cdparam x="1207" y="375" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" />
+<infoparam name="Primitive port" value="Channel cwpQ_ch_in" />
+<TGConnectingPoint num="0" id="721" />
+<extraparam>
+<Prop commName="cwpQ_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="724" >
+<father id="733" num="2" />
+<cdparam x="1351" y="380" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" />
+<infoparam name="Primitive port" value="Channel cwpQ_ch_out" />
+<TGConnectingPoint num="0" id="723" />
+<extraparam>
+<Prop commName="cwpQ_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="752" >
+<father id="799" num="3" />
+<cdparam x="1173" y="487" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="734" />
+<TGConnectingPoint num="1" id="735" />
+<TGConnectingPoint num="2" id="736" />
+<TGConnectingPoint num="3" id="737" />
+<TGConnectingPoint num="4" id="738" />
+<TGConnectingPoint num="5" id="739" />
+<TGConnectingPoint num="6" id="740" />
+<TGConnectingPoint num="7" id="741" />
+<TGConnectingPoint num="8" id="742" />
+<TGConnectingPoint num="9" id="743" />
+<TGConnectingPoint num="10" id="744" />
+<TGConnectingPoint num="11" id="745" />
+<TGConnectingPoint num="12" id="746" />
+<TGConnectingPoint num="13" id="747" />
+<TGConnectingPoint num="14" id="748" />
+<TGConnectingPoint num="15" id="749" />
+<TGConnectingPoint num="16" id="750" />
+<TGConnectingPoint num="17" id="751" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="771" >
+<father id="799" num="4" />
+<cdparam x="1384" y="510" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="753" />
+<TGConnectingPoint num="1" id="754" />
+<TGConnectingPoint num="2" id="755" />
+<TGConnectingPoint num="3" id="756" />
+<TGConnectingPoint num="4" id="757" />
+<TGConnectingPoint num="5" id="758" />
+<TGConnectingPoint num="6" id="759" />
+<TGConnectingPoint num="7" id="760" />
+<TGConnectingPoint num="8" id="761" />
+<TGConnectingPoint num="9" id="762" />
+<TGConnectingPoint num="10" id="763" />
+<TGConnectingPoint num="11" id="764" />
+<TGConnectingPoint num="12" id="765" />
+<TGConnectingPoint num="13" id="766" />
+<TGConnectingPoint num="14" id="767" />
+<TGConnectingPoint num="15" id="768" />
+<TGConnectingPoint num="16" id="769" />
+<TGConnectingPoint num="17" id="770" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="790" >
+<father id="799" num="5" />
+<cdparam x="1384" y="380" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="772" />
+<TGConnectingPoint num="1" id="773" />
+<TGConnectingPoint num="2" id="774" />
+<TGConnectingPoint num="3" id="775" />
+<TGConnectingPoint num="4" id="776" />
+<TGConnectingPoint num="5" id="777" />
+<TGConnectingPoint num="6" id="778" />
+<TGConnectingPoint num="7" id="779" />
+<TGConnectingPoint num="8" id="780" />
+<TGConnectingPoint num="9" id="781" />
+<TGConnectingPoint num="10" id="782" />
+<TGConnectingPoint num="11" id="783" />
+<TGConnectingPoint num="12" id="784" />
+<TGConnectingPoint num="13" id="785" />
+<TGConnectingPoint num="14" id="786" />
+<TGConnectingPoint num="15" id="787" />
+<TGConnectingPoint num="16" id="788" />
+<TGConnectingPoint num="17" id="789" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1200" id="914" >
+<cdparam x="1186" y="17" />
+<sizeparam width="214" height="280" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" />
+<infoparam name="Composite component" value="CWP_I" />
+<TGConnectingPoint num="0" id="906" />
+<TGConnectingPoint num="1" id="907" />
+<TGConnectingPoint num="2" id="908" />
+<TGConnectingPoint num="3" id="909" />
+<TGConnectingPoint num="4" id="910" />
+<TGConnectingPoint num="5" id="911" />
+<TGConnectingPoint num="6" id="912" />
+<TGConnectingPoint num="7" id="913" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1201" id="818" >
+<father id="914" num="0" />
+<cdparam x="1387" y="111" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="800" />
+<TGConnectingPoint num="1" id="801" />
+<TGConnectingPoint num="2" id="802" />
+<TGConnectingPoint num="3" id="803" />
+<TGConnectingPoint num="4" id="804" />
+<TGConnectingPoint num="5" id="805" />
+<TGConnectingPoint num="6" id="806" />
+<TGConnectingPoint num="7" id="807" />
+<TGConnectingPoint num="8" id="808" />
+<TGConnectingPoint num="9" id="809" />
+<TGConnectingPoint num="10" id="810" />
+<TGConnectingPoint num="11" id="811" />
+<TGConnectingPoint num="12" id="812" />
+<TGConnectingPoint num="13" id="813" />
+<TGConnectingPoint num="14" id="814" />
+<TGConnectingPoint num="15" id="815" />
+<TGConnectingPoint num="16" id="816" />
+<TGConnectingPoint num="17" id="817" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="833" >
+<father id="914" num="1" />
+<cdparam x="1222" y="194" />
+<sizeparam width="143" height="86" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="71" minY="0" maxY="194" />
+<infoparam name="Primitive component" value="F_CWP_I" />
+<TGConnectingPoint num="0" id="825" />
+<TGConnectingPoint num="1" id="826" />
+<TGConnectingPoint num="2" id="827" />
+<TGConnectingPoint num="3" id="828" />
+<TGConnectingPoint num="4" id="829" />
+<TGConnectingPoint num="5" id="830" />
+<TGConnectingPoint num="6" id="831" />
+<TGConnectingPoint num="7" id="832" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="820" >
+<father id="833" num="0" />
+<cdparam x="1320" y="181" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" />
+<infoparam name="Primitive port" value="Request cwpI_req" />
+<TGConnectingPoint num="0" id="819" />
+<extraparam>
+<Prop commName="cwpI_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="822" >
+<father id="833" num="1" />
+<cdparam x="1209" y="249" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" />
+<infoparam name="Primitive port" value="Event cwpI_evt_in" />
+<TGConnectingPoint num="0" id="821" />
+<extraparam>
+<Prop commName="cwpI_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="824" >
+<father id="833" num="2" />
+<cdparam x="1352" y="249" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" />
+<infoparam name="Primitive port" value="Event cwpI_evt_out" />
+<TGConnectingPoint num="0" id="823" />
+<extraparam>
+<Prop commName="cwpI_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="848" >
+<father id="914" num="2" />
+<cdparam x="1220" y="62" />
+<sizeparam width="144" height="96" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="70" minY="0" maxY="184" />
+<infoparam name="Primitive component" value="X_CWP_I" />
+<TGConnectingPoint num="0" id="840" />
+<TGConnectingPoint num="1" id="841" />
+<TGConnectingPoint num="2" id="842" />
+<TGConnectingPoint num="3" id="843" />
+<TGConnectingPoint num="4" id="844" />
+<TGConnectingPoint num="5" id="845" />
+<TGConnectingPoint num="6" id="846" />
+<TGConnectingPoint num="7" id="847" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="835" >
+<father id="848" num="0" />
+<cdparam x="1244" y="145" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Request cwpI_req" />
+<TGConnectingPoint num="0" id="834" />
+<extraparam>
+<Prop commName="cwpI_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="837" >
+<father id="848" num="1" />
+<cdparam x="1207" y="110" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Channel cwpI_ch_in" />
+<TGConnectingPoint num="0" id="836" />
+<extraparam>
+<Prop commName="cwpI_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="839" >
+<father id="848" num="2" />
+<cdparam x="1351" y="111" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Channel cwpI_ch_out" />
+<TGConnectingPoint num="0" id="838" />
+<extraparam>
+<Prop commName="cwpI_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="867" >
+<father id="914" num="3" />
+<cdparam x="1173" y="249" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="849" />
+<TGConnectingPoint num="1" id="850" />
+<TGConnectingPoint num="2" id="851" />
+<TGConnectingPoint num="3" id="852" />
+<TGConnectingPoint num="4" id="853" />
+<TGConnectingPoint num="5" id="854" />
+<TGConnectingPoint num="6" id="855" />
+<TGConnectingPoint num="7" id="856" />
+<TGConnectingPoint num="8" id="857" />
+<TGConnectingPoint num="9" id="858" />
+<TGConnectingPoint num="10" id="859" />
+<TGConnectingPoint num="11" id="860" />
+<TGConnectingPoint num="12" id="861" />
+<TGConnectingPoint num="13" id="862" />
+<TGConnectingPoint num="14" id="863" />
+<TGConnectingPoint num="15" id="864" />
+<TGConnectingPoint num="16" id="865" />
+<TGConnectingPoint num="17" id="866" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="886" >
+<father id="914" num="4" />
+<cdparam x="1173" y="110" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="868" />
+<TGConnectingPoint num="1" id="869" />
+<TGConnectingPoint num="2" id="870" />
+<TGConnectingPoint num="3" id="871" />
+<TGConnectingPoint num="4" id="872" />
+<TGConnectingPoint num="5" id="873" />
+<TGConnectingPoint num="6" id="874" />
+<TGConnectingPoint num="7" id="875" />
+<TGConnectingPoint num="8" id="876" />
+<TGConnectingPoint num="9" id="877" />
+<TGConnectingPoint num="10" id="878" />
+<TGConnectingPoint num="11" id="879" />
+<TGConnectingPoint num="12" id="880" />
+<TGConnectingPoint num="13" id="881" />
+<TGConnectingPoint num="14" id="882" />
+<TGConnectingPoint num="15" id="883" />
+<TGConnectingPoint num="16" id="884" />
+<TGConnectingPoint num="17" id="885" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="905" >
+<father id="914" num="5" />
+<cdparam x="1387" y="249" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="887" />
+<TGConnectingPoint num="1" id="888" />
+<TGConnectingPoint num="2" id="889" />
+<TGConnectingPoint num="3" id="890" />
+<TGConnectingPoint num="4" id="891" />
+<TGConnectingPoint num="5" id="892" />
+<TGConnectingPoint num="6" id="893" />
+<TGConnectingPoint num="7" id="894" />
+<TGConnectingPoint num="8" id="895" />
+<TGConnectingPoint num="9" id="896" />
+<TGConnectingPoint num="10" id="897" />
+<TGConnectingPoint num="11" id="898" />
+<TGConnectingPoint num="12" id="899" />
+<TGConnectingPoint num="13" id="900" />
+<TGConnectingPoint num="14" id="901" />
+<TGConnectingPoint num="15" id="902" />
+<TGConnectingPoint num="16" id="903" />
+<TGConnectingPoint num="17" id="904" />
+</SUBCOMPONENT>
+
+
+</TMLComponentTaskDiagramPanel>
+
+<TMLActivityDiagramPanel name="X_Source" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1013" id="918" >
+<cdparam x="402" y="189" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="916" />
+<TGConnectingPoint num="1" id="917" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="915" >
+<father id="918" num="0" />
+<cdparam x="417" y="209" />
+<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1001" id="920" >
+<cdparam x="397" y="342" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="919" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="923" >
+<cdparam x="340" y="270" />
+<sizeparam width="135" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="Source_ch_out(size)" />
+<TGConnectingPoint num="0" id="921" />
+<TGConnectingPoint num="1" id="922" />
+<accessibility />
+<extraparam>
+<Data channelName="Source_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1034" id="926" >
+<cdparam x="351" y="113" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read args" value="getReqArg (size)" />
+<TGConnectingPoint num="0" id="924" />
+<TGConnectingPoint num="1" id="925" />
+<extraparam>
+<Data nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="928" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="927" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="929" >
+<cdparam x="462" y="222" />
+<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="224" id="917" />
+<P2  x="407" y="265" id="921" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="930" >
+<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" />
+<P1  x="407" y="70" id="927" />
+<P2  x="407" y="108" id="924" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="931" >
+<cdparam x="402" y="256" />
+<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="295" id="922" />
+<P2  x="407" y="337" id="919" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="932" >
+<cdparam x="407" y="155" />
+<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="138" id="925" />
+<P2  x="407" y="184" id="916" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_Source" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1001" id="934" >
+<cdparam x="397" y="338" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="933" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="937" >
+<cdparam x="338" y="262" />
+<sizeparam width="139" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="Source_evt_out(size)" />
+<TGConnectingPoint num="0" id="935" />
+<TGConnectingPoint num="1" id="936" />
+<extraparam>
+<Data eventName="Source_evt_out" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="940" >
+<cdparam x="351" y="188" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="source_req(size)" />
+<TGConnectingPoint num="0" id="938" />
+<TGConnectingPoint num="1" id="939" />
+<extraparam>
+<Data requestName="source_req" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="943" >
+<cdparam x="370" y="116" />
+<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="action state" value="size = 127" />
+<TGConnectingPoint num="0" id="941" />
+<TGConnectingPoint num="1" id="942" />
+</COMPONENT>
+
+<COMPONENT type="1000" id="945" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="944" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="946" >
+<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" />
+<P1  x="407" y="70" id="944" />
+<P2  x="407" y="111" id="941" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="947" >
+<cdparam x="407" y="141" />
+<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="141" id="942" />
+<P2  x="407" y="183" id="938" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="948" >
+<cdparam x="407" y="213" />
+<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="213" id="939" />
+<P2  x="407" y="257" id="935" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="949" >
+<cdparam x="407" y="287" />
+<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="287" id="936" />
+<P2  x="407" y="333" id="933" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="X_Symbol2ChipSeq" minX="10" maxX="495" minY="10" maxY="467" >
+<COMPONENT type="1021" id="953" >
+<cdparam x="393" y="289" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" />
+<infoparam name="execC" value="null" />
+<TGConnectingPoint num="0" id="951" />
+<TGConnectingPoint num="1" id="952" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="950" >
+<father id="953" num="0" />
+<cdparam x="408" y="309" />
+<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1009" id="956" >
+<cdparam x="305" y="213" />
+<sizeparam width="187" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" />
+<infoparam name="read channel" value="symbol2ChipSeq_ch_in(size) " />
+<TGConnectingPoint num="0" id="954" />
+<TGConnectingPoint num="1" id="955" />
+<extraparam>
+<Data channelName="symbol2ChipSeq_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="958" >
+<cdparam x="388" y="447" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="957" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="961" >
+<cdparam x="302" y="375" />
+<sizeparam width="193" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" />
+<infoparam name="write channel" value="symbol2ChipSeq_ch_out(size)" />
+<TGConnectingPoint num="0" id="959" />
+<TGConnectingPoint num="1" id="960" />
+<extraparam>
+<Data channelName="symbol2ChipSeq_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1034" id="964" >
+<cdparam x="342" y="137" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" />
+<infoparam name="read args" value="getReqArg (size)" />
+<TGConnectingPoint num="0" id="962" />
+<TGConnectingPoint num="1" id="963" />
+<extraparam>
+<Data nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="966" >
+<cdparam x="391" y="74" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="965" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="967" >
+<cdparam x="541" y="169" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="398" y="238" id="955" />
+<P2  x="398" y="284" id="951" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="968" >
+<cdparam x="453" 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="398" y="324" id="952" />
+<P2  x="398" y="370" id="959" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="969" >
+<cdparam x="398" y="94" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="398" y="94" id="965" />
+<P2  x="398" y="132" id="962" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="970" >
+<cdparam x="393" y="361" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="398" y="400" id="960" />
+<P2  x="398" y="442" id="957" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="971" >
+<cdparam x="398" y="179" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="398" y="162" id="963" />
+<P2  x="398" y="208" id="954" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_Symbol2ChipSeq" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="974" >
+<cdparam x="317" y="132" />
+<sizeparam width="156" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="bit2symbol_evt_in(size) " />
+<TGConnectingPoint num="0" id="972" />
+<TGConnectingPoint num="1" id="973" />
+<extraparam>
+<Data eventName="bit2symbol_evt_in" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="976" >
+<cdparam x="385" y="354" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="975" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="979" >
+<cdparam x="314" y="278" />
+<sizeparam width="162" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="bit2symbol_evt_out(size)" />
+<TGConnectingPoint num="0" id="977" />
+<TGConnectingPoint num="1" id="978" />
+<accessibility />
+<extraparam>
+<Data eventName="bit2symbol_evt_out" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="982" >
+<cdparam x="335" y="204" />
+<sizeparam width="120" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="bit2chip_req(size)" />
+<TGConnectingPoint num="0" id="980" />
+<TGConnectingPoint num="1" id="981" />
+<extraparam>
+<Data requestName="bit2chip_req" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="984" >
+<cdparam x="388" y="66" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="983" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="985" >
+<cdparam x="395" y="229" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="395" y="229" id="981" />
+<P2  x="395" y="273" id="977" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="986" >
+<cdparam x="395" y="303" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="395" y="303" id="978" />
+<P2  x="395" y="349" id="975" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="987" >
+<cdparam x="395" y="86" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="395" y="86" id="983" />
+<P2  x="395" y="127" id="972" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="988" >
+<cdparam x="435" y="149" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="395" y="157" id="973" />
+<P2  x="395" y="199" id="980" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="X_Chip2Octet" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1021" id="992" >
+<cdparam x="377" y="300" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="execC" value="null" />
+<TGConnectingPoint num="0" id="990" />
+<TGConnectingPoint num="1" id="991" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="989" >
+<father id="992" num="0" />
+<cdparam x="392" y="320" />
+<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1009" id="995" >
+<cdparam x="306" y="215" />
+<sizeparam width="152" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="chip2octet_ch_in(size) " />
+<TGConnectingPoint num="0" id="993" />
+<TGConnectingPoint num="1" id="994" />
+<extraparam>
+<Data channelName="chip2octet_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="997" >
+<cdparam x="372" y="449" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="996" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="1000" >
+<cdparam x="303" y="377" />
+<sizeparam width="158" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="chip2octet_ch_out(size)" />
+<TGConnectingPoint num="0" id="998" />
+<TGConnectingPoint num="1" id="999" />
+<extraparam>
+<Data channelName="chip2octet_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1034" id="1003" >
+<cdparam x="326" y="139" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read args" value="getReqArg (size)" />
+<TGConnectingPoint num="0" id="1001" />
+<TGConnectingPoint num="1" id="1002" />
+<extraparam>
+<Data nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1005" >
+<cdparam x="375" y="76" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1004" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="1006" >
+<cdparam x="525" y="171" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="382" y="240" id="994" />
+<P2  x="382" y="295" id="990" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1007" >
+<cdparam x="437" y="329" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="382" y="335" id="991" />
+<P2  x="382" y="372" id="998" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1008" >
+<cdparam x="382" y="96" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="382" y="96" id="1004" />
+<P2  x="382" y="134" id="1001" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1009" >
+<cdparam x="377" y="363" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="382" y="402" id="999" />
+<P2  x="382" y="444" id="996" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1010" >
+<cdparam x="382" y="181" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="382" y="164" id="1002" />
+<P2  x="382" y="210" id="993" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_Chip2Octet" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="1013" >
+<cdparam x="333" y="128" />
+<sizeparam width="156" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="chip2octet_evt_in(size) " />
+<TGConnectingPoint num="0" id="1011" />
+<TGConnectingPoint num="1" id="1012" />
+<extraparam>
+<Data eventName="chip2octet_evt_in" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1015" >
+<cdparam x="401" y="350" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1014" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1018" >
+<cdparam x="330" y="274" />
+<sizeparam width="162" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="chip2octet_evt_out(size)" />
+<TGConnectingPoint num="0" id="1016" />
+<TGConnectingPoint num="1" id="1017" />
+<extraparam>
+<Data eventName="chip2octet_evt_out" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="1021" >
+<cdparam x="343" y="200" />
+<sizeparam width="137" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="chip2octet_req(size)" />
+<TGConnectingPoint num="0" id="1019" />
+<TGConnectingPoint num="1" id="1020" />
+<extraparam>
+<Data requestName="chip2octet_req" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1023" >
+<cdparam x="404" y="62" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1022" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="1024" >
+<cdparam x="411" 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="411" y="225" id="1020" />
+<P2  x="411" y="269" id="1016" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1025" >
+<cdparam x="411" y="299" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="411" y="299" id="1017" />
+<P2  x="411" y="345" id="1014" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1026" >
+<cdparam x="411" y="82" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="411" y="82" id="1022" />
+<P2  x="411" y="123" id="1011" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1027" >
+<cdparam x="451" y="145" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="411" y="153" id="1012" />
+<P2  x="411" y="195" id="1019" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="X_CWL" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1013" id="1031" >
+<cdparam x="402" y="277" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="1029" />
+<TGConnectingPoint num="1" id="1030" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="1028" >
+<father id="1031" num="0" />
+<cdparam x="417" y="297" />
+<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1009" id="1034" >
+<cdparam x="355" y="196" />
+<sizeparam width="104" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="cwl_ch_in(size) " />
+<TGConnectingPoint num="0" id="1032" />
+<TGConnectingPoint num="1" id="1033" />
+<extraparam>
+<Data channelName="cwl_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1036" >
+<cdparam x="397" y="430" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1035" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="1039" >
+<cdparam x="352" y="358" />
+<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="cwl_ch_out(size)" />
+<TGConnectingPoint num="0" id="1037" />
+<TGConnectingPoint num="1" id="1038" />
+<extraparam>
+<Data channelName="cwl_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1034" id="1042" >
+<cdparam x="351" y="120" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read args" value="getReqArg (size)" />
+<TGConnectingPoint num="0" id="1040" />
+<TGConnectingPoint num="1" id="1041" />
+<extraparam>
+<Data nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1044" >
+<cdparam x="400" y="57" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1043" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="1045" >
+<cdparam x="550" y="152" />
+<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="221" id="1033" />
+<P2  x="407" y="272" id="1029" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1046" >
+<cdparam x="462" y="310" />
+<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="312" id="1030" />
+<P2  x="407" y="353" id="1037" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1047" >
+<cdparam x="407" y="77" />
+<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="77" id="1043" />
+<P2  x="407" y="115" id="1040" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1048" >
+<cdparam x="402" y="344" />
+<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="383" id="1038" />
+<P2  x="407" y="425" id="1035" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1049" >
+<cdparam x="407" y="162" />
+<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="145" id="1041" />
+<P2  x="407" y="191" id="1032" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_CWL" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="1052" >
+<cdparam x="360" y="134" />
+<sizeparam width="108" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="cwl_evt_in(size) " />
+<TGConnectingPoint num="0" id="1050" />
+<TGConnectingPoint num="1" id="1051" />
+<extraparam>
+<Data eventName="cwl_evt_in" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1054" >
+<cdparam x="407" y="397" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1053" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="1057" >
+<cdparam x="370" y="206" />
+<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="cwl_req(size)" />
+<TGConnectingPoint num="0" id="1055" />
+<TGConnectingPoint num="1" id="1056" />
+<extraparam>
+<Data requestName="cwl_req" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1059" >
+<cdparam x="407" y="68" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1058" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1062" >
+<cdparam x="352" y="333" />
+<sizeparam width="128" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="cwl_evt_out_1(size)" />
+<TGConnectingPoint num="0" id="1060" />
+<TGConnectingPoint num="1" id="1061" />
+<extraparam>
+<Data eventName="cwl_evt_out_1" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="1065" >
+<cdparam x="357" y="280" />
+<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="cwl_evt_out(size)" />
+<TGConnectingPoint num="0" id="1063" />
+<TGConnectingPoint num="1" id="1064" />
+<extraparam>
+<Data eventName="cwl_evt_out" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="115" id="1066" >
+<cdparam x="416" y="358" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="416" y="358" id="1061" />
+<P2  x="417" y="392" id="1053" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1067" >
+<cdparam x="414" y="231" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="414" y="231" id="1056" />
+<P2  x="414" y="275" id="1063" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1068" >
+<cdparam x="414" 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="414" y="305" id="1064" />
+<P2  x="416" y="328" id="1060" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1069" >
+<cdparam x="414" y="88" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="414" y="88" id="1058" />
+<P2  x="414" y="129" id="1050" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1070" >
+<cdparam x="454" y="151" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="414" y="159" id="1051" />
+<P2  x="414" y="201" id="1055" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="X_Sink" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1013" id="1074" >
+<cdparam x="445" y="298" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="1072" />
+<TGConnectingPoint num="1" id="1073" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="1071" >
+<father id="1074" num="0" />
+<cdparam x="460" y="318" />
+<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1009" id="1077" >
+<cdparam x="395" y="217" />
+<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="sink_ch_in(size) " />
+<TGConnectingPoint num="0" id="1075" />
+<TGConnectingPoint num="1" id="1076" />
+<extraparam>
+<Data channelName="sink_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1079" >
+<cdparam x="440" y="384" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1078" />
+</COMPONENT>
+
+<COMPONENT type="1034" id="1082" >
+<cdparam x="394" y="141" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read args" value="getReqArg (size)" />
+<TGConnectingPoint num="0" id="1080" />
+<TGConnectingPoint num="1" id="1081" />
+<extraparam>
+<Data nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1084" >
+<cdparam x="443" y="78" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1083" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="1085" >
+<cdparam x="450" y="333" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="450" y="333" id="1073" />
+<P2  x="450" y="379" id="1078" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1086" >
+<cdparam x="593" y="173" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="450" y="242" id="1076" />
+<P2  x="450" y="293" id="1072" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1087" >
+<cdparam x="450" y="98" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="450" y="98" id="1083" />
+<P2  x="450" y="136" id="1080" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1088" >
+<cdparam x="450" y="183" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="450" y="166" id="1081" />
+<P2  x="450" y="212" id="1075" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_Sink" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1001" id="1090" >
+<cdparam x="396" y="355" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1089" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="1093" >
+<cdparam x="331" y="265" />
+<sizeparam width="150" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="sink_req(size + size_1)" />
+<TGConnectingPoint num="0" id="1091" />
+<TGConnectingPoint num="1" id="1092" />
+<extraparam>
+<Data requestName="sink_req" nbOfParams="5" />
+<Param index="0" value="size + size_1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1095" >
+<cdparam x="400" y="73" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1094" />
+</COMPONENT>
+
+<COMPONENT type="1010" id="1098" >
+<cdparam x="336" y="187" />
+<sizeparam width="142" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="sink_evt_in_1(size_1) " />
+<TGConnectingPoint num="0" id="1096" />
+<TGConnectingPoint num="1" id="1097" />
+<extraparam>
+<Data eventName="sink_evt_in_1" nbOfParams="5" />
+<Param index="0" value="size_1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="1101" >
+<cdparam x="350" y="139" />
+<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="sink_evt_in(size) " />
+<TGConnectingPoint num="0" id="1099" />
+<TGConnectingPoint num="1" id="1100" />
+<extraparam>
+<Data eventName="sink_evt_in" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="115" id="1102" >
+<cdparam x="407" y="212" />
+<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="212" id="1097" />
+<P2  x="406" y="260" id="1091" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1103" >
+<cdparam x="406" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="406" y="290" id="1092" />
+<P2  x="406" y="350" id="1089" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1104" >
+<cdparam x="407" y="93" />
+<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="93" id="1094" />
+<P2  x="407" y="134" id="1099" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1105" >
+<cdparam x="447" y="156" />
+<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="164" id="1100" />
+<P2  x="407" y="182" id="1096" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="X_CWP_Q" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1013" id="1109" >
+<cdparam x="365" y="275" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="1107" />
+<TGConnectingPoint num="1" id="1108" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="1106" >
+<father id="1109" num="0" />
+<cdparam x="380" y="295" />
+<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1009" id="1112" >
+<cdparam x="311" y="194" />
+<sizeparam width="118" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="cwpQ_ch_in(size) " />
+<TGConnectingPoint num="0" id="1110" />
+<TGConnectingPoint num="1" id="1111" />
+<extraparam>
+<Data channelName="cwpQ_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1114" >
+<cdparam x="360" y="428" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1113" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="1117" >
+<cdparam x="308" y="356" />
+<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="cwpQ_ch_out(size)" />
+<TGConnectingPoint num="0" id="1115" />
+<TGConnectingPoint num="1" id="1116" />
+<extraparam>
+<Data channelName="cwpQ_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1034" id="1120" >
+<cdparam x="314" y="118" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read args" value="getReqArg (size)" />
+<TGConnectingPoint num="0" id="1118" />
+<TGConnectingPoint num="1" id="1119" />
+<extraparam>
+<Data nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1122" >
+<cdparam x="363" y="55" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1121" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="1123" >
+<cdparam x="513" y="150" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="370" y="219" id="1111" />
+<P2  x="370" y="270" id="1107" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1124" >
+<cdparam x="425" y="308" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="370" y="310" id="1108" />
+<P2  x="370" y="351" id="1115" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1125" >
+<cdparam x="370" y="75" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="370" y="75" id="1121" />
+<P2  x="370" y="113" id="1118" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1126" >
+<cdparam x="365" y="342" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="370" y="381" id="1116" />
+<P2  x="370" y="423" id="1113" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1127" >
+<cdparam x="370" y="160" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="370" y="143" id="1119" />
+<P2  x="370" y="189" id="1110" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_CWP_Q" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="1130" >
+<cdparam x="342" y="117" />
+<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="cwpQ_evt_in(size) " />
+<TGConnectingPoint num="0" id="1128" />
+<TGConnectingPoint num="1" id="1129" />
+<extraparam>
+<Data eventName="cwpQ_evt_in" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1132" >
+<cdparam x="393" y="339" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1131" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1135" >
+<cdparam x="339" y="263" />
+<sizeparam width="128" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="cwpQ_evt_out(size)" />
+<TGConnectingPoint num="0" id="1133" />
+<TGConnectingPoint num="1" id="1134" />
+<extraparam>
+<Data eventName="cwpQ_evt_out" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="1138" >
+<cdparam x="352" y="189" />
+<sizeparam width="103" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="cwpQ_req(size)" />
+<TGConnectingPoint num="0" id="1136" />
+<TGConnectingPoint num="1" id="1137" />
+<extraparam>
+<Data requestName="cwpQ_req" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1140" >
+<cdparam x="396" y="51" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1139" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="1141" >
+<cdparam x="403" y="214" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="403" y="214" id="1137" />
+<P2  x="403" y="258" id="1133" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1142" >
+<cdparam x="403" y="288" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="403" y="288" id="1134" />
+<P2  x="403" y="334" id="1131" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1143" >
+<cdparam x="403" y="71" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="403" y="71" id="1139" />
+<P2  x="403" y="112" id="1128" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1144" >
+<cdparam x="443" y="134" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="403" y="142" id="1129" />
+<P2  x="403" y="184" id="1136" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="X_CWP_I" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1013" id="1148" >
+<cdparam x="369" y="290" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="1146" />
+<TGConnectingPoint num="1" id="1147" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="1145" >
+<father id="1148" num="0" />
+<cdparam x="384" y="310" />
+<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1009" id="1151" >
+<cdparam x="318" y="209" />
+<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="cwpI_ch_in(size) " />
+<TGConnectingPoint num="0" id="1149" />
+<TGConnectingPoint num="1" id="1150" />
+<extraparam>
+<Data channelName="cwpI_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1153" >
+<cdparam x="364" y="443" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1152" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="1156" >
+<cdparam x="315" y="371" />
+<sizeparam width="118" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="cwpI_ch_out(size)" />
+<TGConnectingPoint num="0" id="1154" />
+<TGConnectingPoint num="1" id="1155" />
+<extraparam>
+<Data channelName="cwpI_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1034" id="1159" >
+<cdparam x="318" y="133" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read args" value="getReqArg (size)" />
+<TGConnectingPoint num="0" id="1157" />
+<TGConnectingPoint num="1" id="1158" />
+<extraparam>
+<Data nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1161" >
+<cdparam x="367" y="70" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1160" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="1162" >
+<cdparam x="517" y="165" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="374" y="234" id="1150" />
+<P2  x="374" y="285" id="1146" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1163" >
+<cdparam x="429" y="323" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="374" y="325" id="1147" />
+<P2  x="374" y="366" id="1154" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1164" >
+<cdparam x="374" y="90" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="374" y="90" id="1160" />
+<P2  x="374" y="128" id="1157" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1165" >
+<cdparam x="369" y="357" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="374" y="396" id="1155" />
+<P2  x="374" y="438" id="1152" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1166" >
+<cdparam x="374" y="175" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="374" y="158" id="1158" />
+<P2  x="374" y="204" id="1149" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_CWP_I" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="1169" >
+<cdparam x="321" y="132" />
+<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="cwpI_evt_in(size) " />
+<TGConnectingPoint num="0" id="1167" />
+<TGConnectingPoint num="1" id="1168" />
+<extraparam>
+<Data eventName="cwpI_evt_in" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="1171" >
+<cdparam x="369" y="354" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1170" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1174" >
+<cdparam x="318" y="278" />
+<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="cwpI_evt_out(size)" />
+<TGConnectingPoint num="0" id="1172" />
+<TGConnectingPoint num="1" id="1173" />
+<extraparam>
+<Data eventName="cwpI_evt_out" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="1177" >
+<cdparam x="331" y="204" />
+<sizeparam width="97" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="cwpI_req(size)" />
+<TGConnectingPoint num="0" id="1175" />
+<TGConnectingPoint num="1" id="1176" />
+<extraparam>
+<Data requestName="cwpI_req" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="1179" >
+<cdparam x="372" y="66" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1178" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="1180" >
+<cdparam x="379" y="229" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="379" y="229" id="1176" />
+<P2  x="379" y="273" id="1172" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1181" >
+<cdparam x="379" y="303" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="379" y="303" id="1173" />
+<P2  x="379" y="349" id="1170" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1182" >
+<cdparam x="379" y="86" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="379" y="86" id="1178" />
+<P2  x="379" y="127" id="1167" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1183" >
+<cdparam x="419" y="149" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="379" y="157" id="1168" />
+<P2  x="379" y="199" id="1175" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML CP" nameTab="CP_Memory_Copy" >
+<CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1507" id="1185" >
+<cdparam x="390" y="343" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1184" />
+</COMPONENT>
+
+<COMPONENT type="1510" id="1189" >
+<cdparam x="141" y="185" />
+<sizeparam width="164" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="for loop" value="for(i=counter;i&gt;0;i = i-1)" />
+<TGConnectingPoint num="0" id="1186" />
+<TGConnectingPoint num="1" id="1187" />
+<TGConnectingPoint num="2" id="1188" />
+<extraparam>
+<Data init="i=counter" condition="i&gt;0" increment="i = i-1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="1206" >
+<cdparam x="559" y="109" />
+<sizeparam width="354" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="Some parameters are mapping dependent:
+- samplesToLoad (depends on the application model)
+- the source and destination addresses
+" />
+<TGConnectingPoint num="0" id="1190" />
+<TGConnectingPoint num="1" id="1191" />
+<TGConnectingPoint num="2" id="1192" />
+<TGConnectingPoint num="3" id="1193" />
+<TGConnectingPoint num="4" id="1194" />
+<TGConnectingPoint num="5" id="1195" />
+<TGConnectingPoint num="6" id="1196" />
+<TGConnectingPoint num="7" id="1197" />
+<TGConnectingPoint num="8" id="1198" />
+<TGConnectingPoint num="9" id="1199" />
+<TGConnectingPoint num="10" id="1200" />
+<TGConnectingPoint num="11" id="1201" />
+<TGConnectingPoint num="12" id="1202" />
+<TGConnectingPoint num="13" id="1203" />
+<TGConnectingPoint num="14" id="1204" />
+<TGConnectingPoint num="15" id="1205" />
+<extraparam>
+<Line value="Some parameters are mapping dependent:" />
+<Line value="- samplesToLoad (depends on the application model)" />
+<Line value="- the source and destination addresses" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1505" id="1217" >
+<cdparam x="161" y="108" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Configure" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="1207" />
+<TGConnectingPoint num="1" id="1208" />
+<TGConnectingPoint num="2" id="1209" />
+<TGConnectingPoint num="3" id="1210" />
+<TGConnectingPoint num="4" id="1211" />
+<TGConnectingPoint num="5" id="1212" />
+<TGConnectingPoint num="6" id="1213" />
+<TGConnectingPoint num="7" id="1214" />
+<TGConnectingPoint num="8" id="1215" />
+<TGConnectingPoint num="9" id="1216" />
+</COMPONENT>
+
+<COMPONENT type="1507" id="1219" >
+<cdparam x="213" y="280" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1218" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="1230" >
+<cdparam x="338" y="245" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TransferCycle" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="1220" />
+<TGConnectingPoint num="1" id="1221" />
+<TGConnectingPoint num="2" id="1222" />
+<TGConnectingPoint num="3" id="1223" />
+<TGConnectingPoint num="4" id="1224" />
+<TGConnectingPoint num="5" id="1225" />
+<TGConnectingPoint num="6" id="1226" />
+<TGConnectingPoint num="7" id="1227" />
+<TGConnectingPoint num="8" id="1228" />
+<TGConnectingPoint num="9" id="1229" />
+</COMPONENT>
+
+<COMPONENT type="1506" id="1232" >
+<cdparam x="216" y="37" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="1231" />
+</COMPONENT>
+
+<CONNECTOR type="1501" id="1234" >
+<cdparam x="78" y="272" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="305" y="199" id="1187" />
+<P2  x="400" y="240" id="1220" />
+<Point x="400" y="199" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1233" >
+<father id="1234" num="0" />
+<cdparam x="400" y="199" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1501" id="1235" >
+<cdparam x="13" y="363" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="400" y="285" id="1221" />
+<P2  x="400" y="338" id="1184" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="1236" >
+<cdparam x="118" y="312" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="223" y="210" id="1188" />
+<P2  x="223" y="275" id="1218" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="1237" >
+<cdparam x="221" y="23" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="223" y="57" id="1231" />
+<P2  x="223" y="103" id="1207" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="1238" >
+<cdparam x="118" y="129" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="223" y="148" id="1208" />
+<P2  x="223" y="180" id="1186" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</CommunicationPatternDiagramPanel>
+
+<TMLSDPanel name="Configure" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1522" id="1313" >
+<cdparam x="220" y="55" />
+<sizeparam width="10" height="750" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU_Controller" value="Controller instance name" />
+<TGConnectingPoint num="0" id="1239" />
+<TGConnectingPoint num="1" id="1240" />
+<TGConnectingPoint num="2" id="1241" />
+<TGConnectingPoint num="3" id="1242" />
+<TGConnectingPoint num="4" id="1243" />
+<TGConnectingPoint num="5" id="1244" />
+<TGConnectingPoint num="6" id="1245" />
+<TGConnectingPoint num="7" id="1246" />
+<TGConnectingPoint num="8" id="1247" />
+<TGConnectingPoint num="9" id="1248" />
+<TGConnectingPoint num="10" id="1249" />
+<TGConnectingPoint num="11" id="1250" />
+<TGConnectingPoint num="12" id="1251" />
+<TGConnectingPoint num="13" id="1252" />
+<TGConnectingPoint num="14" id="1253" />
+<TGConnectingPoint num="15" id="1254" />
+<TGConnectingPoint num="16" id="1255" />
+<TGConnectingPoint num="17" id="1256" />
+<TGConnectingPoint num="18" id="1257" />
+<TGConnectingPoint num="19" id="1258" />
+<TGConnectingPoint num="20" id="1259" />
+<TGConnectingPoint num="21" id="1260" />
+<TGConnectingPoint num="22" id="1261" />
+<TGConnectingPoint num="23" id="1262" />
+<TGConnectingPoint num="24" id="1263" />
+<TGConnectingPoint num="25" id="1264" />
+<TGConnectingPoint num="26" id="1265" />
+<TGConnectingPoint num="27" id="1266" />
+<TGConnectingPoint num="28" id="1267" />
+<TGConnectingPoint num="29" id="1268" />
+<TGConnectingPoint num="30" id="1269" />
+<TGConnectingPoint num="31" id="1270" />
+<TGConnectingPoint num="32" id="1271" />
+<TGConnectingPoint num="33" id="1272" />
+<TGConnectingPoint num="34" id="1273" />
+<TGConnectingPoint num="35" id="1274" />
+<TGConnectingPoint num="36" id="1275" />
+<TGConnectingPoint num="37" id="1276" />
+<TGConnectingPoint num="38" id="1277" />
+<TGConnectingPoint num="39" id="1278" />
+<TGConnectingPoint num="40" id="1279" />
+<TGConnectingPoint num="41" id="1280" />
+<TGConnectingPoint num="42" id="1281" />
+<TGConnectingPoint num="43" id="1282" />
+<TGConnectingPoint num="44" id="1283" />
+<TGConnectingPoint num="45" id="1284" />
+<TGConnectingPoint num="46" id="1285" />
+<TGConnectingPoint num="47" id="1286" />
+<TGConnectingPoint num="48" id="1287" />
+<TGConnectingPoint num="49" id="1288" />
+<TGConnectingPoint num="50" id="1289" />
+<TGConnectingPoint num="51" id="1290" />
+<TGConnectingPoint num="52" id="1291" />
+<TGConnectingPoint num="53" id="1292" />
+<TGConnectingPoint num="54" id="1293" />
+<TGConnectingPoint num="55" id="1294" />
+<TGConnectingPoint num="56" id="1295" />
+<TGConnectingPoint num="57" id="1296" />
+<TGConnectingPoint num="58" id="1297" />
+<TGConnectingPoint num="59" id="1298" />
+<TGConnectingPoint num="60" id="1299" />
+<TGConnectingPoint num="61" id="1300" />
+<TGConnectingPoint num="62" id="1301" />
+<TGConnectingPoint num="63" id="1302" />
+<TGConnectingPoint num="64" id="1303" />
+<TGConnectingPoint num="65" id="1304" />
+<TGConnectingPoint num="66" id="1305" />
+<TGConnectingPoint num="67" id="1306" />
+<TGConnectingPoint num="68" id="1307" />
+<TGConnectingPoint num="69" id="1308" />
+<TGConnectingPoint num="70" id="1309" />
+<TGConnectingPoint num="71" id="1310" />
+<TGConnectingPoint num="72" id="1311" />
+<TGConnectingPoint num="73" id="1312" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+
+</TMLSDPanel>
+
+<TMLSDPanel name="TransferCycle" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1520" id="1363" >
+<cdparam x="1079" y="58" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Dst_Storage_Instance" value="Storage instance name" />
+<TGConnectingPoint num="0" id="1314" />
+<TGConnectingPoint num="1" id="1315" />
+<TGConnectingPoint num="2" id="1316" />
+<TGConnectingPoint num="3" id="1317" />
+<TGConnectingPoint num="4" id="1318" />
+<TGConnectingPoint num="5" id="1319" />
+<TGConnectingPoint num="6" id="1320" />
+<TGConnectingPoint num="7" id="1321" />
+<TGConnectingPoint num="8" id="1322" />
+<TGConnectingPoint num="9" id="1323" />
+<TGConnectingPoint num="10" id="1324" />
+<TGConnectingPoint num="11" id="1325" />
+<TGConnectingPoint num="12" id="1326" />
+<TGConnectingPoint num="13" id="1327" />
+<TGConnectingPoint num="14" id="1328" />
+<TGConnectingPoint num="15" id="1329" />
+<TGConnectingPoint num="16" id="1330" />
+<TGConnectingPoint num="17" id="1331" />
+<TGConnectingPoint num="18" id="1332" />
+<TGConnectingPoint num="19" id="1333" />
+<TGConnectingPoint num="20" id="1334" />
+<TGConnectingPoint num="21" id="1335" />
+<TGConnectingPoint num="22" id="1336" />
+<TGConnectingPoint num="23" id="1337" />
+<TGConnectingPoint num="24" id="1338" />
+<TGConnectingPoint num="25" id="1339" />
+<TGConnectingPoint num="26" id="1340" />
+<TGConnectingPoint num="27" id="1341" />
+<TGConnectingPoint num="28" id="1342" />
+<TGConnectingPoint num="29" id="1343" />
+<TGConnectingPoint num="30" id="1344" />
+<TGConnectingPoint num="31" id="1345" />
+<TGConnectingPoint num="32" id="1346" />
+<TGConnectingPoint num="33" id="1347" />
+<TGConnectingPoint num="34" id="1348" />
+<TGConnectingPoint num="35" id="1349" />
+<TGConnectingPoint num="36" id="1350" />
+<TGConnectingPoint num="37" id="1351" />
+<TGConnectingPoint num="38" id="1352" />
+<TGConnectingPoint num="39" id="1353" />
+<TGConnectingPoint num="40" id="1354" />
+<TGConnectingPoint num="41" id="1355" />
+<TGConnectingPoint num="42" id="1356" />
+<TGConnectingPoint num="43" id="1357" />
+<TGConnectingPoint num="44" id="1358" />
+<TGConnectingPoint num="45" id="1359" />
+<TGConnectingPoint num="46" id="1360" />
+<TGConnectingPoint num="47" id="1361" />
+<TGConnectingPoint num="48" id="1362" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="numData" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="1413" >
+<cdparam x="832" y="58" />
+<sizeparam width="10" height="501" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance2" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="1364" />
+<TGConnectingPoint num="1" id="1365" />
+<TGConnectingPoint num="2" id="1366" />
+<TGConnectingPoint num="3" id="1367" />
+<TGConnectingPoint num="4" id="1368" />
+<TGConnectingPoint num="5" id="1369" />
+<TGConnectingPoint num="6" id="1370" />
+<TGConnectingPoint num="7" id="1371" />
+<TGConnectingPoint num="8" id="1372" />
+<TGConnectingPoint num="9" id="1373" />
+<TGConnectingPoint num="10" id="1374" />
+<TGConnectingPoint num="11" id="1375" />
+<TGConnectingPoint num="12" id="1376" />
+<TGConnectingPoint num="13" id="1377" />
+<TGConnectingPoint num="14" id="1378" />
+<TGConnectingPoint num="15" id="1379" />
+<TGConnectingPoint num="16" id="1380" />
+<TGConnectingPoint num="17" id="1381" />
+<TGConnectingPoint num="18" id="1382" />
+<TGConnectingPoint num="19" id="1383" />
+<TGConnectingPoint num="20" id="1384" />
+<TGConnectingPoint num="21" id="1385" />
+<TGConnectingPoint num="22" id="1386" />
+<TGConnectingPoint num="23" id="1387" />
+<TGConnectingPoint num="24" id="1388" />
+<TGConnectingPoint num="25" id="1389" />
+<TGConnectingPoint num="26" id="1390" />
+<TGConnectingPoint num="27" id="1391" />
+<TGConnectingPoint num="28" id="1392" />
+<TGConnectingPoint num="29" id="1393" />
+<TGConnectingPoint num="30" id="1394" />
+<TGConnectingPoint num="31" id="1395" />
+<TGConnectingPoint num="32" id="1396" />
+<TGConnectingPoint num="33" id="1397" />
+<TGConnectingPoint num="34" id="1398" />
+<TGConnectingPoint num="35" id="1399" />
+<TGConnectingPoint num="36" id="1400" />
+<TGConnectingPoint num="37" id="1401" />
+<TGConnectingPoint num="38" id="1402" />
+<TGConnectingPoint num="39" id="1403" />
+<TGConnectingPoint num="40" id="1404" />
+<TGConnectingPoint num="41" id="1405" />
+<TGConnectingPoint num="42" id="1406" />
+<TGConnectingPoint num="43" id="1407" />
+<TGConnectingPoint num="44" id="1408" />
+<TGConnectingPoint num="45" id="1409" />
+<TGConnectingPoint num="46" id="1410" />
+<TGConnectingPoint num="47" id="1411" />
+<TGConnectingPoint num="48" id="1412" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="numData" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="1463" >
+<cdparam x="367" y="58" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_1" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="1414" />
+<TGConnectingPoint num="1" id="1415" />
+<TGConnectingPoint num="2" id="1416" />
+<TGConnectingPoint num="3" id="1417" />
+<TGConnectingPoint num="4" id="1418" />
+<TGConnectingPoint num="5" id="1419" />
+<TGConnectingPoint num="6" id="1420" />
+<TGConnectingPoint num="7" id="1421" />
+<TGConnectingPoint num="8" id="1422" />
+<TGConnectingPoint num="9" id="1423" />
+<TGConnectingPoint num="10" id="1424" />
+<TGConnectingPoint num="11" id="1425" />
+<TGConnectingPoint num="12" id="1426" />
+<TGConnectingPoint num="13" id="1427" />
+<TGConnectingPoint num="14" id="1428" />
+<TGConnectingPoint num="15" id="1429" />
+<TGConnectingPoint num="16" id="1430" />
+<TGConnectingPoint num="17" id="1431" />
+<TGConnectingPoint num="18" id="1432" />
+<TGConnectingPoint num="19" id="1433" />
+<TGConnectingPoint num="20" id="1434" />
+<TGConnectingPoint num="21" id="1435" />
+<TGConnectingPoint num="22" id="1436" />
+<TGConnectingPoint num="23" id="1437" />
+<TGConnectingPoint num="24" id="1438" />
+<TGConnectingPoint num="25" id="1439" />
+<TGConnectingPoint num="26" id="1440" />
+<TGConnectingPoint num="27" id="1441" />
+<TGConnectingPoint num="28" id="1442" />
+<TGConnectingPoint num="29" id="1443" />
+<TGConnectingPoint num="30" id="1444" />
+<TGConnectingPoint num="31" id="1445" />
+<TGConnectingPoint num="32" id="1446" />
+<TGConnectingPoint num="33" id="1447" />
+<TGConnectingPoint num="34" id="1448" />
+<TGConnectingPoint num="35" id="1449" />
+<TGConnectingPoint num="36" id="1450" />
+<TGConnectingPoint num="37" id="1451" />
+<TGConnectingPoint num="38" id="1452" />
+<TGConnectingPoint num="39" id="1453" />
+<TGConnectingPoint num="40" id="1454" />
+<TGConnectingPoint num="41" id="1455" />
+<TGConnectingPoint num="42" id="1456" />
+<TGConnectingPoint num="43" id="1457" />
+<TGConnectingPoint num="44" id="1458" />
+<TGConnectingPoint num="45" id="1459" />
+<TGConnectingPoint num="46" id="1460" />
+<TGConnectingPoint num="47" id="1461" />
+<TGConnectingPoint num="48" id="1462" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="numData" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1520" id="1513" >
+<cdparam x="608" y="58" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Src_Storage_Instance" value="Storage instance name" />
+<TGConnectingPoint num="0" id="1464" />
+<TGConnectingPoint num="1" id="1465" />
+<TGConnectingPoint num="2" id="1466" />
+<TGConnectingPoint num="3" id="1467" />
+<TGConnectingPoint num="4" id="1468" />
+<TGConnectingPoint num="5" id="1469" />
+<TGConnectingPoint num="6" id="1470" />
+<TGConnectingPoint num="7" id="1471" />
+<TGConnectingPoint num="8" id="1472" />
+<TGConnectingPoint num="9" id="1473" />
+<TGConnectingPoint num="10" id="1474" />
+<TGConnectingPoint num="11" id="1475" />
+<TGConnectingPoint num="12" id="1476" />
+<TGConnectingPoint num="13" id="1477" />
+<TGConnectingPoint num="14" id="1478" />
+<TGConnectingPoint num="15" id="1479" />
+<TGConnectingPoint num="16" id="1480" />
+<TGConnectingPoint num="17" id="1481" />
+<TGConnectingPoint num="18" id="1482" />
+<TGConnectingPoint num="19" id="1483" />
+<TGConnectingPoint num="20" id="1484" />
+<TGConnectingPoint num="21" id="1485" />
+<TGConnectingPoint num="22" id="1486" />
+<TGConnectingPoint num="23" id="1487" />
+<TGConnectingPoint num="24" id="1488" />
+<TGConnectingPoint num="25" id="1489" />
+<TGConnectingPoint num="26" id="1490" />
+<TGConnectingPoint num="27" id="1491" />
+<TGConnectingPoint num="28" id="1492" />
+<TGConnectingPoint num="29" id="1493" />
+<TGConnectingPoint num="30" id="1494" />
+<TGConnectingPoint num="31" id="1495" />
+<TGConnectingPoint num="32" id="1496" />
+<TGConnectingPoint num="33" id="1497" />
+<TGConnectingPoint num="34" id="1498" />
+<TGConnectingPoint num="35" id="1499" />
+<TGConnectingPoint num="36" id="1500" />
+<TGConnectingPoint num="37" id="1501" />
+<TGConnectingPoint num="38" id="1502" />
+<TGConnectingPoint num="39" id="1503" />
+<TGConnectingPoint num="40" id="1504" />
+<TGConnectingPoint num="41" id="1505" />
+<TGConnectingPoint num="42" id="1506" />
+<TGConnectingPoint num="43" id="1507" />
+<TGConnectingPoint num="44" id="1508" />
+<TGConnectingPoint num="45" id="1509" />
+<TGConnectingPoint num="46" id="1510" />
+<TGConnectingPoint num="47" id="1511" />
+<TGConnectingPoint num="48" id="1512" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="numData" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="1563" >
+<cdparam x="136" y="58" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU_Controller" value="Controller instance name" />
+<TGConnectingPoint num="0" id="1514" />
+<TGConnectingPoint num="1" id="1515" />
+<TGConnectingPoint num="2" id="1516" />
+<TGConnectingPoint num="3" id="1517" />
+<TGConnectingPoint num="4" id="1518" />
+<TGConnectingPoint num="5" id="1519" />
+<TGConnectingPoint num="6" id="1520" />
+<TGConnectingPoint num="7" id="1521" />
+<TGConnectingPoint num="8" id="1522" />
+<TGConnectingPoint num="9" id="1523" />
+<TGConnectingPoint num="10" id="1524" />
+<TGConnectingPoint num="11" id="1525" />
+<TGConnectingPoint num="12" id="1526" />
+<TGConnectingPoint num="13" id="1527" />
+<TGConnectingPoint num="14" id="1528" />
+<TGConnectingPoint num="15" id="1529" />
+<TGConnectingPoint num="16" id="1530" />
+<TGConnectingPoint num="17" id="1531" />
+<TGConnectingPoint num="18" id="1532" />
+<TGConnectingPoint num="19" id="1533" />
+<TGConnectingPoint num="20" id="1534" />
+<TGConnectingPoint num="21" id="1535" />
+<TGConnectingPoint num="22" id="1536" />
+<TGConnectingPoint num="23" id="1537" />
+<TGConnectingPoint num="24" id="1538" />
+<TGConnectingPoint num="25" id="1539" />
+<TGConnectingPoint num="26" id="1540" />
+<TGConnectingPoint num="27" id="1541" />
+<TGConnectingPoint num="28" id="1542" />
+<TGConnectingPoint num="29" id="1543" />
+<TGConnectingPoint num="30" id="1544" />
+<TGConnectingPoint num="31" id="1545" />
+<TGConnectingPoint num="32" id="1546" />
+<TGConnectingPoint num="33" id="1547" />
+<TGConnectingPoint num="34" id="1548" />
+<TGConnectingPoint num="35" id="1549" />
+<TGConnectingPoint num="36" id="1550" />
+<TGConnectingPoint num="37" id="1551" />
+<TGConnectingPoint num="38" id="1552" />
+<TGConnectingPoint num="39" id="1553" />
+<TGConnectingPoint num="40" id="1554" />
+<TGConnectingPoint num="41" id="1555" />
+<TGConnectingPoint num="42" id="1556" />
+<TGConnectingPoint num="43" id="1557" />
+<TGConnectingPoint num="44" id="1558" />
+<TGConnectingPoint num="45" id="1559" />
+<TGConnectingPoint num="46" id="1560" />
+<TGConnectingPoint num="47" id="1561" />
+<TGConnectingPoint num="48" id="1562" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="numData" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="1523" id="1564" >
+<cdparam x="846" y="309" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress, numData)" />
+<P1  x="837" y="208" id="1378" />
+<P2  x="1084" y="208" id="1328" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress" />
+<Param index="1" id="numData" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="1565" >
+<cdparam x="141" y="278" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress, numData)" />
+<P1  x="141" y="178" id="1525" />
+<P2  x="837" y="178" id="1375" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress" />
+<Param index="1" id="numData" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="1566" >
+<cdparam x="372" y="118" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress, numData)" />
+<P1  x="372" y="148" id="1422" />
+<P2  x="613" y="148" id="1472" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress" />
+<Param index="1" id="numData" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="1567" >
+<cdparam x="158" y="87" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress, numData)" />
+<P1  x="141" y="118" id="1519" />
+<P2  x="372" y="118" id="1419" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress" />
+<Param index="1" id="numData" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML CP" nameTab="DMA_transfer" >
+<CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="583" minY="10" maxY="412" >
+<COMPONENT type="1507" id="1569" >
+<cdparam x="381" y="392" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1568" />
+</COMPONENT>
+
+<COMPONENT type="1510" id="1573" >
+<cdparam x="107" y="220" />
+<sizeparam width="164" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" />
+<infoparam name="for loop" value="for(i=counter;i&gt;0;i = i-1)" />
+<TGConnectingPoint num="0" id="1570" />
+<TGConnectingPoint num="1" id="1571" />
+<TGConnectingPoint num="2" id="1572" />
+<extraparam>
+<Data init="i=counter" condition="i&gt;0" increment="i = i-1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="1590" >
+<cdparam x="270" y="67" />
+<sizeparam width="313" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" />
+<infoparam name="UML Note" value="Some parameters are mapping dependent:
+- counter (depends on the application)
+- the source and destination addresses
+
+This model supposes that the DMA informs the
+CPU via interrupts (no polling messages)
+" />
+<TGConnectingPoint num="0" id="1574" />
+<TGConnectingPoint num="1" id="1575" />
+<TGConnectingPoint num="2" id="1576" />
+<TGConnectingPoint num="3" id="1577" />
+<TGConnectingPoint num="4" id="1578" />
+<TGConnectingPoint num="5" id="1579" />
+<TGConnectingPoint num="6" id="1580" />
+<TGConnectingPoint num="7" id="1581" />
+<TGConnectingPoint num="8" id="1582" />
+<TGConnectingPoint num="9" id="1583" />
+<TGConnectingPoint num="10" id="1584" />
+<TGConnectingPoint num="11" id="1585" />
+<TGConnectingPoint num="12" id="1586" />
+<TGConnectingPoint num="13" id="1587" />
+<TGConnectingPoint num="14" id="1588" />
+<TGConnectingPoint num="15" id="1589" />
+<extraparam>
+<Line value="Some parameters are mapping dependent:" />
+<Line value="- counter (depends on the application)" />
+<Line value="- the source and destination addresses" />
+<Line value="" />
+<Line value="This model supposes that the DMA informs the" />
+<Line value="CPU via interrupts (no polling messages)" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1507" id="1592" >
+<cdparam x="179" y="374" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1591" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="1603" >
+<cdparam x="329" y="300" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" />
+<infoparam name="DMACycle_SD" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="1593" />
+<TGConnectingPoint num="1" id="1594" />
+<TGConnectingPoint num="2" id="1595" />
+<TGConnectingPoint num="3" id="1596" />
+<TGConnectingPoint num="4" id="1597" />
+<TGConnectingPoint num="5" id="1598" />
+<TGConnectingPoint num="6" id="1599" />
+<TGConnectingPoint num="7" id="1600" />
+<TGConnectingPoint num="8" id="1601" />
+<TGConnectingPoint num="9" id="1602" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="1614" >
+<cdparam x="127" y="299" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" />
+<infoparam name="TerminateDMA_SD" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="1604" />
+<TGConnectingPoint num="1" id="1605" />
+<TGConnectingPoint num="2" id="1606" />
+<TGConnectingPoint num="3" id="1607" />
+<TGConnectingPoint num="4" id="1608" />
+<TGConnectingPoint num="5" id="1609" />
+<TGConnectingPoint num="6" id="1610" />
+<TGConnectingPoint num="7" id="1611" />
+<TGConnectingPoint num="8" id="1612" />
+<TGConnectingPoint num="9" id="1613" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="1625" >
+<cdparam x="127" y="129" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" />
+<infoparam name="ConfigureDMA_SD" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="1615" />
+<TGConnectingPoint num="1" id="1616" />
+<TGConnectingPoint num="2" id="1617" />
+<TGConnectingPoint num="3" id="1618" />
+<TGConnectingPoint num="4" id="1619" />
+<TGConnectingPoint num="5" id="1620" />
+<TGConnectingPoint num="6" id="1621" />
+<TGConnectingPoint num="7" id="1622" />
+<TGConnectingPoint num="8" id="1623" />
+<TGConnectingPoint num="9" id="1624" />
+</COMPONENT>
+
+<COMPONENT type="1506" id="1627" >
+<cdparam x="182" y="65" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="1626" />
+</COMPONENT>
+
+<CONNECTOR type="1501" id="1628" >
+<cdparam x="189" y="339" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="189" y="339" id="1605" />
+<P2  x="189" y="369" id="1591" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="1629" >
+<cdparam x="10" y="379" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="391" y="340" id="1594" />
+<P2  x="391" y="387" id="1568" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="1631" >
+<cdparam x="10" y="293" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="271" y="234" id="1571" />
+<P2  x="391" y="295" id="1593" />
+<Point x="391" y="234" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1630" >
+<father id="1631" num="0" />
+<cdparam x="391" y="234" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1501" id="1632" >
+<cdparam x="37" y="293" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="189" y="245" id="1572" />
+<P2  x="189" y="294" id="1604" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="1633" >
+<cdparam x="10" y="124" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="189" y="169" id="1616" />
+<P2  x="189" y="215" id="1570" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="1634" >
+<cdparam x="187" y="61" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="189" y="85" id="1626" />
+<P2  x="189" y="124" id="1615" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</CommunicationPatternDiagramPanel>
+
+<TMLSDPanel name="ConfigureDMA_SD" minX="10" maxX="926" minY="10" maxY="556" >
+<COMPONENT type="1521" id="1684" >
+<cdparam x="466" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="926" minY="10" maxY="556" />
+<infoparam name="Transfer_Instance_1" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="1635" />
+<TGConnectingPoint num="1" id="1636" />
+<TGConnectingPoint num="2" id="1637" />
+<TGConnectingPoint num="3" id="1638" />
+<TGConnectingPoint num="4" id="1639" />
+<TGConnectingPoint num="5" id="1640" />
+<TGConnectingPoint num="6" id="1641" />
+<TGConnectingPoint num="7" id="1642" />
+<TGConnectingPoint num="8" id="1643" />
+<TGConnectingPoint num="9" id="1644" />
+<TGConnectingPoint num="10" id="1645" />
+<TGConnectingPoint num="11" id="1646" />
+<TGConnectingPoint num="12" id="1647" />
+<TGConnectingPoint num="13" id="1648" />
+<TGConnectingPoint num="14" id="1649" />
+<TGConnectingPoint num="15" id="1650" />
+<TGConnectingPoint num="16" id="1651" />
+<TGConnectingPoint num="17" id="1652" />
+<TGConnectingPoint num="18" id="1653" />
+<TGConnectingPoint num="19" id="1654" />
+<TGConnectingPoint num="20" id="1655" />
+<TGConnectingPoint num="21" id="1656" />
+<TGConnectingPoint num="22" id="1657" />
+<TGConnectingPoint num="23" id="1658" />
+<TGConnectingPoint num="24" id="1659" />
+<TGConnectingPoint num="25" id="1660" />
+<TGConnectingPoint num="26" id="1661" />
+<TGConnectingPoint num="27" id="1662" />
+<TGConnectingPoint num="28" id="1663" />
+<TGConnectingPoint num="29" id="1664" />
+<TGConnectingPoint num="30" id="1665" />
+<TGConnectingPoint num="31" id="1666" />
+<TGConnectingPoint num="32" id="1667" />
+<TGConnectingPoint num="33" id="1668" />
+<TGConnectingPoint num="34" id="1669" />
+<TGConnectingPoint num="35" id="1670" />
+<TGConnectingPoint num="36" id="1671" />
+<TGConnectingPoint num="37" id="1672" />
+<TGConnectingPoint num="38" id="1673" />
+<TGConnectingPoint num="39" id="1674" />
+<TGConnectingPoint num="40" id="1675" />
+<TGConnectingPoint num="41" id="1676" />
+<TGConnectingPoint num="42" id="1677" />
+<TGConnectingPoint num="43" id="1678" />
+<TGConnectingPoint num="44" id="1679" />
+<TGConnectingPoint num="45" id="1680" />
+<TGConnectingPoint num="46" id="1681" />
+<TGConnectingPoint num="47" id="1682" />
+<TGConnectingPoint num="48" id="1683" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="1734" >
+<cdparam x="867" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="926" minY="10" maxY="556" />
+<infoparam name="DMA_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="1685" />
+<TGConnectingPoint num="1" id="1686" />
+<TGConnectingPoint num="2" id="1687" />
+<TGConnectingPoint num="3" id="1688" />
+<TGConnectingPoint num="4" id="1689" />
+<TGConnectingPoint num="5" id="1690" />
+<TGConnectingPoint num="6" id="1691" />
+<TGConnectingPoint num="7" id="1692" />
+<TGConnectingPoint num="8" id="1693" />
+<TGConnectingPoint num="9" id="1694" />
+<TGConnectingPoint num="10" id="1695" />
+<TGConnectingPoint num="11" id="1696" />
+<TGConnectingPoint num="12" id="1697" />
+<TGConnectingPoint num="13" id="1698" />
+<TGConnectingPoint num="14" id="1699" />
+<TGConnectingPoint num="15" id="1700" />
+<TGConnectingPoint num="16" id="1701" />
+<TGConnectingPoint num="17" id="1702" />
+<TGConnectingPoint num="18" id="1703" />
+<TGConnectingPoint num="19" id="1704" />
+<TGConnectingPoint num="20" id="1705" />
+<TGConnectingPoint num="21" id="1706" />
+<TGConnectingPoint num="22" id="1707" />
+<TGConnectingPoint num="23" id="1708" />
+<TGConnectingPoint num="24" id="1709" />
+<TGConnectingPoint num="25" id="1710" />
+<TGConnectingPoint num="26" id="1711" />
+<TGConnectingPoint num="27" id="1712" />
+<TGConnectingPoint num="28" id="1713" />
+<TGConnectingPoint num="29" id="1714" />
+<TGConnectingPoint num="30" id="1715" />
+<TGConnectingPoint num="31" id="1716" />
+<TGConnectingPoint num="32" id="1717" />
+<TGConnectingPoint num="33" id="1718" />
+<TGConnectingPoint num="34" id="1719" />
+<TGConnectingPoint num="35" id="1720" />
+<TGConnectingPoint num="36" id="1721" />
+<TGConnectingPoint num="37" id="1722" />
+<TGConnectingPoint num="38" id="1723" />
+<TGConnectingPoint num="39" id="1724" />
+<TGConnectingPoint num="40" id="1725" />
+<TGConnectingPoint num="41" id="1726" />
+<TGConnectingPoint num="42" id="1727" />
+<TGConnectingPoint num="43" id="1728" />
+<TGConnectingPoint num="44" id="1729" />
+<TGConnectingPoint num="45" id="1730" />
+<TGConnectingPoint num="46" id="1731" />
+<TGConnectingPoint num="47" id="1732" />
+<TGConnectingPoint num="48" id="1733" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="1784" >
+<cdparam x="58" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="926" minY="10" maxY="556" />
+<infoparam name="CPU_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="1735" />
+<TGConnectingPoint num="1" id="1736" />
+<TGConnectingPoint num="2" id="1737" />
+<TGConnectingPoint num="3" id="1738" />
+<TGConnectingPoint num="4" id="1739" />
+<TGConnectingPoint num="5" id="1740" />
+<TGConnectingPoint num="6" id="1741" />
+<TGConnectingPoint num="7" id="1742" />
+<TGConnectingPoint num="8" id="1743" />
+<TGConnectingPoint num="9" id="1744" />
+<TGConnectingPoint num="10" id="1745" />
+<TGConnectingPoint num="11" id="1746" />
+<TGConnectingPoint num="12" id="1747" />
+<TGConnectingPoint num="13" id="1748" />
+<TGConnectingPoint num="14" id="1749" />
+<TGConnectingPoint num="15" id="1750" />
+<TGConnectingPoint num="16" id="1751" />
+<TGConnectingPoint num="17" id="1752" />
+<TGConnectingPoint num="18" id="1753" />
+<TGConnectingPoint num="19" id="1754" />
+<TGConnectingPoint num="20" id="1755" />
+<TGConnectingPoint num="21" id="1756" />
+<TGConnectingPoint num="22" id="1757" />
+<TGConnectingPoint num="23" id="1758" />
+<TGConnectingPoint num="24" id="1759" />
+<TGConnectingPoint num="25" id="1760" />
+<TGConnectingPoint num="26" id="1761" />
+<TGConnectingPoint num="27" id="1762" />
+<TGConnectingPoint num="28" id="1763" />
+<TGConnectingPoint num="29" id="1764" />
+<TGConnectingPoint num="30" id="1765" />
+<TGConnectingPoint num="31" id="1766" />
+<TGConnectingPoint num="32" id="1767" />
+<TGConnectingPoint num="33" id="1768" />
+<TGConnectingPoint num="34" id="1769" />
+<TGConnectingPoint num="35" id="1770" />
+<TGConnectingPoint num="36" id="1771" />
+<TGConnectingPoint num="37" id="1772" />
+<TGConnectingPoint num="38" id="1773" />
+<TGConnectingPoint num="39" id="1774" />
+<TGConnectingPoint num="40" id="1775" />
+<TGConnectingPoint num="41" id="1776" />
+<TGConnectingPoint num="42" id="1777" />
+<TGConnectingPoint num="43" id="1778" />
+<TGConnectingPoint num="44" id="1779" />
+<TGConnectingPoint num="45" id="1780" />
+<TGConnectingPoint num="46" id="1781" />
+<TGConnectingPoint num="47" id="1782" />
+<TGConnectingPoint num="48" id="1783" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="1523" id="1785" >
+<cdparam x="391" y="166" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferRequest" value="TransferRequest(counter, sourceAddress, destinationAddress)" />
+<P1  x="471" y="126" id="1641" />
+<P2  x="872" y="126" id="1691" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="counter" />
+<Param index="1" id="sourceAddress" />
+<Param index="2" id="destinationAddress" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="1786" >
+<cdparam x="172" y="136" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferRequest" value="TransferRequest(counter, sourceAddress, destinationAddress)" />
+<P1  x="63" y="96" id="1738" />
+<P2  x="471" y="96" id="1638" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="counter" />
+<Param index="1" id="sourceAddress" />
+<Param index="2" id="destinationAddress" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+<TMLSDPanel name="DMACycle_SD" minX="10" maxX="912" minY="10" maxY="540" >
+<COMPONENT type="1520" id="1836" >
+<cdparam x="832" y="39" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" />
+<infoparam name="Dst_Storage_Instance_1" value="Storage instance name" />
+<TGConnectingPoint num="0" id="1787" />
+<TGConnectingPoint num="1" id="1788" />
+<TGConnectingPoint num="2" id="1789" />
+<TGConnectingPoint num="3" id="1790" />
+<TGConnectingPoint num="4" id="1791" />
+<TGConnectingPoint num="5" id="1792" />
+<TGConnectingPoint num="6" id="1793" />
+<TGConnectingPoint num="7" id="1794" />
+<TGConnectingPoint num="8" id="1795" />
+<TGConnectingPoint num="9" id="1796" />
+<TGConnectingPoint num="10" id="1797" />
+<TGConnectingPoint num="11" id="1798" />
+<TGConnectingPoint num="12" id="1799" />
+<TGConnectingPoint num="13" id="1800" />
+<TGConnectingPoint num="14" id="1801" />
+<TGConnectingPoint num="15" id="1802" />
+<TGConnectingPoint num="16" id="1803" />
+<TGConnectingPoint num="17" id="1804" />
+<TGConnectingPoint num="18" id="1805" />
+<TGConnectingPoint num="19" id="1806" />
+<TGConnectingPoint num="20" id="1807" />
+<TGConnectingPoint num="21" id="1808" />
+<TGConnectingPoint num="22" id="1809" />
+<TGConnectingPoint num="23" id="1810" />
+<TGConnectingPoint num="24" id="1811" />
+<TGConnectingPoint num="25" id="1812" />
+<TGConnectingPoint num="26" id="1813" />
+<TGConnectingPoint num="27" id="1814" />
+<TGConnectingPoint num="28" id="1815" />
+<TGConnectingPoint num="29" id="1816" />
+<TGConnectingPoint num="30" id="1817" />
+<TGConnectingPoint num="31" id="1818" />
+<TGConnectingPoint num="32" id="1819" />
+<TGConnectingPoint num="33" id="1820" />
+<TGConnectingPoint num="34" id="1821" />
+<TGConnectingPoint num="35" id="1822" />
+<TGConnectingPoint num="36" id="1823" />
+<TGConnectingPoint num="37" id="1824" />
+<TGConnectingPoint num="38" id="1825" />
+<TGConnectingPoint num="39" id="1826" />
+<TGConnectingPoint num="40" id="1827" />
+<TGConnectingPoint num="41" id="1828" />
+<TGConnectingPoint num="42" id="1829" />
+<TGConnectingPoint num="43" id="1830" />
+<TGConnectingPoint num="44" id="1831" />
+<TGConnectingPoint num="45" id="1832" />
+<TGConnectingPoint num="46" id="1833" />
+<TGConnectingPoint num="47" id="1834" />
+<TGConnectingPoint num="48" id="1835" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="1886" >
+<cdparam x="624" y="39" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" />
+<infoparam name="Transfer_Instance_3" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="1837" />
+<TGConnectingPoint num="1" id="1838" />
+<TGConnectingPoint num="2" id="1839" />
+<TGConnectingPoint num="3" id="1840" />
+<TGConnectingPoint num="4" id="1841" />
+<TGConnectingPoint num="5" id="1842" />
+<TGConnectingPoint num="6" id="1843" />
+<TGConnectingPoint num="7" id="1844" />
+<TGConnectingPoint num="8" id="1845" />
+<TGConnectingPoint num="9" id="1846" />
+<TGConnectingPoint num="10" id="1847" />
+<TGConnectingPoint num="11" id="1848" />
+<TGConnectingPoint num="12" id="1849" />
+<TGConnectingPoint num="13" id="1850" />
+<TGConnectingPoint num="14" id="1851" />
+<TGConnectingPoint num="15" id="1852" />
+<TGConnectingPoint num="16" id="1853" />
+<TGConnectingPoint num="17" id="1854" />
+<TGConnectingPoint num="18" id="1855" />
+<TGConnectingPoint num="19" id="1856" />
+<TGConnectingPoint num="20" id="1857" />
+<TGConnectingPoint num="21" id="1858" />
+<TGConnectingPoint num="22" id="1859" />
+<TGConnectingPoint num="23" id="1860" />
+<TGConnectingPoint num="24" id="1861" />
+<TGConnectingPoint num="25" id="1862" />
+<TGConnectingPoint num="26" id="1863" />
+<TGConnectingPoint num="27" id="1864" />
+<TGConnectingPoint num="28" id="1865" />
+<TGConnectingPoint num="29" id="1866" />
+<TGConnectingPoint num="30" id="1867" />
+<TGConnectingPoint num="31" id="1868" />
+<TGConnectingPoint num="32" id="1869" />
+<TGConnectingPoint num="33" id="1870" />
+<TGConnectingPoint num="34" id="1871" />
+<TGConnectingPoint num="35" id="1872" />
+<TGConnectingPoint num="36" id="1873" />
+<TGConnectingPoint num="37" id="1874" />
+<TGConnectingPoint num="38" id="1875" />
+<TGConnectingPoint num="39" id="1876" />
+<TGConnectingPoint num="40" id="1877" />
+<TGConnectingPoint num="41" id="1878" />
+<TGConnectingPoint num="42" id="1879" />
+<TGConnectingPoint num="43" id="1880" />
+<TGConnectingPoint num="44" id="1881" />
+<TGConnectingPoint num="45" id="1882" />
+<TGConnectingPoint num="46" id="1883" />
+<TGConnectingPoint num="47" id="1884" />
+<TGConnectingPoint num="48" id="1885" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="1936" >
+<cdparam x="249" y="39" />
+<sizeparam width="10" height="501" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" />
+<infoparam name="Transfer_Instance_2" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="1887" />
+<TGConnectingPoint num="1" id="1888" />
+<TGConnectingPoint num="2" id="1889" />
+<TGConnectingPoint num="3" id="1890" />
+<TGConnectingPoint num="4" id="1891" />
+<TGConnectingPoint num="5" id="1892" />
+<TGConnectingPoint num="6" id="1893" />
+<TGConnectingPoint num="7" id="1894" />
+<TGConnectingPoint num="8" id="1895" />
+<TGConnectingPoint num="9" id="1896" />
+<TGConnectingPoint num="10" id="1897" />
+<TGConnectingPoint num="11" id="1898" />
+<TGConnectingPoint num="12" id="1899" />
+<TGConnectingPoint num="13" id="1900" />
+<TGConnectingPoint num="14" id="1901" />
+<TGConnectingPoint num="15" id="1902" />
+<TGConnectingPoint num="16" id="1903" />
+<TGConnectingPoint num="17" id="1904" />
+<TGConnectingPoint num="18" id="1905" />
+<TGConnectingPoint num="19" id="1906" />
+<TGConnectingPoint num="20" id="1907" />
+<TGConnectingPoint num="21" id="1908" />
+<TGConnectingPoint num="22" id="1909" />
+<TGConnectingPoint num="23" id="1910" />
+<TGConnectingPoint num="24" id="1911" />
+<TGConnectingPoint num="25" id="1912" />
+<TGConnectingPoint num="26" id="1913" />
+<TGConnectingPoint num="27" id="1914" />
+<TGConnectingPoint num="28" id="1915" />
+<TGConnectingPoint num="29" id="1916" />
+<TGConnectingPoint num="30" id="1917" />
+<TGConnectingPoint num="31" id="1918" />
+<TGConnectingPoint num="32" id="1919" />
+<TGConnectingPoint num="33" id="1920" />
+<TGConnectingPoint num="34" id="1921" />
+<TGConnectingPoint num="35" id="1922" />
+<TGConnectingPoint num="36" id="1923" />
+<TGConnectingPoint num="37" id="1924" />
+<TGConnectingPoint num="38" id="1925" />
+<TGConnectingPoint num="39" id="1926" />
+<TGConnectingPoint num="40" id="1927" />
+<TGConnectingPoint num="41" id="1928" />
+<TGConnectingPoint num="42" id="1929" />
+<TGConnectingPoint num="43" id="1930" />
+<TGConnectingPoint num="44" id="1931" />
+<TGConnectingPoint num="45" id="1932" />
+<TGConnectingPoint num="46" id="1933" />
+<TGConnectingPoint num="47" id="1934" />
+<TGConnectingPoint num="48" id="1935" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1520" id="1986" >
+<cdparam x="454" y="39" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" />
+<infoparam name="Src_Storage_Instance_1" value="Storage instance name" />
+<TGConnectingPoint num="0" id="1937" />
+<TGConnectingPoint num="1" id="1938" />
+<TGConnectingPoint num="2" id="1939" />
+<TGConnectingPoint num="3" id="1940" />
+<TGConnectingPoint num="4" id="1941" />
+<TGConnectingPoint num="5" id="1942" />
+<TGConnectingPoint num="6" id="1943" />
+<TGConnectingPoint num="7" id="1944" />
+<TGConnectingPoint num="8" id="1945" />
+<TGConnectingPoint num="9" id="1946" />
+<TGConnectingPoint num="10" id="1947" />
+<TGConnectingPoint num="11" id="1948" />
+<TGConnectingPoint num="12" id="1949" />
+<TGConnectingPoint num="13" id="1950" />
+<TGConnectingPoint num="14" id="1951" />
+<TGConnectingPoint num="15" id="1952" />
+<TGConnectingPoint num="16" id="1953" />
+<TGConnectingPoint num="17" id="1954" />
+<TGConnectingPoint num="18" id="1955" />
+<TGConnectingPoint num="19" id="1956" />
+<TGConnectingPoint num="20" id="1957" />
+<TGConnectingPoint num="21" id="1958" />
+<TGConnectingPoint num="22" id="1959" />
+<TGConnectingPoint num="23" id="1960" />
+<TGConnectingPoint num="24" id="1961" />
+<TGConnectingPoint num="25" id="1962" />
+<TGConnectingPoint num="26" id="1963" />
+<TGConnectingPoint num="27" id="1964" />
+<TGConnectingPoint num="28" id="1965" />
+<TGConnectingPoint num="29" id="1966" />
+<TGConnectingPoint num="30" id="1967" />
+<TGConnectingPoint num="31" id="1968" />
+<TGConnectingPoint num="32" id="1969" />
+<TGConnectingPoint num="33" id="1970" />
+<TGConnectingPoint num="34" id="1971" />
+<TGConnectingPoint num="35" id="1972" />
+<TGConnectingPoint num="36" id="1973" />
+<TGConnectingPoint num="37" id="1974" />
+<TGConnectingPoint num="38" id="1975" />
+<TGConnectingPoint num="39" id="1976" />
+<TGConnectingPoint num="40" id="1977" />
+<TGConnectingPoint num="41" id="1978" />
+<TGConnectingPoint num="42" id="1979" />
+<TGConnectingPoint num="43" id="1980" />
+<TGConnectingPoint num="44" id="1981" />
+<TGConnectingPoint num="45" id="1982" />
+<TGConnectingPoint num="46" id="1983" />
+<TGConnectingPoint num="47" id="1984" />
+<TGConnectingPoint num="48" id="1985" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="2045" >
+<cdparam x="79" y="39" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" />
+<infoparam name="DMA_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="1996" />
+<TGConnectingPoint num="1" id="1997" />
+<TGConnectingPoint num="2" id="1998" />
+<TGConnectingPoint num="3" id="1999" />
+<TGConnectingPoint num="4" id="2000" />
+<TGConnectingPoint num="5" id="2001" />
+<TGConnectingPoint num="6" id="2002" />
+<TGConnectingPoint num="7" id="2003" />
+<TGConnectingPoint num="8" id="2004" />
+<TGConnectingPoint num="9" id="2005" />
+<TGConnectingPoint num="10" id="2006" />
+<TGConnectingPoint num="11" id="2007" />
+<TGConnectingPoint num="12" id="2008" />
+<TGConnectingPoint num="13" id="2009" />
+<TGConnectingPoint num="14" id="2010" />
+<TGConnectingPoint num="15" id="2011" />
+<TGConnectingPoint num="16" id="2012" />
+<TGConnectingPoint num="17" id="2013" />
+<TGConnectingPoint num="18" id="2014" />
+<TGConnectingPoint num="19" id="2015" />
+<TGConnectingPoint num="20" id="2016" />
+<TGConnectingPoint num="21" id="2017" />
+<TGConnectingPoint num="22" id="2018" />
+<TGConnectingPoint num="23" id="2019" />
+<TGConnectingPoint num="24" id="2020" />
+<TGConnectingPoint num="25" id="2021" />
+<TGConnectingPoint num="26" id="2022" />
+<TGConnectingPoint num="27" id="2023" />
+<TGConnectingPoint num="28" id="2024" />
+<TGConnectingPoint num="29" id="2025" />
+<TGConnectingPoint num="30" id="2026" />
+<TGConnectingPoint num="31" id="2027" />
+<TGConnectingPoint num="32" id="2028" />
+<TGConnectingPoint num="33" id="2029" />
+<TGConnectingPoint num="34" id="2030" />
+<TGConnectingPoint num="35" id="2031" />
+<TGConnectingPoint num="36" id="2032" />
+<TGConnectingPoint num="37" id="2033" />
+<TGConnectingPoint num="38" id="2034" />
+<TGConnectingPoint num="39" id="2035" />
+<TGConnectingPoint num="40" id="2036" />
+<TGConnectingPoint num="41" id="2037" />
+<TGConnectingPoint num="42" id="2038" />
+<TGConnectingPoint num="43" id="2039" />
+<TGConnectingPoint num="44" id="2040" />
+<TGConnectingPoint num="45" id="2041" />
+<TGConnectingPoint num="46" id="2042" />
+<TGConnectingPoint num="47" id="2043" />
+<TGConnectingPoint num="48" id="2044" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1524" id="1995" >
+<father id="2045" num="0" />
+<cdparam x="84" y="180" />
+<sizeparam width="146" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" />
+<infoparam name="action state" value="counter = counter - 1" />
+<TGConnectingPoint num="0" id="1987" />
+<TGConnectingPoint num="1" id="1988" />
+<TGConnectingPoint num="2" id="1989" />
+<TGConnectingPoint num="3" id="1990" />
+<TGConnectingPoint num="4" id="1991" />
+<TGConnectingPoint num="5" id="1992" />
+<TGConnectingPoint num="6" id="1993" />
+<TGConnectingPoint num="7" id="1994" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1523" id="2046" >
+<cdparam x="784" y="229" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress, size)" />
+<P1  x="629" y="189" id="1851" />
+<P2  x="837" y="189" id="1801" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress" />
+<Param index="1" id="size" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2047" >
+<cdparam x="84" y="199" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress, size)" />
+<P1  x="84" y="159" id="2007" />
+<P2  x="629" y="159" id="1848" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress" />
+<Param index="1" id="size" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2048" >
+<cdparam x="315" y="109" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress, size)" />
+<P1  x="254" y="129" id="1895" />
+<P2  x="459" y="129" id="1945" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress" />
+<Param index="1" id="size" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2049" >
+<cdparam x="101" y="78" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress, size)" />
+<P1  x="84" y="99" id="2001" />
+<P2  x="254" y="99" id="1892" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress" />
+<Param index="1" id="size" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+<TMLSDPanel name="TerminateDMA_SD" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1521" id="2099" >
+<cdparam x="332" y="52" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_4" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="2050" />
+<TGConnectingPoint num="1" id="2051" />
+<TGConnectingPoint num="2" id="2052" />
+<TGConnectingPoint num="3" id="2053" />
+<TGConnectingPoint num="4" id="2054" />
+<TGConnectingPoint num="5" id="2055" />
+<TGConnectingPoint num="6" id="2056" />
+<TGConnectingPoint num="7" id="2057" />
+<TGConnectingPoint num="8" id="2058" />
+<TGConnectingPoint num="9" id="2059" />
+<TGConnectingPoint num="10" id="2060" />
+<TGConnectingPoint num="11" id="2061" />
+<TGConnectingPoint num="12" id="2062" />
+<TGConnectingPoint num="13" id="2063" />
+<TGConnectingPoint num="14" id="2064" />
+<TGConnectingPoint num="15" id="2065" />
+<TGConnectingPoint num="16" id="2066" />
+<TGConnectingPoint num="17" id="2067" />
+<TGConnectingPoint num="18" id="2068" />
+<TGConnectingPoint num="19" id="2069" />
+<TGConnectingPoint num="20" id="2070" />
+<TGConnectingPoint num="21" id="2071" />
+<TGConnectingPoint num="22" id="2072" />
+<TGConnectingPoint num="23" id="2073" />
+<TGConnectingPoint num="24" id="2074" />
+<TGConnectingPoint num="25" id="2075" />
+<TGConnectingPoint num="26" id="2076" />
+<TGConnectingPoint num="27" id="2077" />
+<TGConnectingPoint num="28" id="2078" />
+<TGConnectingPoint num="29" id="2079" />
+<TGConnectingPoint num="30" id="2080" />
+<TGConnectingPoint num="31" id="2081" />
+<TGConnectingPoint num="32" id="2082" />
+<TGConnectingPoint num="33" id="2083" />
+<TGConnectingPoint num="34" id="2084" />
+<TGConnectingPoint num="35" id="2085" />
+<TGConnectingPoint num="36" id="2086" />
+<TGConnectingPoint num="37" id="2087" />
+<TGConnectingPoint num="38" id="2088" />
+<TGConnectingPoint num="39" id="2089" />
+<TGConnectingPoint num="40" id="2090" />
+<TGConnectingPoint num="41" id="2091" />
+<TGConnectingPoint num="42" id="2092" />
+<TGConnectingPoint num="43" id="2093" />
+<TGConnectingPoint num="44" id="2094" />
+<TGConnectingPoint num="45" id="2095" />
+<TGConnectingPoint num="46" id="2096" />
+<TGConnectingPoint num="47" id="2097" />
+<TGConnectingPoint num="48" id="2098" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="2149" >
+<cdparam x="557" y="52" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMA_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="2100" />
+<TGConnectingPoint num="1" id="2101" />
+<TGConnectingPoint num="2" id="2102" />
+<TGConnectingPoint num="3" id="2103" />
+<TGConnectingPoint num="4" id="2104" />
+<TGConnectingPoint num="5" id="2105" />
+<TGConnectingPoint num="6" id="2106" />
+<TGConnectingPoint num="7" id="2107" />
+<TGConnectingPoint num="8" id="2108" />
+<TGConnectingPoint num="9" id="2109" />
+<TGConnectingPoint num="10" id="2110" />
+<TGConnectingPoint num="11" id="2111" />
+<TGConnectingPoint num="12" id="2112" />
+<TGConnectingPoint num="13" id="2113" />
+<TGConnectingPoint num="14" id="2114" />
+<TGConnectingPoint num="15" id="2115" />
+<TGConnectingPoint num="16" id="2116" />
+<TGConnectingPoint num="17" id="2117" />
+<TGConnectingPoint num="18" id="2118" />
+<TGConnectingPoint num="19" id="2119" />
+<TGConnectingPoint num="20" id="2120" />
+<TGConnectingPoint num="21" id="2121" />
+<TGConnectingPoint num="22" id="2122" />
+<TGConnectingPoint num="23" id="2123" />
+<TGConnectingPoint num="24" id="2124" />
+<TGConnectingPoint num="25" id="2125" />
+<TGConnectingPoint num="26" id="2126" />
+<TGConnectingPoint num="27" id="2127" />
+<TGConnectingPoint num="28" id="2128" />
+<TGConnectingPoint num="29" id="2129" />
+<TGConnectingPoint num="30" id="2130" />
+<TGConnectingPoint num="31" id="2131" />
+<TGConnectingPoint num="32" id="2132" />
+<TGConnectingPoint num="33" id="2133" />
+<TGConnectingPoint num="34" id="2134" />
+<TGConnectingPoint num="35" id="2135" />
+<TGConnectingPoint num="36" id="2136" />
+<TGConnectingPoint num="37" id="2137" />
+<TGConnectingPoint num="38" id="2138" />
+<TGConnectingPoint num="39" id="2139" />
+<TGConnectingPoint num="40" id="2140" />
+<TGConnectingPoint num="41" id="2141" />
+<TGConnectingPoint num="42" id="2142" />
+<TGConnectingPoint num="43" id="2143" />
+<TGConnectingPoint num="44" id="2144" />
+<TGConnectingPoint num="45" id="2145" />
+<TGConnectingPoint num="46" id="2146" />
+<TGConnectingPoint num="47" id="2147" />
+<TGConnectingPoint num="48" id="2148" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="counter" value="" type="10" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="2199" >
+<cdparam x="113" y="52" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="2150" />
+<TGConnectingPoint num="1" id="2151" />
+<TGConnectingPoint num="2" id="2152" />
+<TGConnectingPoint num="3" id="2153" />
+<TGConnectingPoint num="4" id="2154" />
+<TGConnectingPoint num="5" id="2155" />
+<TGConnectingPoint num="6" id="2156" />
+<TGConnectingPoint num="7" id="2157" />
+<TGConnectingPoint num="8" id="2158" />
+<TGConnectingPoint num="9" id="2159" />
+<TGConnectingPoint num="10" id="2160" />
+<TGConnectingPoint num="11" id="2161" />
+<TGConnectingPoint num="12" id="2162" />
+<TGConnectingPoint num="13" id="2163" />
+<TGConnectingPoint num="14" id="2164" />
+<TGConnectingPoint num="15" id="2165" />
+<TGConnectingPoint num="16" id="2166" />
+<TGConnectingPoint num="17" id="2167" />
+<TGConnectingPoint num="18" id="2168" />
+<TGConnectingPoint num="19" id="2169" />
+<TGConnectingPoint num="20" id="2170" />
+<TGConnectingPoint num="21" id="2171" />
+<TGConnectingPoint num="22" id="2172" />
+<TGConnectingPoint num="23" id="2173" />
+<TGConnectingPoint num="24" id="2174" />
+<TGConnectingPoint num="25" id="2175" />
+<TGConnectingPoint num="26" id="2176" />
+<TGConnectingPoint num="27" id="2177" />
+<TGConnectingPoint num="28" id="2178" />
+<TGConnectingPoint num="29" id="2179" />
+<TGConnectingPoint num="30" id="2180" />
+<TGConnectingPoint num="31" id="2181" />
+<TGConnectingPoint num="32" id="2182" />
+<TGConnectingPoint num="33" id="2183" />
+<TGConnectingPoint num="34" id="2184" />
+<TGConnectingPoint num="35" id="2185" />
+<TGConnectingPoint num="36" id="2186" />
+<TGConnectingPoint num="37" id="2187" />
+<TGConnectingPoint num="38" id="2188" />
+<TGConnectingPoint num="39" id="2189" />
+<TGConnectingPoint num="40" id="2190" />
+<TGConnectingPoint num="41" id="2191" />
+<TGConnectingPoint num="42" id="2192" />
+<TGConnectingPoint num="43" id="2193" />
+<TGConnectingPoint num="44" id="2194" />
+<TGConnectingPoint num="45" id="2195" />
+<TGConnectingPoint num="46" id="2196" />
+<TGConnectingPoint num="47" id="2197" />
+<TGConnectingPoint num="48" id="2198" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="1523" id="2200" >
+<cdparam x="337" y="112" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferTerminated" value="TransferTerminated()" />
+<P1  x="337" y="112" id="2055" />
+<P2  x="118" y="112" id="2155" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2201" >
+<cdparam x="562" y="82" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferTerminated" value="TransferTerminated()" />
+<P1  x="562" y="82" id="2102" />
+<P2  x="337" y="82" id="2052" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML CP" nameTab="DMATransferPolling" >
+<CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1504" id="2212" >
+<cdparam x="86" y="250" />
+<sizeparam width="123" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TransferCycleAD" value="Reference to a CP" />
+<TGConnectingPoint num="0" id="2202" />
+<TGConnectingPoint num="1" id="2203" />
+<TGConnectingPoint num="2" id="2204" />
+<TGConnectingPoint num="3" id="2205" />
+<TGConnectingPoint num="4" id="2206" />
+<TGConnectingPoint num="5" id="2207" />
+<TGConnectingPoint num="6" id="2208" />
+<TGConnectingPoint num="7" id="2209" />
+<TGConnectingPoint num="8" id="2210" />
+<TGConnectingPoint num="9" id="2211" />
+</COMPONENT>
+
+<COMPONENT type="1504" id="2223" >
+<cdparam x="319" y="250" />
+<sizeparam width="123" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="PollingCycleAD" value="Reference to a CP" />
+<TGConnectingPoint num="0" id="2213" />
+<TGConnectingPoint num="1" id="2214" />
+<TGConnectingPoint num="2" id="2215" />
+<TGConnectingPoint num="3" id="2216" />
+<TGConnectingPoint num="4" id="2217" />
+<TGConnectingPoint num="5" id="2218" />
+<TGConnectingPoint num="6" id="2219" />
+<TGConnectingPoint num="7" id="2220" />
+<TGConnectingPoint num="8" id="2221" />
+<TGConnectingPoint num="9" id="2222" />
+</COMPONENT>
+
+<COMPONENT type="1503" id="2238" >
+<cdparam x="181" y="347" />
+<sizeparam width="150" height="5" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="join2" value="null" />
+<TGConnectingPoint num="0" id="2224" />
+<TGConnectingPoint num="1" id="2225" />
+<TGConnectingPoint num="2" id="2226" />
+<TGConnectingPoint num="3" id="2227" />
+<TGConnectingPoint num="4" id="2228" />
+<TGConnectingPoint num="5" id="2229" />
+<TGConnectingPoint num="6" id="2230" />
+<TGConnectingPoint num="7" id="2231" />
+<TGConnectingPoint num="8" id="2232" />
+<TGConnectingPoint num="9" id="2233" />
+<TGConnectingPoint num="10" id="2234" />
+<TGConnectingPoint num="11" id="2235" />
+<TGConnectingPoint num="12" id="2236" />
+<TGConnectingPoint num="13" id="2237" />
+</COMPONENT>
+
+<COMPONENT type="1502" id="2253" >
+<cdparam x="177" y="186" />
+<sizeparam width="150" height="5" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="fork2" value="null" />
+<TGConnectingPoint num="0" id="2239" />
+<TGConnectingPoint num="1" id="2240" />
+<TGConnectingPoint num="2" id="2241" />
+<TGConnectingPoint num="3" id="2242" />
+<TGConnectingPoint num="4" id="2243" />
+<TGConnectingPoint num="5" id="2244" />
+<TGConnectingPoint num="6" id="2245" />
+<TGConnectingPoint num="7" id="2246" />
+<TGConnectingPoint num="8" id="2247" />
+<TGConnectingPoint num="9" id="2248" />
+<TGConnectingPoint num="10" id="2249" />
+<TGConnectingPoint num="11" id="2250" />
+<TGConnectingPoint num="12" id="2251" />
+<TGConnectingPoint num="13" id="2252" />
+</COMPONENT>
+
+<COMPONENT type="301" id="2270" >
+<cdparam x="339" y="69" />
+<sizeparam width="305" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="Some parameters are mapping dependent:
+- size in ExecuteTransfer 
+- the source and destination addresses
+
+This model supposes that the DMA replies via
+POLLING
+" />
+<TGConnectingPoint num="0" id="2254" />
+<TGConnectingPoint num="1" id="2255" />
+<TGConnectingPoint num="2" id="2256" />
+<TGConnectingPoint num="3" id="2257" />
+<TGConnectingPoint num="4" id="2258" />
+<TGConnectingPoint num="5" id="2259" />
+<TGConnectingPoint num="6" id="2260" />
+<TGConnectingPoint num="7" id="2261" />
+<TGConnectingPoint num="8" id="2262" />
+<TGConnectingPoint num="9" id="2263" />
+<TGConnectingPoint num="10" id="2264" />
+<TGConnectingPoint num="11" id="2265" />
+<TGConnectingPoint num="12" id="2266" />
+<TGConnectingPoint num="13" id="2267" />
+<TGConnectingPoint num="14" id="2268" />
+<TGConnectingPoint num="15" id="2269" />
+<extraparam>
+<Line value="Some parameters are mapping dependent:" />
+<Line value="- size in ExecuteTransfer " />
+<Line value="- the source and destination addresses" />
+<Line value="" />
+<Line value="This model supposes that the DMA replies via" />
+<Line value="POLLING" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1507" id="2272" >
+<cdparam x="246" y="399" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2271" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="2283" >
+<cdparam x="190" y="105" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="ConfigureTransfer" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="2273" />
+<TGConnectingPoint num="1" id="2274" />
+<TGConnectingPoint num="2" id="2275" />
+<TGConnectingPoint num="3" id="2276" />
+<TGConnectingPoint num="4" id="2277" />
+<TGConnectingPoint num="5" id="2278" />
+<TGConnectingPoint num="6" id="2279" />
+<TGConnectingPoint num="7" id="2280" />
+<TGConnectingPoint num="8" id="2281" />
+<TGConnectingPoint num="9" id="2282" />
+</COMPONENT>
+
+<COMPONENT type="1506" id="2285" >
+<cdparam x="245" y="42" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2284" />
+</COMPONENT>
+
+<CONNECTOR type="1501" id="2286" >
+<cdparam x="256" y="352" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="256" y="352" id="2229" />
+<P2  x="256" y="394" id="2271" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2287" >
+<cdparam x="145" y="291" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="147" y="290" id="2203" />
+<P2  x="206" y="347" id="2224" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2288" >
+<cdparam x="301" y="191" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="301" y="191" id="2243" />
+<P2  x="380" y="245" id="2213" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2289" >
+<cdparam x="202" y="191" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="202" y="191" id="2239" />
+<P2  x="147" y="245" id="2202" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2290" >
+<cdparam x="252" y="62" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="252" y="62" id="2284" />
+<P2  x="252" y="100" id="2273" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2291" >
+<cdparam x="252" y="145" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="252" y="145" id="2274" />
+<P2  x="252" y="186" id="2244" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2292" >
+<cdparam x="381" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="380" y="290" id="2214" />
+<P2  x="305" y="347" id="2228" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</CommunicationPatternDiagramPanel>
+
+<TMLSDPanel name="ConfigureTransfer" minX="10" maxX="1259" minY="10" maxY="543" >
+<COMPONENT type="1521" id="2342" >
+<cdparam x="600" y="43" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1259" minY="10" maxY="543" />
+<infoparam name="TransferInstance_1" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="2293" />
+<TGConnectingPoint num="1" id="2294" />
+<TGConnectingPoint num="2" id="2295" />
+<TGConnectingPoint num="3" id="2296" />
+<TGConnectingPoint num="4" id="2297" />
+<TGConnectingPoint num="5" id="2298" />
+<TGConnectingPoint num="6" id="2299" />
+<TGConnectingPoint num="7" id="2300" />
+<TGConnectingPoint num="8" id="2301" />
+<TGConnectingPoint num="9" id="2302" />
+<TGConnectingPoint num="10" id="2303" />
+<TGConnectingPoint num="11" id="2304" />
+<TGConnectingPoint num="12" id="2305" />
+<TGConnectingPoint num="13" id="2306" />
+<TGConnectingPoint num="14" id="2307" />
+<TGConnectingPoint num="15" id="2308" />
+<TGConnectingPoint num="16" id="2309" />
+<TGConnectingPoint num="17" id="2310" />
+<TGConnectingPoint num="18" id="2311" />
+<TGConnectingPoint num="19" id="2312" />
+<TGConnectingPoint num="20" id="2313" />
+<TGConnectingPoint num="21" id="2314" />
+<TGConnectingPoint num="22" id="2315" />
+<TGConnectingPoint num="23" id="2316" />
+<TGConnectingPoint num="24" id="2317" />
+<TGConnectingPoint num="25" id="2318" />
+<TGConnectingPoint num="26" id="2319" />
+<TGConnectingPoint num="27" id="2320" />
+<TGConnectingPoint num="28" id="2321" />
+<TGConnectingPoint num="29" id="2322" />
+<TGConnectingPoint num="30" id="2323" />
+<TGConnectingPoint num="31" id="2324" />
+<TGConnectingPoint num="32" id="2325" />
+<TGConnectingPoint num="33" id="2326" />
+<TGConnectingPoint num="34" id="2327" />
+<TGConnectingPoint num="35" id="2328" />
+<TGConnectingPoint num="36" id="2329" />
+<TGConnectingPoint num="37" id="2330" />
+<TGConnectingPoint num="38" id="2331" />
+<TGConnectingPoint num="39" id="2332" />
+<TGConnectingPoint num="40" id="2333" />
+<TGConnectingPoint num="41" id="2334" />
+<TGConnectingPoint num="42" id="2335" />
+<TGConnectingPoint num="43" id="2336" />
+<TGConnectingPoint num="44" id="2337" />
+<TGConnectingPoint num="45" id="2338" />
+<TGConnectingPoint num="46" id="2339" />
+<TGConnectingPoint num="47" id="2340" />
+<TGConnectingPoint num="48" id="2341" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="ID" value="" type="0" typeOther="" />
+<Attribute access="2" id="bytesToTransfer" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="2401" >
+<cdparam x="1076" y="43" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1259" minY="10" maxY="543" />
+<infoparam name="DMA_Controller" value="Controller instance name" />
+<TGConnectingPoint num="0" id="2352" />
+<TGConnectingPoint num="1" id="2353" />
+<TGConnectingPoint num="2" id="2354" />
+<TGConnectingPoint num="3" id="2355" />
+<TGConnectingPoint num="4" id="2356" />
+<TGConnectingPoint num="5" id="2357" />
+<TGConnectingPoint num="6" id="2358" />
+<TGConnectingPoint num="7" id="2359" />
+<TGConnectingPoint num="8" id="2360" />
+<TGConnectingPoint num="9" id="2361" />
+<TGConnectingPoint num="10" id="2362" />
+<TGConnectingPoint num="11" id="2363" />
+<TGConnectingPoint num="12" id="2364" />
+<TGConnectingPoint num="13" id="2365" />
+<TGConnectingPoint num="14" id="2366" />
+<TGConnectingPoint num="15" id="2367" />
+<TGConnectingPoint num="16" id="2368" />
+<TGConnectingPoint num="17" id="2369" />
+<TGConnectingPoint num="18" id="2370" />
+<TGConnectingPoint num="19" id="2371" />
+<TGConnectingPoint num="20" id="2372" />
+<TGConnectingPoint num="21" id="2373" />
+<TGConnectingPoint num="22" id="2374" />
+<TGConnectingPoint num="23" id="2375" />
+<TGConnectingPoint num="24" id="2376" />
+<TGConnectingPoint num="25" id="2377" />
+<TGConnectingPoint num="26" id="2378" />
+<TGConnectingPoint num="27" id="2379" />
+<TGConnectingPoint num="28" id="2380" />
+<TGConnectingPoint num="29" id="2381" />
+<TGConnectingPoint num="30" id="2382" />
+<TGConnectingPoint num="31" id="2383" />
+<TGConnectingPoint num="32" id="2384" />
+<TGConnectingPoint num="33" id="2385" />
+<TGConnectingPoint num="34" id="2386" />
+<TGConnectingPoint num="35" id="2387" />
+<TGConnectingPoint num="36" id="2388" />
+<TGConnectingPoint num="37" id="2389" />
+<TGConnectingPoint num="38" id="2390" />
+<TGConnectingPoint num="39" id="2391" />
+<TGConnectingPoint num="40" id="2392" />
+<TGConnectingPoint num="41" id="2393" />
+<TGConnectingPoint num="42" id="2394" />
+<TGConnectingPoint num="43" id="2395" />
+<TGConnectingPoint num="44" id="2396" />
+<TGConnectingPoint num="45" id="2397" />
+<TGConnectingPoint num="46" id="2398" />
+<TGConnectingPoint num="47" id="2399" />
+<TGConnectingPoint num="48" id="2400" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="ID" value="" type="0" typeOther="" />
+<Attribute access="2" id="transferTerminated" value="false" type="4" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="bytesToTransfer" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1524" id="2351" >
+<father id="2401" num="0" />
+<cdparam x="1081" y="150" />
+<sizeparam width="178" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" />
+<infoparam name="action state" value="counter = bytesToTransfer" />
+<TGConnectingPoint num="0" id="2343" />
+<TGConnectingPoint num="1" id="2344" />
+<TGConnectingPoint num="2" id="2345" />
+<TGConnectingPoint num="3" id="2346" />
+<TGConnectingPoint num="4" id="2347" />
+<TGConnectingPoint num="5" id="2348" />
+<TGConnectingPoint num="6" id="2349" />
+<TGConnectingPoint num="7" id="2350" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1522" id="2460" >
+<cdparam x="129" y="43" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1259" minY="10" maxY="543" />
+<infoparam name="CPU_Controller" value="Controller instance name" />
+<TGConnectingPoint num="0" id="2411" />
+<TGConnectingPoint num="1" id="2412" />
+<TGConnectingPoint num="2" id="2413" />
+<TGConnectingPoint num="3" id="2414" />
+<TGConnectingPoint num="4" id="2415" />
+<TGConnectingPoint num="5" id="2416" />
+<TGConnectingPoint num="6" id="2417" />
+<TGConnectingPoint num="7" id="2418" />
+<TGConnectingPoint num="8" id="2419" />
+<TGConnectingPoint num="9" id="2420" />
+<TGConnectingPoint num="10" id="2421" />
+<TGConnectingPoint num="11" id="2422" />
+<TGConnectingPoint num="12" id="2423" />
+<TGConnectingPoint num="13" id="2424" />
+<TGConnectingPoint num="14" id="2425" />
+<TGConnectingPoint num="15" id="2426" />
+<TGConnectingPoint num="16" id="2427" />
+<TGConnectingPoint num="17" id="2428" />
+<TGConnectingPoint num="18" id="2429" />
+<TGConnectingPoint num="19" id="2430" />
+<TGConnectingPoint num="20" id="2431" />
+<TGConnectingPoint num="21" id="2432" />
+<TGConnectingPoint num="22" id="2433" />
+<TGConnectingPoint num="23" id="2434" />
+<TGConnectingPoint num="24" id="2435" />
+<TGConnectingPoint num="25" id="2436" />
+<TGConnectingPoint num="26" id="2437" />
+<TGConnectingPoint num="27" id="2438" />
+<TGConnectingPoint num="28" id="2439" />
+<TGConnectingPoint num="29" id="2440" />
+<TGConnectingPoint num="30" id="2441" />
+<TGConnectingPoint num="31" id="2442" />
+<TGConnectingPoint num="32" id="2443" />
+<TGConnectingPoint num="33" id="2444" />
+<TGConnectingPoint num="34" id="2445" />
+<TGConnectingPoint num="35" id="2446" />
+<TGConnectingPoint num="36" id="2447" />
+<TGConnectingPoint num="37" id="2448" />
+<TGConnectingPoint num="38" id="2449" />
+<TGConnectingPoint num="39" id="2450" />
+<TGConnectingPoint num="40" id="2451" />
+<TGConnectingPoint num="41" id="2452" />
+<TGConnectingPoint num="42" id="2453" />
+<TGConnectingPoint num="43" id="2454" />
+<TGConnectingPoint num="44" id="2455" />
+<TGConnectingPoint num="45" id="2456" />
+<TGConnectingPoint num="46" id="2457" />
+<TGConnectingPoint num="47" id="2458" />
+<TGConnectingPoint num="48" id="2459" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="bytesToTransfer" value="" type="0" typeOther="" />
+<Attribute access="2" id="transferTrerminated" value="" type="4" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="ID" value="" type="0" typeOther="" />
+<Attribute access="2" id="transferTerminated" value="" type="4" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1524" id="2410" >
+<father id="2460" num="0" />
+<cdparam x="134" y="139" />
+<sizeparam width="179" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" />
+<infoparam name="action state" value="transferTerminated = false" />
+<TGConnectingPoint num="0" id="2402" />
+<TGConnectingPoint num="1" id="2403" />
+<TGConnectingPoint num="2" id="2404" />
+<TGConnectingPoint num="3" id="2405" />
+<TGConnectingPoint num="4" id="2406" />
+<TGConnectingPoint num="5" id="2407" />
+<TGConnectingPoint num="6" id="2408" />
+<TGConnectingPoint num="7" id="2409" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1523" id="2461" >
+<cdparam x="358" y="151" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferRequest" value="TransferRequest(bytesToTransfer, sourceAddress, destinationAddress, ID)" />
+<P1  x="605" y="123" id="2300" />
+<P2  x="1081" y="123" id="2359" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="bytesToTransfer" />
+<Param index="1" id="sourceAddress" />
+<Param index="2" id="destinationAddress" />
+<Param index="3" id="ID" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2462" >
+<cdparam x="139" y="121" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferRequest" value="TransferRequest(bytesToTransfer, sourceAddress, destinationAddress, ID)" />
+<P1  x="134" y="83" id="2414" />
+<P2  x="605" y="83" id="2296" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="bytesToTransfer" />
+<Param index="1" id="sourceAddress" />
+<Param index="2" id="destinationAddress" />
+<Param index="3" id="ID" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+<CommunicationPatternDiagramPanel name="TransferCycleAD" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1505" id="2473" >
+<cdparam x="313" y="391" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="EnableFlag" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="2463" />
+<TGConnectingPoint num="1" id="2464" />
+<TGConnectingPoint num="2" id="2465" />
+<TGConnectingPoint num="3" id="2466" />
+<TGConnectingPoint num="4" id="2467" />
+<TGConnectingPoint num="5" id="2468" />
+<TGConnectingPoint num="6" id="2469" />
+<TGConnectingPoint num="7" id="2470" />
+<TGConnectingPoint num="8" id="2471" />
+<TGConnectingPoint num="9" id="2472" />
+</COMPONENT>
+
+<COMPONENT type="1500" id="2489" >
+<cdparam x="360" y="259" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="choice6" value="null" />
+<TGConnectingPoint num="0" id="2477" />
+<TGConnectingPoint num="1" id="2478" />
+<TGConnectingPoint num="2" id="2479" />
+<TGConnectingPoint num="3" id="2480" />
+<TGConnectingPoint num="4" id="2481" />
+<TGConnectingPoint num="5" id="2482" />
+<TGConnectingPoint num="6" id="2483" />
+<TGConnectingPoint num="7" id="2484" />
+<TGConnectingPoint num="8" id="2485" />
+<TGConnectingPoint num="9" id="2486" />
+<TGConnectingPoint num="10" id="2487" />
+<TGConnectingPoint num="11" id="2488" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="2474" >
+<father id="2489" num="0" />
+<cdparam x="285" y="269" />
+<sizeparam width="93" height="15" minWidth="10" minHeight="0" 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="[ counter &gt; 0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2475" >
+<father id="2489" num="1" />
+<cdparam x="395" y="269" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2476" >
+<father id="2489" num="2" />
+<cdparam x="380" y="304" />
+<sizeparam width="44" height="15" minWidth="10" minHeight="0" 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="[ else ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1507" id="2491" >
+<cdparam x="365" y="470" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2490" />
+</COMPONENT>
+
+<!-- Issue #69 COMPONENT type="1508" id="2496" >
+<cdparam x="360" y="163" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="junction6" value="" />
+<TGConnectingPoint num="0" id="2492" />
+<TGConnectingPoint num="1" id="2493" />
+<TGConnectingPoint num="2" id="2494" />
+<TGConnectingPoint num="3" id="2495" />
+</COMPONENT-->
+
+<COMPONENT type="1505" id="2507" >
+<cdparam x="182" y="332" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TransferCycleSD" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="2497" />
+<TGConnectingPoint num="1" id="2498" />
+<TGConnectingPoint num="2" id="2499" />
+<TGConnectingPoint num="3" id="2500" />
+<TGConnectingPoint num="4" id="2501" />
+<TGConnectingPoint num="5" id="2502" />
+<TGConnectingPoint num="6" id="2503" />
+<TGConnectingPoint num="7" id="2504" />
+<TGConnectingPoint num="8" id="2505" />
+<TGConnectingPoint num="9" id="2506" />
+</COMPONENT>
+
+<COMPONENT type="1506" id="2509" >
+<cdparam x="368" y="95" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2508" />
+</COMPONENT>
+
+<CONNECTOR type="1501" id="2510" >
+<cdparam x="375" y="431" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="375" y="431" id="2464" />
+<P2  x="375" y="465" id="2490" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2512" >
+<cdparam x="335" y="274" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="335" y="274" id="2478" />
+<P2  x="244" y="327" id="2497" />
+<Point x="244" y="274" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2511" >
+<father id="2512" num="0" />
+<cdparam x="244" y="274" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1501" id="2516" >
+<cdparam x="244" y="372" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="244" y="372" id="2498" />
+<P2  x="360" y="178" id="2493" />
+<Point x="244" y="425" />
+<Point x="136" y="425" />
+<Point x="136" y="178" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2513" >
+<father id="2516" num="0" />
+<cdparam x="244" y="425" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2514" >
+<father id="2516" num="1" />
+<cdparam x="136" y="425" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2515" >
+<father id="2516" num="2" />
+<cdparam x="136" y="178" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1501" id="2517" >
+<cdparam x="375" y="314" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="375" y="314" id="2480" />
+<P2  x="375" y="386" id="2463" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2518" >
+<cdparam x="375" y="193" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="375" y="193" id="2495" />
+<P2  x="375" y="249" id="2477" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2519" >
+<cdparam x="375" y="115" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="375" y="115" id="2508" />
+<P2  x="375" y="163" id="2492" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</CommunicationPatternDiagramPanel>
+
+<TMLSDPanel name="TransferCycleSD" minX="10" maxX="1102" minY="10" maxY="556" >
+<COMPONENT type="1520" id="2569" >
+<cdparam x="1029" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" />
+<infoparam name="DESTINATION_Storage" value="Storage instance name" />
+<TGConnectingPoint num="0" id="2520" />
+<TGConnectingPoint num="1" id="2521" />
+<TGConnectingPoint num="2" id="2522" />
+<TGConnectingPoint num="3" id="2523" />
+<TGConnectingPoint num="4" id="2524" />
+<TGConnectingPoint num="5" id="2525" />
+<TGConnectingPoint num="6" id="2526" />
+<TGConnectingPoint num="7" id="2527" />
+<TGConnectingPoint num="8" id="2528" />
+<TGConnectingPoint num="9" id="2529" />
+<TGConnectingPoint num="10" id="2530" />
+<TGConnectingPoint num="11" id="2531" />
+<TGConnectingPoint num="12" id="2532" />
+<TGConnectingPoint num="13" id="2533" />
+<TGConnectingPoint num="14" id="2534" />
+<TGConnectingPoint num="15" id="2535" />
+<TGConnectingPoint num="16" id="2536" />
+<TGConnectingPoint num="17" id="2537" />
+<TGConnectingPoint num="18" id="2538" />
+<TGConnectingPoint num="19" id="2539" />
+<TGConnectingPoint num="20" id="2540" />
+<TGConnectingPoint num="21" id="2541" />
+<TGConnectingPoint num="22" id="2542" />
+<TGConnectingPoint num="23" id="2543" />
+<TGConnectingPoint num="24" id="2544" />
+<TGConnectingPoint num="25" id="2545" />
+<TGConnectingPoint num="26" id="2546" />
+<TGConnectingPoint num="27" id="2547" />
+<TGConnectingPoint num="28" id="2548" />
+<TGConnectingPoint num="29" id="2549" />
+<TGConnectingPoint num="30" id="2550" />
+<TGConnectingPoint num="31" id="2551" />
+<TGConnectingPoint num="32" id="2552" />
+<TGConnectingPoint num="33" id="2553" />
+<TGConnectingPoint num="34" id="2554" />
+<TGConnectingPoint num="35" id="2555" />
+<TGConnectingPoint num="36" id="2556" />
+<TGConnectingPoint num="37" id="2557" />
+<TGConnectingPoint num="38" id="2558" />
+<TGConnectingPoint num="39" id="2559" />
+<TGConnectingPoint num="40" id="2560" />
+<TGConnectingPoint num="41" id="2561" />
+<TGConnectingPoint num="42" id="2562" />
+<TGConnectingPoint num="43" id="2563" />
+<TGConnectingPoint num="44" id="2564" />
+<TGConnectingPoint num="45" id="2565" />
+<TGConnectingPoint num="46" id="2566" />
+<TGConnectingPoint num="47" id="2567" />
+<TGConnectingPoint num="48" id="2568" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="2619" >
+<cdparam x="818" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" />
+<infoparam name="TransferInstance_3" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="2570" />
+<TGConnectingPoint num="1" id="2571" />
+<TGConnectingPoint num="2" id="2572" />
+<TGConnectingPoint num="3" id="2573" />
+<TGConnectingPoint num="4" id="2574" />
+<TGConnectingPoint num="5" id="2575" />
+<TGConnectingPoint num="6" id="2576" />
+<TGConnectingPoint num="7" id="2577" />
+<TGConnectingPoint num="8" id="2578" />
+<TGConnectingPoint num="9" id="2579" />
+<TGConnectingPoint num="10" id="2580" />
+<TGConnectingPoint num="11" id="2581" />
+<TGConnectingPoint num="12" id="2582" />
+<TGConnectingPoint num="13" id="2583" />
+<TGConnectingPoint num="14" id="2584" />
+<TGConnectingPoint num="15" id="2585" />
+<TGConnectingPoint num="16" id="2586" />
+<TGConnectingPoint num="17" id="2587" />
+<TGConnectingPoint num="18" id="2588" />
+<TGConnectingPoint num="19" id="2589" />
+<TGConnectingPoint num="20" id="2590" />
+<TGConnectingPoint num="21" id="2591" />
+<TGConnectingPoint num="22" id="2592" />
+<TGConnectingPoint num="23" id="2593" />
+<TGConnectingPoint num="24" id="2594" />
+<TGConnectingPoint num="25" id="2595" />
+<TGConnectingPoint num="26" id="2596" />
+<TGConnectingPoint num="27" id="2597" />
+<TGConnectingPoint num="28" id="2598" />
+<TGConnectingPoint num="29" id="2599" />
+<TGConnectingPoint num="30" id="2600" />
+<TGConnectingPoint num="31" id="2601" />
+<TGConnectingPoint num="32" id="2602" />
+<TGConnectingPoint num="33" id="2603" />
+<TGConnectingPoint num="34" id="2604" />
+<TGConnectingPoint num="35" id="2605" />
+<TGConnectingPoint num="36" id="2606" />
+<TGConnectingPoint num="37" id="2607" />
+<TGConnectingPoint num="38" id="2608" />
+<TGConnectingPoint num="39" id="2609" />
+<TGConnectingPoint num="40" id="2610" />
+<TGConnectingPoint num="41" id="2611" />
+<TGConnectingPoint num="42" id="2612" />
+<TGConnectingPoint num="43" id="2613" />
+<TGConnectingPoint num="44" id="2614" />
+<TGConnectingPoint num="45" id="2615" />
+<TGConnectingPoint num="46" id="2616" />
+<TGConnectingPoint num="47" id="2617" />
+<TGConnectingPoint num="48" id="2618" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="2669" >
+<cdparam x="392" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" />
+<infoparam name="TransferInstance_2" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="2620" />
+<TGConnectingPoint num="1" id="2621" />
+<TGConnectingPoint num="2" id="2622" />
+<TGConnectingPoint num="3" id="2623" />
+<TGConnectingPoint num="4" id="2624" />
+<TGConnectingPoint num="5" id="2625" />
+<TGConnectingPoint num="6" id="2626" />
+<TGConnectingPoint num="7" id="2627" />
+<TGConnectingPoint num="8" id="2628" />
+<TGConnectingPoint num="9" id="2629" />
+<TGConnectingPoint num="10" id="2630" />
+<TGConnectingPoint num="11" id="2631" />
+<TGConnectingPoint num="12" id="2632" />
+<TGConnectingPoint num="13" id="2633" />
+<TGConnectingPoint num="14" id="2634" />
+<TGConnectingPoint num="15" id="2635" />
+<TGConnectingPoint num="16" id="2636" />
+<TGConnectingPoint num="17" id="2637" />
+<TGConnectingPoint num="18" id="2638" />
+<TGConnectingPoint num="19" id="2639" />
+<TGConnectingPoint num="20" id="2640" />
+<TGConnectingPoint num="21" id="2641" />
+<TGConnectingPoint num="22" id="2642" />
+<TGConnectingPoint num="23" id="2643" />
+<TGConnectingPoint num="24" id="2644" />
+<TGConnectingPoint num="25" id="2645" />
+<TGConnectingPoint num="26" id="2646" />
+<TGConnectingPoint num="27" id="2647" />
+<TGConnectingPoint num="28" id="2648" />
+<TGConnectingPoint num="29" id="2649" />
+<TGConnectingPoint num="30" id="2650" />
+<TGConnectingPoint num="31" id="2651" />
+<TGConnectingPoint num="32" id="2652" />
+<TGConnectingPoint num="33" id="2653" />
+<TGConnectingPoint num="34" id="2654" />
+<TGConnectingPoint num="35" id="2655" />
+<TGConnectingPoint num="36" id="2656" />
+<TGConnectingPoint num="37" id="2657" />
+<TGConnectingPoint num="38" id="2658" />
+<TGConnectingPoint num="39" id="2659" />
+<TGConnectingPoint num="40" id="2660" />
+<TGConnectingPoint num="41" id="2661" />
+<TGConnectingPoint num="42" id="2662" />
+<TGConnectingPoint num="43" id="2663" />
+<TGConnectingPoint num="44" id="2664" />
+<TGConnectingPoint num="45" id="2665" />
+<TGConnectingPoint num="46" id="2666" />
+<TGConnectingPoint num="47" id="2667" />
+<TGConnectingPoint num="48" id="2668" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1520" id="2719" >
+<cdparam x="643" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" />
+<infoparam name="SOURCE_Storage" value="Storage instance name" />
+<TGConnectingPoint num="0" id="2670" />
+<TGConnectingPoint num="1" id="2671" />
+<TGConnectingPoint num="2" id="2672" />
+<TGConnectingPoint num="3" id="2673" />
+<TGConnectingPoint num="4" id="2674" />
+<TGConnectingPoint num="5" id="2675" />
+<TGConnectingPoint num="6" id="2676" />
+<TGConnectingPoint num="7" id="2677" />
+<TGConnectingPoint num="8" id="2678" />
+<TGConnectingPoint num="9" id="2679" />
+<TGConnectingPoint num="10" id="2680" />
+<TGConnectingPoint num="11" id="2681" />
+<TGConnectingPoint num="12" id="2682" />
+<TGConnectingPoint num="13" id="2683" />
+<TGConnectingPoint num="14" id="2684" />
+<TGConnectingPoint num="15" id="2685" />
+<TGConnectingPoint num="16" id="2686" />
+<TGConnectingPoint num="17" id="2687" />
+<TGConnectingPoint num="18" id="2688" />
+<TGConnectingPoint num="19" id="2689" />
+<TGConnectingPoint num="20" id="2690" />
+<TGConnectingPoint num="21" id="2691" />
+<TGConnectingPoint num="22" id="2692" />
+<TGConnectingPoint num="23" id="2693" />
+<TGConnectingPoint num="24" id="2694" />
+<TGConnectingPoint num="25" id="2695" />
+<TGConnectingPoint num="26" id="2696" />
+<TGConnectingPoint num="27" id="2697" />
+<TGConnectingPoint num="28" id="2698" />
+<TGConnectingPoint num="29" id="2699" />
+<TGConnectingPoint num="30" id="2700" />
+<TGConnectingPoint num="31" id="2701" />
+<TGConnectingPoint num="32" id="2702" />
+<TGConnectingPoint num="33" id="2703" />
+<TGConnectingPoint num="34" id="2704" />
+<TGConnectingPoint num="35" id="2705" />
+<TGConnectingPoint num="36" id="2706" />
+<TGConnectingPoint num="37" id="2707" />
+<TGConnectingPoint num="38" id="2708" />
+<TGConnectingPoint num="39" id="2709" />
+<TGConnectingPoint num="40" id="2710" />
+<TGConnectingPoint num="41" id="2711" />
+<TGConnectingPoint num="42" id="2712" />
+<TGConnectingPoint num="43" id="2713" />
+<TGConnectingPoint num="44" id="2714" />
+<TGConnectingPoint num="45" id="2715" />
+<TGConnectingPoint num="46" id="2716" />
+<TGConnectingPoint num="47" id="2717" />
+<TGConnectingPoint num="48" id="2718" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="2778" >
+<cdparam x="161" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" />
+<infoparam name="DMA_Controller" value="Controller instance name" />
+<TGConnectingPoint num="0" id="2729" />
+<TGConnectingPoint num="1" id="2730" />
+<TGConnectingPoint num="2" id="2731" />
+<TGConnectingPoint num="3" id="2732" />
+<TGConnectingPoint num="4" id="2733" />
+<TGConnectingPoint num="5" id="2734" />
+<TGConnectingPoint num="6" id="2735" />
+<TGConnectingPoint num="7" id="2736" />
+<TGConnectingPoint num="8" id="2737" />
+<TGConnectingPoint num="9" id="2738" />
+<TGConnectingPoint num="10" id="2739" />
+<TGConnectingPoint num="11" id="2740" />
+<TGConnectingPoint num="12" id="2741" />
+<TGConnectingPoint num="13" id="2742" />
+<TGConnectingPoint num="14" id="2743" />
+<TGConnectingPoint num="15" id="2744" />
+<TGConnectingPoint num="16" id="2745" />
+<TGConnectingPoint num="17" id="2746" />
+<TGConnectingPoint num="18" id="2747" />
+<TGConnectingPoint num="19" id="2748" />
+<TGConnectingPoint num="20" id="2749" />
+<TGConnectingPoint num="21" id="2750" />
+<TGConnectingPoint num="22" id="2751" />
+<TGConnectingPoint num="23" id="2752" />
+<TGConnectingPoint num="24" id="2753" />
+<TGConnectingPoint num="25" id="2754" />
+<TGConnectingPoint num="26" id="2755" />
+<TGConnectingPoint num="27" id="2756" />
+<TGConnectingPoint num="28" id="2757" />
+<TGConnectingPoint num="29" id="2758" />
+<TGConnectingPoint num="30" id="2759" />
+<TGConnectingPoint num="31" id="2760" />
+<TGConnectingPoint num="32" id="2761" />
+<TGConnectingPoint num="33" id="2762" />
+<TGConnectingPoint num="34" id="2763" />
+<TGConnectingPoint num="35" id="2764" />
+<TGConnectingPoint num="36" id="2765" />
+<TGConnectingPoint num="37" id="2766" />
+<TGConnectingPoint num="38" id="2767" />
+<TGConnectingPoint num="39" id="2768" />
+<TGConnectingPoint num="40" id="2769" />
+<TGConnectingPoint num="41" id="2770" />
+<TGConnectingPoint num="42" id="2771" />
+<TGConnectingPoint num="43" id="2772" />
+<TGConnectingPoint num="44" id="2773" />
+<TGConnectingPoint num="45" id="2774" />
+<TGConnectingPoint num="46" id="2775" />
+<TGConnectingPoint num="47" id="2776" />
+<TGConnectingPoint num="48" id="2777" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" />
+<Attribute access="2" id="ID" value="" type="0" typeOther="" />
+<Attribute access="2" id="transferCompleted" value="false" type="4" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1524" id="2728" >
+<father id="2778" num="0" />
+<cdparam x="166" y="252" />
+<sizeparam width="161" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" />
+<infoparam name="action state" value="counter = counter - size" />
+<TGConnectingPoint num="0" id="2720" />
+<TGConnectingPoint num="1" id="2721" />
+<TGConnectingPoint num="2" id="2722" />
+<TGConnectingPoint num="3" id="2723" />
+<TGConnectingPoint num="4" id="2724" />
+<TGConnectingPoint num="5" id="2725" />
+<TGConnectingPoint num="6" id="2726" />
+<TGConnectingPoint num="7" id="2727" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1523" id="2779" >
+<cdparam x="823" y="244" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress, size)" />
+<P1  x="823" y="266" id="2590" />
+<P2  x="1034" y="266" id="2540" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress" />
+<Param index="1" id="size" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2780" >
+<cdparam x="166" y="216" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress, size)" />
+<P1  x="166" y="236" id="2746" />
+<P2  x="823" y="236" id="2587" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress" />
+<Param index="1" id="size" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2781" >
+<cdparam x="397" y="186" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Transfer" value="Transfer(size)" />
+<P1  x="397" y="206" id="2634" />
+<P2  x="166" y="206" id="2743" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="size" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2782" >
+<cdparam x="648" y="155" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Transfer" value="Transfer(size)" />
+<P1  x="648" y="176" id="2681" />
+<P2  x="397" y="176" id="2631" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="size" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2783" >
+<cdparam x="397" y="126" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress, size)" />
+<P1  x="397" y="146" id="2628" />
+<P2  x="648" y="146" id="2678" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress" />
+<Param index="1" id="size" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="2784" >
+<cdparam x="183" y="95" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress, size)" />
+<P1  x="166" y="116" id="2734" />
+<P2  x="397" y="116" id="2625" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress" />
+<Param index="1" id="size" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+<TMLSDPanel name="EnableFlag" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1522" id="2843" >
+<cdparam x="354" y="61" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMA_controller" value="Controller instance name" />
+<TGConnectingPoint num="0" id="2794" />
+<TGConnectingPoint num="1" id="2795" />
+<TGConnectingPoint num="2" id="2796" />
+<TGConnectingPoint num="3" id="2797" />
+<TGConnectingPoint num="4" id="2798" />
+<TGConnectingPoint num="5" id="2799" />
+<TGConnectingPoint num="6" id="2800" />
+<TGConnectingPoint num="7" id="2801" />
+<TGConnectingPoint num="8" id="2802" />
+<TGConnectingPoint num="9" id="2803" />
+<TGConnectingPoint num="10" id="2804" />
+<TGConnectingPoint num="11" id="2805" />
+<TGConnectingPoint num="12" id="2806" />
+<TGConnectingPoint num="13" id="2807" />
+<TGConnectingPoint num="14" id="2808" />
+<TGConnectingPoint num="15" id="2809" />
+<TGConnectingPoint num="16" id="2810" />
+<TGConnectingPoint num="17" id="2811" />
+<TGConnectingPoint num="18" id="2812" />
+<TGConnectingPoint num="19" id="2813" />
+<TGConnectingPoint num="20" id="2814" />
+<TGConnectingPoint num="21" id="2815" />
+<TGConnectingPoint num="22" id="2816" />
+<TGConnectingPoint num="23" id="2817" />
+<TGConnectingPoint num="24" id="2818" />
+<TGConnectingPoint num="25" id="2819" />
+<TGConnectingPoint num="26" id="2820" />
+<TGConnectingPoint num="27" id="2821" />
+<TGConnectingPoint num="28" id="2822" />
+<TGConnectingPoint num="29" id="2823" />
+<TGConnectingPoint num="30" id="2824" />
+<TGConnectingPoint num="31" id="2825" />
+<TGConnectingPoint num="32" id="2826" />
+<TGConnectingPoint num="33" id="2827" />
+<TGConnectingPoint num="34" id="2828" />
+<TGConnectingPoint num="35" id="2829" />
+<TGConnectingPoint num="36" id="2830" />
+<TGConnectingPoint num="37" id="2831" />
+<TGConnectingPoint num="38" id="2832" />
+<TGConnectingPoint num="39" id="2833" />
+<TGConnectingPoint num="40" id="2834" />
+<TGConnectingPoint num="41" id="2835" />
+<TGConnectingPoint num="42" id="2836" />
+<TGConnectingPoint num="43" id="2837" />
+<TGConnectingPoint num="44" id="2838" />
+<TGConnectingPoint num="45" id="2839" />
+<TGConnectingPoint num="46" id="2840" />
+<TGConnectingPoint num="47" id="2841" />
+<TGConnectingPoint num="48" id="2842" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="transferCompleted" value="false" type="4" typeOther="" />
+<Attribute access="2" id="ID" value="" type="0" typeOther="" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1524" id="2793" >
+<father id="2843" num="0" />
+<cdparam x="359" y="94" />
+<sizeparam width="171" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" />
+<infoparam name="action state" value="transferCompleted = true" />
+<TGConnectingPoint num="0" id="2785" />
+<TGConnectingPoint num="1" id="2786" />
+<TGConnectingPoint num="2" id="2787" />
+<TGConnectingPoint num="3" id="2788" />
+<TGConnectingPoint num="4" id="2789" />
+<TGConnectingPoint num="5" id="2790" />
+<TGConnectingPoint num="6" id="2791" />
+<TGConnectingPoint num="7" id="2792" />
+</SUBCOMPONENT>
+
+
+</TMLSDPanel>
+
+<CommunicationPatternDiagramPanel name="PollingCycleAD" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1507" id="2845" >
+<cdparam x="284" y="342" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2844" />
+</COMPONENT>
+
+<COMPONENT type="1500" id="2861" >
+<cdparam x="279" y="223" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="choice6" value="null" />
+<TGConnectingPoint num="0" id="2849" />
+<TGConnectingPoint num="1" id="2850" />
+<TGConnectingPoint num="2" id="2851" />
+<TGConnectingPoint num="3" id="2852" />
+<TGConnectingPoint num="4" id="2853" />
+<TGConnectingPoint num="5" id="2854" />
+<TGConnectingPoint num="6" id="2855" />
+<TGConnectingPoint num="7" id="2856" />
+<TGConnectingPoint num="8" id="2857" />
+<TGConnectingPoint num="9" id="2858" />
+<TGConnectingPoint num="10" id="2859" />
+<TGConnectingPoint num="11" id="2860" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="2846" >
+<father id="2861" num="0" />
+<cdparam x="204" y="233" />
+<sizeparam width="197" height="15" minWidth="10" minHeight="0" 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="[ transferTerminated == false ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2847" >
+<father id="2861" num="1" />
+<cdparam x="314" y="233" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="0" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2848" >
+<father id="2861" num="2" />
+<cdparam x="299" y="268" />
+<sizeparam width="193" height="15" minWidth="10" minHeight="0" 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="[ transferTerminated == true ]" />
+</SUBCOMPONENT>
+
+<!-- Issue #69 COMPONENT type="1508" id="2866" >
+<cdparam x="279" y="127" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="junction6" value="" />
+<TGConnectingPoint num="0" id="2862" />
+<TGConnectingPoint num="1" id="2863" />
+<TGConnectingPoint num="2" id="2864" />
+<TGConnectingPoint num="3" id="2865" />
+</COMPONENT-->
+
+<COMPONENT type="1505" id="2877" >
+<cdparam x="101" y="296" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="PollingCycleSD" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="2867" />
+<TGConnectingPoint num="1" id="2868" />
+<TGConnectingPoint num="2" id="2869" />
+<TGConnectingPoint num="3" id="2870" />
+<TGConnectingPoint num="4" id="2871" />
+<TGConnectingPoint num="5" id="2872" />
+<TGConnectingPoint num="6" id="2873" />
+<TGConnectingPoint num="7" id="2874" />
+<TGConnectingPoint num="8" id="2875" />
+<TGConnectingPoint num="9" id="2876" />
+</COMPONENT>
+
+<COMPONENT type="1506" id="2879" >
+<cdparam x="287" y="59" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="2878" />
+</COMPONENT>
+
+<CONNECTOR type="1501" id="2880" >
+<cdparam x="294" y="278" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="294" y="278" id="2852" />
+<P2  x="294" y="337" id="2844" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2884" >
+<cdparam x="163" y="336" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="163" y="336" id="2868" />
+<P2  x="279" y="142" id="2863" />
+<Point x="163" y="389" />
+<Point x="55" y="389" />
+<Point x="55" y="142" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2881" >
+<father id="2884" num="0" />
+<cdparam x="163" y="389" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2882" >
+<father id="2884" num="1" />
+<cdparam x="55" y="389" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2883" >
+<father id="2884" num="2" />
+<cdparam x="55" y="142" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1501" id="2886" >
+<cdparam x="254" 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="254" y="238" id="2850" />
+<P2  x="163" y="291" id="2867" />
+<Point x="163" y="238" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2885" >
+<father id="2886" num="0" />
+<cdparam x="163" y="238" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1501" id="2887" >
+<cdparam x="294" y="157" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="294" y="157" id="2865" />
+<P2  x="294" y="213" id="2849" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="2888" >
+<cdparam x="294" y="79" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="294" y="79" id="2878" />
+<P2  x="294" y="127" id="2862" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</CommunicationPatternDiagramPanel>
+
+<TMLSDPanel name="PollingCycleSD" minX="10" maxX="720" minY="10" maxY="563" >
+<COMPONENT type="1521" id="2938" >
+<cdparam x="414" y="63" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="720" minY="10" maxY="563" />
+<infoparam name="TransferInstance_4" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="2889" />
+<TGConnectingPoint num="1" id="2890" />
+<TGConnectingPoint num="2" id="2891" />
+<TGConnectingPoint num="3" id="2892" />
+<TGConnectingPoint num="4" id="2893" />
+<TGConnectingPoint num="5" id="2894" />
+<TGConnectingPoint num="6" id="2895" />
+<TGConnectingPoint num="7" id="2896" />
+<TGConnectingPoint num="8" id="2897" />
+<TGConnectingPoint num="9" id="2898" />
+<TGConnectingPoint num="10" id="2899" />
+<TGConnectingPoint num="11" id="2900" />
+<TGConnectingPoint num="12" id="2901" />
+<TGConnectingPoint num="13" id="2902" />
+<TGConnectingPoint num="14" id="2903" />
+<TGConnectingPoint num="15" id="2904" />
+<TGConnectingPoint num="16" id="2905" />
+<TGConnectingPoint num="17" id="2906" />
+<TGConnectingPoint num="18" id="2907" />
+<TGConnectingPoint num="19" id="2908" />
+<TGConnectingPoint num="20" id="2909" />
+<TGConnectingPoint num="21" id="2910" />
+<TGConnectingPoint num="22" id="2911" />
+<TGConnectingPoint num="23" id="2912" />
+<TGConnectingPoint num="24" id="2913" />
+<TGConnectingPoint num="25" id="2914" />
+<TGConnectingPoint num="26" id="2915" />
+<TGConnectingPoint num="27" id="2916" />
+<TGConnectingPoint num="28" id="2917" />
+<TGConnectingPoint num="29" id="2918" />
+<TGConnectingPoint num="30" id="2919" />
+<TGConnectingPoint num="31" id="2920" />
+<TGConnectingPoint num="32" id="2921" />
+<TGConnectingPoint num="33" id="2922" />
+<TGConnectingPoint num="34" id="2923" />
+<TGConnectingPoint num="35" id="2924" />
+<TGConnectingPoint num="36" id="2925" />
+<TGConnectingPoint num="37" id="2926" />
+<TGConnectingPoint num="38" id="2927" />
+<TGConnectingPoint num="39" id="2928" />
+<TGConnectingPoint num="40" id="2929" />
+<TGConnectingPoint num="41" id="2930" />
+<TGConnectingPoint num="42" id="2931" />
+<TGConnectingPoint num="43" id="2932" />
+<TGConnectingPoint num="44" id="2933" />
+<TGConnectingPoint num="45" id="2934" />
+<TGConnectingPoint num="46" id="2935" />
+<TGConnectingPoint num="47" id="2936" />
+<TGConnectingPoint num="48" id="2937" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="ID" value="" type="0" typeOther="" />
+<Attribute access="2" id="transferTerminated" value="" type="4" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="2988" >
+<cdparam x="668" y="63" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="720" minY="10" maxY="563" />
+<infoparam name="DMA_Controller" value="Controller instance name" />
+<TGConnectingPoint num="0" id="2939" />
+<TGConnectingPoint num="1" id="2940" />
+<TGConnectingPoint num="2" id="2941" />
+<TGConnectingPoint num="3" id="2942" />
+<TGConnectingPoint num="4" id="2943" />
+<TGConnectingPoint num="5" id="2944" />
+<TGConnectingPoint num="6" id="2945" />
+<TGConnectingPoint num="7" id="2946" />
+<TGConnectingPoint num="8" id="2947" />
+<TGConnectingPoint num="9" id="2948" />
+<TGConnectingPoint num="10" id="2949" />
+<TGConnectingPoint num="11" id="2950" />
+<TGConnectingPoint num="12" id="2951" />
+<TGConnectingPoint num="13" id="2952" />
+<TGConnectingPoint num="14" id="2953" />
+<TGConnectingPoint num="15" id="2954" />
+<TGConnectingPoint num="16" id="2955" />
+<TGConnectingPoint num="17" id="2956" />
+<TGConnectingPoint num="18" id="2957" />
+<TGConnectingPoint num="19" id="2958" />
+<TGConnectingPoint num="20" id="2959" />
+<TGConnectingPoint num="21" id="2960" />
+<TGConnectingPoint num="22" id="2961" />
+<TGConnectingPoint num="23" id="2962" />
+<TGConnectingPoint num="24" id="2963" />
+<TGConnectingPoint num="25" id="2964" />
+<TGConnectingPoint num="26" id="2965" />
+<TGConnectingPoint num="27" id="2966" />
+<TGConnectingPoint num="28" id="2967" />
+<TGConnectingPoint num="29" id="2968" />
+<TGConnectingPoint num="30" id="2969" />
+<TGConnectingPoint num="31" id="2970" />
+<TGConnectingPoint num="32" id="2971" />
+<TGConnectingPoint num="33" id="2972" />
+<TGConnectingPoint num="34" id="2973" />
+<TGConnectingPoint num="35" id="2974" />
+<TGConnectingPoint num="36" id="2975" />
+<TGConnectingPoint num="37" id="2976" />
+<TGConnectingPoint num="38" id="2977" />
+<TGConnectingPoint num="39" id="2978" />
+<TGConnectingPoint num="40" id="2979" />
+<TGConnectingPoint num="41" id="2980" />
+<TGConnectingPoint num="42" id="2981" />
+<TGConnectingPoint num="43" id="2982" />
+<TGConnectingPoint num="44" id="2983" />
+<TGConnectingPoint num="45" id="2984" />
+<TGConnectingPoint num="46" id="2985" />
+<TGConnectingPoint num="47" id="2986" />
+<TGConnectingPoint num="48" id="2987" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="counter" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="ID" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="transferTerminated" value="false" type="4" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="3047" >
+<cdparam x="153" y="63" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="720" minY="10" maxY="563" />
+<infoparam name="CPU_Controller" value="Controller instance name" />
+<TGConnectingPoint num="0" id="2998" />
+<TGConnectingPoint num="1" id="2999" />
+<TGConnectingPoint num="2" id="3000" />
+<TGConnectingPoint num="3" id="3001" />
+<TGConnectingPoint num="4" id="3002" />
+<TGConnectingPoint num="5" id="3003" />
+<TGConnectingPoint num="6" id="3004" />
+<TGConnectingPoint num="7" id="3005" />
+<TGConnectingPoint num="8" id="3006" />
+<TGConnectingPoint num="9" id="3007" />
+<TGConnectingPoint num="10" id="3008" />
+<TGConnectingPoint num="11" id="3009" />
+<TGConnectingPoint num="12" id="3010" />
+<TGConnectingPoint num="13" id="3011" />
+<TGConnectingPoint num="14" id="3012" />
+<TGConnectingPoint num="15" id="3013" />
+<TGConnectingPoint num="16" id="3014" />
+<TGConnectingPoint num="17" id="3015" />
+<TGConnectingPoint num="18" id="3016" />
+<TGConnectingPoint num="19" id="3017" />
+<TGConnectingPoint num="20" id="3018" />
+<TGConnectingPoint num="21" id="3019" />
+<TGConnectingPoint num="22" id="3020" />
+<TGConnectingPoint num="23" id="3021" />
+<TGConnectingPoint num="24" id="3022" />
+<TGConnectingPoint num="25" id="3023" />
+<TGConnectingPoint num="26" id="3024" />
+<TGConnectingPoint num="27" id="3025" />
+<TGConnectingPoint num="28" id="3026" />
+<TGConnectingPoint num="29" id="3027" />
+<TGConnectingPoint num="30" id="3028" />
+<TGConnectingPoint num="31" id="3029" />
+<TGConnectingPoint num="32" id="3030" />
+<TGConnectingPoint num="33" id="3031" />
+<TGConnectingPoint num="34" id="3032" />
+<TGConnectingPoint num="35" id="3033" />
+<TGConnectingPoint num="36" id="3034" />
+<TGConnectingPoint num="37" id="3035" />
+<TGConnectingPoint num="38" id="3036" />
+<TGConnectingPoint num="39" id="3037" />
+<TGConnectingPoint num="40" id="3038" />
+<TGConnectingPoint num="41" id="3039" />
+<TGConnectingPoint num="42" id="3040" />
+<TGConnectingPoint num="43" id="3041" />
+<TGConnectingPoint num="44" id="3042" />
+<TGConnectingPoint num="45" id="3043" />
+<TGConnectingPoint num="46" id="3044" />
+<TGConnectingPoint num="47" id="3045" />
+<TGConnectingPoint num="48" id="3046" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="bytesToTransfer" value="" type="0" typeOther="" />
+<Attribute access="2" id="transferTerminated" value="" type="4" typeOther="" />
+<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" />
+<Attribute access="2" id="ID" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1524" id="2997" >
+<father id="3047" num="0" />
+<cdparam x="158" y="79" />
+<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" />
+<infoparam name="action state" value="wait(waiting_time)" />
+<TGConnectingPoint num="0" id="2989" />
+<TGConnectingPoint num="1" id="2990" />
+<TGConnectingPoint num="2" id="2991" />
+<TGConnectingPoint num="3" id="2992" />
+<TGConnectingPoint num="4" id="2993" />
+<TGConnectingPoint num="5" id="2994" />
+<TGConnectingPoint num="6" id="2995" />
+<TGConnectingPoint num="7" id="2996" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1523" id="3048" >
+<cdparam x="419" y="223" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Polling" value="Polling(ID, transferTerminated)" />
+<P1  x="419" y="223" id="2904" />
+<P2  x="158" y="223" id="3013" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="ID" />
+<Param index="1" id="transferTerminated" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="3049" >
+<cdparam x="644" y="183" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Polling" value="Polling(ID, transferTerminated)" />
+<P1  x="673" y="183" id="2950" />
+<P2  x="419" y="183" id="2900" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="ID" />
+<Param index="1" id="transferTerminated" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="3050" >
+<cdparam x="419" y="173" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="PollingRequest" value="PollingRequest(ID, transferTerminated)" />
+<P1  x="419" y="143" id="2896" />
+<P2  x="673" y="143" id="2946" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="ID" />
+<Param index="1" id="transferTerminated" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="3051" >
+<cdparam x="200" y="143" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="PollingRequest" value="PollingRequest(ID, transferTerminated)" />
+<P1  x="158" y="123" id="3003" />
+<P2  x="419" y="123" id="2894" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="ID" />
+<Param index="1" id="transferTerminated" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML CP" nameTab="Double_DMA_transfer" >
+<CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1507" id="3053" >
+<cdparam x="234" y="316" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3052" />
+</COMPONENT>
+
+<COMPONENT type="1506" id="3055" >
+<cdparam x="237" y="80" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3054" />
+</COMPONENT>
+
+<COMPONENT type="301" id="3072" >
+<cdparam x="448" y="98" />
+<sizeparam width="396" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="Some parameters are mapping dependent:
+- counter1 and counter2 (depend on the application model)
+- the source and destination addresses
+
+This model supposes that the DMA replies via
+INTERRUPTS
+" />
+<TGConnectingPoint num="0" id="3056" />
+<TGConnectingPoint num="1" id="3057" />
+<TGConnectingPoint num="2" id="3058" />
+<TGConnectingPoint num="3" id="3059" />
+<TGConnectingPoint num="4" id="3060" />
+<TGConnectingPoint num="5" id="3061" />
+<TGConnectingPoint num="6" id="3062" />
+<TGConnectingPoint num="7" id="3063" />
+<TGConnectingPoint num="8" id="3064" />
+<TGConnectingPoint num="9" id="3065" />
+<TGConnectingPoint num="10" id="3066" />
+<TGConnectingPoint num="11" id="3067" />
+<TGConnectingPoint num="12" id="3068" />
+<TGConnectingPoint num="13" id="3069" />
+<TGConnectingPoint num="14" id="3070" />
+<TGConnectingPoint num="15" id="3071" />
+<extraparam>
+<Line value="Some parameters are mapping dependent:" />
+<Line value="- counter1 and counter2 (depend on the application model)" />
+<Line value="- the source and destination addresses" />
+<Line value="" />
+<Line value="This model supposes that the DMA replies via" />
+<Line value="INTERRUPTS" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1504" id="3083" >
+<cdparam x="183" y="230" />
+<sizeparam width="123" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMATransfer2" value="Reference to a CP" />
+<TGConnectingPoint num="0" id="3073" />
+<TGConnectingPoint num="1" id="3074" />
+<TGConnectingPoint num="2" id="3075" />
+<TGConnectingPoint num="3" id="3076" />
+<TGConnectingPoint num="4" id="3077" />
+<TGConnectingPoint num="5" id="3078" />
+<TGConnectingPoint num="6" id="3079" />
+<TGConnectingPoint num="7" id="3080" />
+<TGConnectingPoint num="8" id="3081" />
+<TGConnectingPoint num="9" id="3082" />
+</COMPONENT>
+
+<COMPONENT type="1504" id="3094" >
+<cdparam x="183" y="139" />
+<sizeparam width="123" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMATransfer1" value="Reference to a CP" />
+<TGConnectingPoint num="0" id="3084" />
+<TGConnectingPoint num="1" id="3085" />
+<TGConnectingPoint num="2" id="3086" />
+<TGConnectingPoint num="3" id="3087" />
+<TGConnectingPoint num="4" id="3088" />
+<TGConnectingPoint num="5" id="3089" />
+<TGConnectingPoint num="6" id="3090" />
+<TGConnectingPoint num="7" id="3091" />
+<TGConnectingPoint num="8" id="3092" />
+<TGConnectingPoint num="9" id="3093" />
+</COMPONENT>
+
+<CONNECTOR type="1501" id="3095" >
+<cdparam x="246" y="268" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="244" y="270" id="3074" />
+<P2  x="244" y="311" id="3052" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3096" >
+<cdparam x="244" y="179" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="244" y="179" id="3085" />
+<P2  x="244" y="225" id="3073" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3097" >
+<cdparam x="242" y="116" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="244" y="100" id="3054" />
+<P2  x="244" y="134" id="3084" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</CommunicationPatternDiagramPanel>
+
+<CommunicationPatternDiagramPanel name="DMATransfer1" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1507" id="3099" >
+<cdparam x="437" y="337" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3098" />
+</COMPONENT>
+
+<COMPONENT type="1510" id="3103" >
+<cdparam x="184" y="193" />
+<sizeparam width="164" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="for loop" value="for(i=counter1;i&gt;0;i=i-1)" />
+<TGConnectingPoint num="0" id="3100" />
+<TGConnectingPoint num="1" id="3101" />
+<TGConnectingPoint num="2" id="3102" />
+<extraparam>
+<Data init="i=counter1" condition="i&gt;0" increment="i=i-1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1507" id="3105" >
+<cdparam x="256" y="350" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3104" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="3116" >
+<cdparam x="385" y="250" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMACycle_SD1" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="3106" />
+<TGConnectingPoint num="1" id="3107" />
+<TGConnectingPoint num="2" id="3108" />
+<TGConnectingPoint num="3" id="3109" />
+<TGConnectingPoint num="4" id="3110" />
+<TGConnectingPoint num="5" id="3111" />
+<TGConnectingPoint num="6" id="3112" />
+<TGConnectingPoint num="7" id="3113" />
+<TGConnectingPoint num="8" id="3114" />
+<TGConnectingPoint num="9" id="3115" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="3127" >
+<cdparam x="204" y="275" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TerminateDMA_SD1" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="3117" />
+<TGConnectingPoint num="1" id="3118" />
+<TGConnectingPoint num="2" id="3119" />
+<TGConnectingPoint num="3" id="3120" />
+<TGConnectingPoint num="4" id="3121" />
+<TGConnectingPoint num="5" id="3122" />
+<TGConnectingPoint num="6" id="3123" />
+<TGConnectingPoint num="7" id="3124" />
+<TGConnectingPoint num="8" id="3125" />
+<TGConnectingPoint num="9" id="3126" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="3138" >
+<cdparam x="203" y="99" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="ConfigureDMA_SD1" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="3128" />
+<TGConnectingPoint num="1" id="3129" />
+<TGConnectingPoint num="2" id="3130" />
+<TGConnectingPoint num="3" id="3131" />
+<TGConnectingPoint num="4" id="3132" />
+<TGConnectingPoint num="5" id="3133" />
+<TGConnectingPoint num="6" id="3134" />
+<TGConnectingPoint num="7" id="3135" />
+<TGConnectingPoint num="8" id="3136" />
+<TGConnectingPoint num="9" id="3137" />
+</COMPONENT>
+
+<COMPONENT type="1506" id="3140" >
+<cdparam x="258" y="35" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3139" />
+</COMPONENT>
+
+<CONNECTOR type="1501" id="3142" >
+<cdparam x="331" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="348" y="207" id="3101" />
+<P2  x="447" y="245" id="3106" />
+<Point x="447" y="207" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3141" >
+<father id="3142" num="0" />
+<cdparam x="447" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1501" id="3143" >
+<cdparam x="99" y="298" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="266" y="218" id="3102" />
+<P2  x="266" y="270" id="3117" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3144" >
+<cdparam x="77" y="391" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="447" y="290" id="3107" />
+<P2  x="447" y="332" id="3098" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3145" >
+<cdparam x="266" y="315" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="266" y="315" id="3118" />
+<P2  x="266" y="345" id="3104" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3146" >
+<cdparam x="265" y="139" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="265" y="139" id="3129" />
+<P2  x="266" y="188" id="3100" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3147" >
+<cdparam x="263" y="31" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="265" y="55" id="3139" />
+<P2  x="265" y="94" id="3128" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</CommunicationPatternDiagramPanel>
+
+<CommunicationPatternDiagramPanel name="DMATransfer2" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1507" id="3149" >
+<cdparam x="416" y="344" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3148" />
+</COMPONENT>
+
+<COMPONENT type="1510" id="3153" >
+<cdparam x="154" y="195" />
+<sizeparam width="172" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="for loop" value="for(i=counter2;i&gt;0;i = i-1)" />
+<TGConnectingPoint num="0" id="3150" />
+<TGConnectingPoint num="1" id="3151" />
+<TGConnectingPoint num="2" id="3152" />
+<extraparam>
+<Data init="i=counter2" condition="i&gt;0" increment="i = i-1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1507" id="3155" >
+<cdparam x="230" y="371" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3154" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="3166" >
+<cdparam x="364" y="256" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMACycle_SD2" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="3156" />
+<TGConnectingPoint num="1" id="3157" />
+<TGConnectingPoint num="2" id="3158" />
+<TGConnectingPoint num="3" id="3159" />
+<TGConnectingPoint num="4" id="3160" />
+<TGConnectingPoint num="5" id="3161" />
+<TGConnectingPoint num="6" id="3162" />
+<TGConnectingPoint num="7" id="3163" />
+<TGConnectingPoint num="8" id="3164" />
+<TGConnectingPoint num="9" id="3165" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="3177" >
+<cdparam x="178" y="296" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="TerminateDMA_SD2" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="3167" />
+<TGConnectingPoint num="1" id="3168" />
+<TGConnectingPoint num="2" id="3169" />
+<TGConnectingPoint num="3" id="3170" />
+<TGConnectingPoint num="4" id="3171" />
+<TGConnectingPoint num="5" id="3172" />
+<TGConnectingPoint num="6" id="3173" />
+<TGConnectingPoint num="7" id="3174" />
+<TGConnectingPoint num="8" id="3175" />
+<TGConnectingPoint num="9" id="3176" />
+</COMPONENT>
+
+<COMPONENT type="1505" id="3188" >
+<cdparam x="178" y="103" />
+<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="ConfigureDMA_SD2" value="Reference to a SD" />
+<TGConnectingPoint num="0" id="3178" />
+<TGConnectingPoint num="1" id="3179" />
+<TGConnectingPoint num="2" id="3180" />
+<TGConnectingPoint num="3" id="3181" />
+<TGConnectingPoint num="4" id="3182" />
+<TGConnectingPoint num="5" id="3183" />
+<TGConnectingPoint num="6" id="3184" />
+<TGConnectingPoint num="7" id="3185" />
+<TGConnectingPoint num="8" id="3186" />
+<TGConnectingPoint num="9" id="3187" />
+</COMPONENT>
+
+<COMPONENT type="1506" id="3190" >
+<cdparam x="233" y="39" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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" />
+<TGConnectingPoint num="0" id="3189" />
+</COMPONENT>
+
+<CONNECTOR type="1501" id="3192" >
+<cdparam x="322" y="209" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="326" y="209" id="3151" />
+<P2  x="426" y="251" id="3156" />
+<Point x="426" y="209" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3191" >
+<father id="3192" num="0" />
+<cdparam x="426" y="209" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1501" id="3193" >
+<cdparam x="12" y="432" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="426" y="296" id="3157" />
+<P2  x="426" y="339" id="3148" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3194" >
+<cdparam x="58" y="331" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="240" y="220" id="3152" />
+<P2  x="240" y="291" id="3167" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3195" >
+<cdparam x="240" y="336" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="240" y="336" id="3168" />
+<P2  x="240" y="366" id="3154" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3196" >
+<cdparam x="240" y="143" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="240" y="143" id="3179" />
+<P2  x="240" y="190" id="3150" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="1501" id="3197" >
+<cdparam x="238" y="35" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="240" y="59" id="3189" />
+<P2  x="240" y="98" id="3178" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</CommunicationPatternDiagramPanel>
+
+<TMLSDPanel name="ConfigureDMA_SD1" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1521" id="3247" >
+<cdparam x="386" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_1" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="3198" />
+<TGConnectingPoint num="1" id="3199" />
+<TGConnectingPoint num="2" id="3200" />
+<TGConnectingPoint num="3" id="3201" />
+<TGConnectingPoint num="4" id="3202" />
+<TGConnectingPoint num="5" id="3203" />
+<TGConnectingPoint num="6" id="3204" />
+<TGConnectingPoint num="7" id="3205" />
+<TGConnectingPoint num="8" id="3206" />
+<TGConnectingPoint num="9" id="3207" />
+<TGConnectingPoint num="10" id="3208" />
+<TGConnectingPoint num="11" id="3209" />
+<TGConnectingPoint num="12" id="3210" />
+<TGConnectingPoint num="13" id="3211" />
+<TGConnectingPoint num="14" id="3212" />
+<TGConnectingPoint num="15" id="3213" />
+<TGConnectingPoint num="16" id="3214" />
+<TGConnectingPoint num="17" id="3215" />
+<TGConnectingPoint num="18" id="3216" />
+<TGConnectingPoint num="19" id="3217" />
+<TGConnectingPoint num="20" id="3218" />
+<TGConnectingPoint num="21" id="3219" />
+<TGConnectingPoint num="22" id="3220" />
+<TGConnectingPoint num="23" id="3221" />
+<TGConnectingPoint num="24" id="3222" />
+<TGConnectingPoint num="25" id="3223" />
+<TGConnectingPoint num="26" id="3224" />
+<TGConnectingPoint num="27" id="3225" />
+<TGConnectingPoint num="28" id="3226" />
+<TGConnectingPoint num="29" id="3227" />
+<TGConnectingPoint num="30" id="3228" />
+<TGConnectingPoint num="31" id="3229" />
+<TGConnectingPoint num="32" id="3230" />
+<TGConnectingPoint num="33" id="3231" />
+<TGConnectingPoint num="34" id="3232" />
+<TGConnectingPoint num="35" id="3233" />
+<TGConnectingPoint num="36" id="3234" />
+<TGConnectingPoint num="37" id="3235" />
+<TGConnectingPoint num="38" id="3236" />
+<TGConnectingPoint num="39" id="3237" />
+<TGConnectingPoint num="40" id="3238" />
+<TGConnectingPoint num="41" id="3239" />
+<TGConnectingPoint num="42" id="3240" />
+<TGConnectingPoint num="43" id="3241" />
+<TGConnectingPoint num="44" id="3242" />
+<TGConnectingPoint num="45" id="3243" />
+<TGConnectingPoint num="46" id="3244" />
+<TGConnectingPoint num="47" id="3245" />
+<TGConnectingPoint num="48" id="3246" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="3306" >
+<cdparam x="611" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMA_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="3257" />
+<TGConnectingPoint num="1" id="3258" />
+<TGConnectingPoint num="2" id="3259" />
+<TGConnectingPoint num="3" id="3260" />
+<TGConnectingPoint num="4" id="3261" />
+<TGConnectingPoint num="5" id="3262" />
+<TGConnectingPoint num="6" id="3263" />
+<TGConnectingPoint num="7" id="3264" />
+<TGConnectingPoint num="8" id="3265" />
+<TGConnectingPoint num="9" id="3266" />
+<TGConnectingPoint num="10" id="3267" />
+<TGConnectingPoint num="11" id="3268" />
+<TGConnectingPoint num="12" id="3269" />
+<TGConnectingPoint num="13" id="3270" />
+<TGConnectingPoint num="14" id="3271" />
+<TGConnectingPoint num="15" id="3272" />
+<TGConnectingPoint num="16" id="3273" />
+<TGConnectingPoint num="17" id="3274" />
+<TGConnectingPoint num="18" id="3275" />
+<TGConnectingPoint num="19" id="3276" />
+<TGConnectingPoint num="20" id="3277" />
+<TGConnectingPoint num="21" id="3278" />
+<TGConnectingPoint num="22" id="3279" />
+<TGConnectingPoint num="23" id="3280" />
+<TGConnectingPoint num="24" id="3281" />
+<TGConnectingPoint num="25" id="3282" />
+<TGConnectingPoint num="26" id="3283" />
+<TGConnectingPoint num="27" id="3284" />
+<TGConnectingPoint num="28" id="3285" />
+<TGConnectingPoint num="29" id="3286" />
+<TGConnectingPoint num="30" id="3287" />
+<TGConnectingPoint num="31" id="3288" />
+<TGConnectingPoint num="32" id="3289" />
+<TGConnectingPoint num="33" id="3290" />
+<TGConnectingPoint num="34" id="3291" />
+<TGConnectingPoint num="35" id="3292" />
+<TGConnectingPoint num="36" id="3293" />
+<TGConnectingPoint num="37" id="3294" />
+<TGConnectingPoint num="38" id="3295" />
+<TGConnectingPoint num="39" id="3296" />
+<TGConnectingPoint num="40" id="3297" />
+<TGConnectingPoint num="41" id="3298" />
+<TGConnectingPoint num="42" id="3299" />
+<TGConnectingPoint num="43" id="3300" />
+<TGConnectingPoint num="44" id="3301" />
+<TGConnectingPoint num="45" id="3302" />
+<TGConnectingPoint num="46" id="3303" />
+<TGConnectingPoint num="47" id="3304" />
+<TGConnectingPoint num="48" id="3305" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1524" id="3256" >
+<father id="3306" num="0" />
+<cdparam x="616" y="151" />
+<sizeparam width="194" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" />
+<infoparam name="action state" value="counter1 = bytesToTransfer1" />
+<TGConnectingPoint num="0" id="3248" />
+<TGConnectingPoint num="1" id="3249" />
+<TGConnectingPoint num="2" id="3250" />
+<TGConnectingPoint num="3" id="3251" />
+<TGConnectingPoint num="4" id="3252" />
+<TGConnectingPoint num="5" id="3253" />
+<TGConnectingPoint num="6" id="3254" />
+<TGConnectingPoint num="7" id="3255" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1522" id="3356" >
+<cdparam x="167" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="3307" />
+<TGConnectingPoint num="1" id="3308" />
+<TGConnectingPoint num="2" id="3309" />
+<TGConnectingPoint num="3" id="3310" />
+<TGConnectingPoint num="4" id="3311" />
+<TGConnectingPoint num="5" id="3312" />
+<TGConnectingPoint num="6" id="3313" />
+<TGConnectingPoint num="7" id="3314" />
+<TGConnectingPoint num="8" id="3315" />
+<TGConnectingPoint num="9" id="3316" />
+<TGConnectingPoint num="10" id="3317" />
+<TGConnectingPoint num="11" id="3318" />
+<TGConnectingPoint num="12" id="3319" />
+<TGConnectingPoint num="13" id="3320" />
+<TGConnectingPoint num="14" id="3321" />
+<TGConnectingPoint num="15" id="3322" />
+<TGConnectingPoint num="16" id="3323" />
+<TGConnectingPoint num="17" id="3324" />
+<TGConnectingPoint num="18" id="3325" />
+<TGConnectingPoint num="19" id="3326" />
+<TGConnectingPoint num="20" id="3327" />
+<TGConnectingPoint num="21" id="3328" />
+<TGConnectingPoint num="22" id="3329" />
+<TGConnectingPoint num="23" id="3330" />
+<TGConnectingPoint num="24" id="3331" />
+<TGConnectingPoint num="25" id="3332" />
+<TGConnectingPoint num="26" id="3333" />
+<TGConnectingPoint num="27" id="3334" />
+<TGConnectingPoint num="28" id="3335" />
+<TGConnectingPoint num="29" id="3336" />
+<TGConnectingPoint num="30" id="3337" />
+<TGConnectingPoint num="31" id="3338" />
+<TGConnectingPoint num="32" id="3339" />
+<TGConnectingPoint num="33" id="3340" />
+<TGConnectingPoint num="34" id="3341" />
+<TGConnectingPoint num="35" id="3342" />
+<TGConnectingPoint num="36" id="3343" />
+<TGConnectingPoint num="37" id="3344" />
+<TGConnectingPoint num="38" id="3345" />
+<TGConnectingPoint num="39" id="3346" />
+<TGConnectingPoint num="40" id="3347" />
+<TGConnectingPoint num="41" id="3348" />
+<TGConnectingPoint num="42" id="3349" />
+<TGConnectingPoint num="43" id="3350" />
+<TGConnectingPoint num="44" id="3351" />
+<TGConnectingPoint num="45" id="3352" />
+<TGConnectingPoint num="46" id="3353" />
+<TGConnectingPoint num="47" id="3354" />
+<TGConnectingPoint num="48" id="3355" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="1523" id="3357" >
+<cdparam x="391" y="166" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferRequest" value="TransferRequest(counter1, sourceAddress1, destinationAddress1)" />
+<P1  x="391" y="126" id="3204" />
+<P2  x="616" y="126" id="3263" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="counter1" />
+<Param index="1" id="sourceAddress1" />
+<Param index="2" id="destinationAddress1" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="3358" >
+<cdparam x="172" y="136" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferRequest" value="TransferRequest(counter1, sourceAddress1, destinationAddress1)" />
+<P1  x="172" y="96" id="3310" />
+<P2  x="391" y="96" id="3201" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="counter1" />
+<Param index="1" id="sourceAddress1" />
+<Param index="2" id="destinationAddress1" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+<TMLSDPanel name="DMACycle_SD1" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1520" id="3408" >
+<cdparam x="1072" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Dst_Storage_Instance_1" value="Storage instance name" />
+<TGConnectingPoint num="0" id="3359" />
+<TGConnectingPoint num="1" id="3360" />
+<TGConnectingPoint num="2" id="3361" />
+<TGConnectingPoint num="3" id="3362" />
+<TGConnectingPoint num="4" id="3363" />
+<TGConnectingPoint num="5" id="3364" />
+<TGConnectingPoint num="6" id="3365" />
+<TGConnectingPoint num="7" id="3366" />
+<TGConnectingPoint num="8" id="3367" />
+<TGConnectingPoint num="9" id="3368" />
+<TGConnectingPoint num="10" id="3369" />
+<TGConnectingPoint num="11" id="3370" />
+<TGConnectingPoint num="12" id="3371" />
+<TGConnectingPoint num="13" id="3372" />
+<TGConnectingPoint num="14" id="3373" />
+<TGConnectingPoint num="15" id="3374" />
+<TGConnectingPoint num="16" id="3375" />
+<TGConnectingPoint num="17" id="3376" />
+<TGConnectingPoint num="18" id="3377" />
+<TGConnectingPoint num="19" id="3378" />
+<TGConnectingPoint num="20" id="3379" />
+<TGConnectingPoint num="21" id="3380" />
+<TGConnectingPoint num="22" id="3381" />
+<TGConnectingPoint num="23" id="3382" />
+<TGConnectingPoint num="24" id="3383" />
+<TGConnectingPoint num="25" id="3384" />
+<TGConnectingPoint num="26" id="3385" />
+<TGConnectingPoint num="27" id="3386" />
+<TGConnectingPoint num="28" id="3387" />
+<TGConnectingPoint num="29" id="3388" />
+<TGConnectingPoint num="30" id="3389" />
+<TGConnectingPoint num="31" id="3390" />
+<TGConnectingPoint num="32" id="3391" />
+<TGConnectingPoint num="33" id="3392" />
+<TGConnectingPoint num="34" id="3393" />
+<TGConnectingPoint num="35" id="3394" />
+<TGConnectingPoint num="36" id="3395" />
+<TGConnectingPoint num="37" id="3396" />
+<TGConnectingPoint num="38" id="3397" />
+<TGConnectingPoint num="39" id="3398" />
+<TGConnectingPoint num="40" id="3399" />
+<TGConnectingPoint num="41" id="3400" />
+<TGConnectingPoint num="42" id="3401" />
+<TGConnectingPoint num="43" id="3402" />
+<TGConnectingPoint num="44" id="3403" />
+<TGConnectingPoint num="45" id="3404" />
+<TGConnectingPoint num="46" id="3405" />
+<TGConnectingPoint num="47" id="3406" />
+<TGConnectingPoint num="48" id="3407" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="3458" >
+<cdparam x="861" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_3" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="3409" />
+<TGConnectingPoint num="1" id="3410" />
+<TGConnectingPoint num="2" id="3411" />
+<TGConnectingPoint num="3" id="3412" />
+<TGConnectingPoint num="4" id="3413" />
+<TGConnectingPoint num="5" id="3414" />
+<TGConnectingPoint num="6" id="3415" />
+<TGConnectingPoint num="7" id="3416" />
+<TGConnectingPoint num="8" id="3417" />
+<TGConnectingPoint num="9" id="3418" />
+<TGConnectingPoint num="10" id="3419" />
+<TGConnectingPoint num="11" id="3420" />
+<TGConnectingPoint num="12" id="3421" />
+<TGConnectingPoint num="13" id="3422" />
+<TGConnectingPoint num="14" id="3423" />
+<TGConnectingPoint num="15" id="3424" />
+<TGConnectingPoint num="16" id="3425" />
+<TGConnectingPoint num="17" id="3426" />
+<TGConnectingPoint num="18" id="3427" />
+<TGConnectingPoint num="19" id="3428" />
+<TGConnectingPoint num="20" id="3429" />
+<TGConnectingPoint num="21" id="3430" />
+<TGConnectingPoint num="22" id="3431" />
+<TGConnectingPoint num="23" id="3432" />
+<TGConnectingPoint num="24" id="3433" />
+<TGConnectingPoint num="25" id="3434" />
+<TGConnectingPoint num="26" id="3435" />
+<TGConnectingPoint num="27" id="3436" />
+<TGConnectingPoint num="28" id="3437" />
+<TGConnectingPoint num="29" id="3438" />
+<TGConnectingPoint num="30" id="3439" />
+<TGConnectingPoint num="31" id="3440" />
+<TGConnectingPoint num="32" id="3441" />
+<TGConnectingPoint num="33" id="3442" />
+<TGConnectingPoint num="34" id="3443" />
+<TGConnectingPoint num="35" id="3444" />
+<TGConnectingPoint num="36" id="3445" />
+<TGConnectingPoint num="37" id="3446" />
+<TGConnectingPoint num="38" id="3447" />
+<TGConnectingPoint num="39" id="3448" />
+<TGConnectingPoint num="40" id="3449" />
+<TGConnectingPoint num="41" id="3450" />
+<TGConnectingPoint num="42" id="3451" />
+<TGConnectingPoint num="43" id="3452" />
+<TGConnectingPoint num="44" id="3453" />
+<TGConnectingPoint num="45" id="3454" />
+<TGConnectingPoint num="46" id="3455" />
+<TGConnectingPoint num="47" id="3456" />
+<TGConnectingPoint num="48" id="3457" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="3508" >
+<cdparam x="392" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_2" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="3459" />
+<TGConnectingPoint num="1" id="3460" />
+<TGConnectingPoint num="2" id="3461" />
+<TGConnectingPoint num="3" id="3462" />
+<TGConnectingPoint num="4" id="3463" />
+<TGConnectingPoint num="5" id="3464" />
+<TGConnectingPoint num="6" id="3465" />
+<TGConnectingPoint num="7" id="3466" />
+<TGConnectingPoint num="8" id="3467" />
+<TGConnectingPoint num="9" id="3468" />
+<TGConnectingPoint num="10" id="3469" />
+<TGConnectingPoint num="11" id="3470" />
+<TGConnectingPoint num="12" id="3471" />
+<TGConnectingPoint num="13" id="3472" />
+<TGConnectingPoint num="14" id="3473" />
+<TGConnectingPoint num="15" id="3474" />
+<TGConnectingPoint num="16" id="3475" />
+<TGConnectingPoint num="17" id="3476" />
+<TGConnectingPoint num="18" id="3477" />
+<TGConnectingPoint num="19" id="3478" />
+<TGConnectingPoint num="20" id="3479" />
+<TGConnectingPoint num="21" id="3480" />
+<TGConnectingPoint num="22" id="3481" />
+<TGConnectingPoint num="23" id="3482" />
+<TGConnectingPoint num="24" id="3483" />
+<TGConnectingPoint num="25" id="3484" />
+<TGConnectingPoint num="26" id="3485" />
+<TGConnectingPoint num="27" id="3486" />
+<TGConnectingPoint num="28" id="3487" />
+<TGConnectingPoint num="29" id="3488" />
+<TGConnectingPoint num="30" id="3489" />
+<TGConnectingPoint num="31" id="3490" />
+<TGConnectingPoint num="32" id="3491" />
+<TGConnectingPoint num="33" id="3492" />
+<TGConnectingPoint num="34" id="3493" />
+<TGConnectingPoint num="35" id="3494" />
+<TGConnectingPoint num="36" id="3495" />
+<TGConnectingPoint num="37" id="3496" />
+<TGConnectingPoint num="38" id="3497" />
+<TGConnectingPoint num="39" id="3498" />
+<TGConnectingPoint num="40" id="3499" />
+<TGConnectingPoint num="41" id="3500" />
+<TGConnectingPoint num="42" id="3501" />
+<TGConnectingPoint num="43" id="3502" />
+<TGConnectingPoint num="44" id="3503" />
+<TGConnectingPoint num="45" id="3504" />
+<TGConnectingPoint num="46" id="3505" />
+<TGConnectingPoint num="47" id="3506" />
+<TGConnectingPoint num="48" id="3507" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1520" id="3558" >
+<cdparam x="643" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Src_Storage_Instance_1" value="Storage instance name" />
+<TGConnectingPoint num="0" id="3509" />
+<TGConnectingPoint num="1" id="3510" />
+<TGConnectingPoint num="2" id="3511" />
+<TGConnectingPoint num="3" id="3512" />
+<TGConnectingPoint num="4" id="3513" />
+<TGConnectingPoint num="5" id="3514" />
+<TGConnectingPoint num="6" id="3515" />
+<TGConnectingPoint num="7" id="3516" />
+<TGConnectingPoint num="8" id="3517" />
+<TGConnectingPoint num="9" id="3518" />
+<TGConnectingPoint num="10" id="3519" />
+<TGConnectingPoint num="11" id="3520" />
+<TGConnectingPoint num="12" id="3521" />
+<TGConnectingPoint num="13" id="3522" />
+<TGConnectingPoint num="14" id="3523" />
+<TGConnectingPoint num="15" id="3524" />
+<TGConnectingPoint num="16" id="3525" />
+<TGConnectingPoint num="17" id="3526" />
+<TGConnectingPoint num="18" id="3527" />
+<TGConnectingPoint num="19" id="3528" />
+<TGConnectingPoint num="20" id="3529" />
+<TGConnectingPoint num="21" id="3530" />
+<TGConnectingPoint num="22" id="3531" />
+<TGConnectingPoint num="23" id="3532" />
+<TGConnectingPoint num="24" id="3533" />
+<TGConnectingPoint num="25" id="3534" />
+<TGConnectingPoint num="26" id="3535" />
+<TGConnectingPoint num="27" id="3536" />
+<TGConnectingPoint num="28" id="3537" />
+<TGConnectingPoint num="29" id="3538" />
+<TGConnectingPoint num="30" id="3539" />
+<TGConnectingPoint num="31" id="3540" />
+<TGConnectingPoint num="32" id="3541" />
+<TGConnectingPoint num="33" id="3542" />
+<TGConnectingPoint num="34" id="3543" />
+<TGConnectingPoint num="35" id="3544" />
+<TGConnectingPoint num="36" id="3545" />
+<TGConnectingPoint num="37" id="3546" />
+<TGConnectingPoint num="38" id="3547" />
+<TGConnectingPoint num="39" id="3548" />
+<TGConnectingPoint num="40" id="3549" />
+<TGConnectingPoint num="41" id="3550" />
+<TGConnectingPoint num="42" id="3551" />
+<TGConnectingPoint num="43" id="3552" />
+<TGConnectingPoint num="44" id="3553" />
+<TGConnectingPoint num="45" id="3554" />
+<TGConnectingPoint num="46" id="3555" />
+<TGConnectingPoint num="47" id="3556" />
+<TGConnectingPoint num="48" id="3557" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="3617" >
+<cdparam x="161" y="56" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMA_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="3568" />
+<TGConnectingPoint num="1" id="3569" />
+<TGConnectingPoint num="2" id="3570" />
+<TGConnectingPoint num="3" id="3571" />
+<TGConnectingPoint num="4" id="3572" />
+<TGConnectingPoint num="5" id="3573" />
+<TGConnectingPoint num="6" id="3574" />
+<TGConnectingPoint num="7" id="3575" />
+<TGConnectingPoint num="8" id="3576" />
+<TGConnectingPoint num="9" id="3577" />
+<TGConnectingPoint num="10" id="3578" />
+<TGConnectingPoint num="11" id="3579" />
+<TGConnectingPoint num="12" id="3580" />
+<TGConnectingPoint num="13" id="3581" />
+<TGConnectingPoint num="14" id="3582" />
+<TGConnectingPoint num="15" id="3583" />
+<TGConnectingPoint num="16" id="3584" />
+<TGConnectingPoint num="17" id="3585" />
+<TGConnectingPoint num="18" id="3586" />
+<TGConnectingPoint num="19" id="3587" />
+<TGConnectingPoint num="20" id="3588" />
+<TGConnectingPoint num="21" id="3589" />
+<TGConnectingPoint num="22" id="3590" />
+<TGConnectingPoint num="23" id="3591" />
+<TGConnectingPoint num="24" id="3592" />
+<TGConnectingPoint num="25" id="3593" />
+<TGConnectingPoint num="26" id="3594" />
+<TGConnectingPoint num="27" id="3595" />
+<TGConnectingPoint num="28" id="3596" />
+<TGConnectingPoint num="29" id="3597" />
+<TGConnectingPoint num="30" id="3598" />
+<TGConnectingPoint num="31" id="3599" />
+<TGConnectingPoint num="32" id="3600" />
+<TGConnectingPoint num="33" id="3601" />
+<TGConnectingPoint num="34" id="3602" />
+<TGConnectingPoint num="35" id="3603" />
+<TGConnectingPoint num="36" id="3604" />
+<TGConnectingPoint num="37" id="3605" />
+<TGConnectingPoint num="38" id="3606" />
+<TGConnectingPoint num="39" id="3607" />
+<TGConnectingPoint num="40" id="3608" />
+<TGConnectingPoint num="41" id="3609" />
+<TGConnectingPoint num="42" id="3610" />
+<TGConnectingPoint num="43" id="3611" />
+<TGConnectingPoint num="44" id="3612" />
+<TGConnectingPoint num="45" id="3613" />
+<TGConnectingPoint num="46" id="3614" />
+<TGConnectingPoint num="47" id="3615" />
+<TGConnectingPoint num="48" id="3616" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1524" id="3567" >
+<father id="3617" num="0" />
+<cdparam x="166" y="252" />
+<sizeparam width="146" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" />
+<infoparam name="action state" value="counter = counter - 1" />
+<TGConnectingPoint num="0" id="3559" />
+<TGConnectingPoint num="1" id="3560" />
+<TGConnectingPoint num="2" id="3561" />
+<TGConnectingPoint num="3" id="3562" />
+<TGConnectingPoint num="4" id="3563" />
+<TGConnectingPoint num="5" id="3564" />
+<TGConnectingPoint num="6" id="3565" />
+<TGConnectingPoint num="7" id="3566" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1523" id="3618" >
+<cdparam x="866" y="246" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress1, 1)" />
+<P1  x="866" y="266" id="3429" />
+<P2  x="1077" y="266" id="3379" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress1" />
+<Param index="1" id="1" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="3619" >
+<cdparam x="166" y="216" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress1, 1)" />
+<P1  x="166" y="236" id="3585" />
+<P2  x="866" y="236" id="3426" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress1" />
+<Param index="1" id="1" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="3620" >
+<cdparam x="397" y="126" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress1, 1)" />
+<P1  x="397" y="146" id="3467" />
+<P2  x="648" y="146" id="3517" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress1" />
+<Param index="1" id="1" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="3621" >
+<cdparam x="183" y="95" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress1, 1)" />
+<P1  x="166" y="116" id="3573" />
+<P2  x="397" y="116" id="3464" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress1" />
+<Param index="1" id="1" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+<TMLSDPanel name="TerminateDMA_SD1" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="301" id="3638" >
+<cdparam x="716" y="60" />
+<sizeparam width="344" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="The transfer instance is different w.r.t. the
+transfer instance of the ConfigureTransfer
+sequence diagram.
+" />
+<TGConnectingPoint num="0" id="3622" />
+<TGConnectingPoint num="1" id="3623" />
+<TGConnectingPoint num="2" id="3624" />
+<TGConnectingPoint num="3" id="3625" />
+<TGConnectingPoint num="4" id="3626" />
+<TGConnectingPoint num="5" id="3627" />
+<TGConnectingPoint num="6" id="3628" />
+<TGConnectingPoint num="7" id="3629" />
+<TGConnectingPoint num="8" id="3630" />
+<TGConnectingPoint num="9" id="3631" />
+<TGConnectingPoint num="10" id="3632" />
+<TGConnectingPoint num="11" id="3633" />
+<TGConnectingPoint num="12" id="3634" />
+<TGConnectingPoint num="13" id="3635" />
+<TGConnectingPoint num="14" id="3636" />
+<TGConnectingPoint num="15" id="3637" />
+<extraparam>
+<Line value="The transfer instance is different w.r.t. the" />
+<Line value="transfer instance of the ConfigureTransfer" />
+<Line value="sequence diagram." />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="3688" >
+<cdparam x="332" y="52" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_4" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="3639" />
+<TGConnectingPoint num="1" id="3640" />
+<TGConnectingPoint num="2" id="3641" />
+<TGConnectingPoint num="3" id="3642" />
+<TGConnectingPoint num="4" id="3643" />
+<TGConnectingPoint num="5" id="3644" />
+<TGConnectingPoint num="6" id="3645" />
+<TGConnectingPoint num="7" id="3646" />
+<TGConnectingPoint num="8" id="3647" />
+<TGConnectingPoint num="9" id="3648" />
+<TGConnectingPoint num="10" id="3649" />
+<TGConnectingPoint num="11" id="3650" />
+<TGConnectingPoint num="12" id="3651" />
+<TGConnectingPoint num="13" id="3652" />
+<TGConnectingPoint num="14" id="3653" />
+<TGConnectingPoint num="15" id="3654" />
+<TGConnectingPoint num="16" id="3655" />
+<TGConnectingPoint num="17" id="3656" />
+<TGConnectingPoint num="18" id="3657" />
+<TGConnectingPoint num="19" id="3658" />
+<TGConnectingPoint num="20" id="3659" />
+<TGConnectingPoint num="21" id="3660" />
+<TGConnectingPoint num="22" id="3661" />
+<TGConnectingPoint num="23" id="3662" />
+<TGConnectingPoint num="24" id="3663" />
+<TGConnectingPoint num="25" id="3664" />
+<TGConnectingPoint num="26" id="3665" />
+<TGConnectingPoint num="27" id="3666" />
+<TGConnectingPoint num="28" id="3667" />
+<TGConnectingPoint num="29" id="3668" />
+<TGConnectingPoint num="30" id="3669" />
+<TGConnectingPoint num="31" id="3670" />
+<TGConnectingPoint num="32" id="3671" />
+<TGConnectingPoint num="33" id="3672" />
+<TGConnectingPoint num="34" id="3673" />
+<TGConnectingPoint num="35" id="3674" />
+<TGConnectingPoint num="36" id="3675" />
+<TGConnectingPoint num="37" id="3676" />
+<TGConnectingPoint num="38" id="3677" />
+<TGConnectingPoint num="39" id="3678" />
+<TGConnectingPoint num="40" id="3679" />
+<TGConnectingPoint num="41" id="3680" />
+<TGConnectingPoint num="42" id="3681" />
+<TGConnectingPoint num="43" id="3682" />
+<TGConnectingPoint num="44" id="3683" />
+<TGConnectingPoint num="45" id="3684" />
+<TGConnectingPoint num="46" id="3685" />
+<TGConnectingPoint num="47" id="3686" />
+<TGConnectingPoint num="48" id="3687" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="3738" >
+<cdparam x="557" y="52" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMA_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="3689" />
+<TGConnectingPoint num="1" id="3690" />
+<TGConnectingPoint num="2" id="3691" />
+<TGConnectingPoint num="3" id="3692" />
+<TGConnectingPoint num="4" id="3693" />
+<TGConnectingPoint num="5" id="3694" />
+<TGConnectingPoint num="6" id="3695" />
+<TGConnectingPoint num="7" id="3696" />
+<TGConnectingPoint num="8" id="3697" />
+<TGConnectingPoint num="9" id="3698" />
+<TGConnectingPoint num="10" id="3699" />
+<TGConnectingPoint num="11" id="3700" />
+<TGConnectingPoint num="12" id="3701" />
+<TGConnectingPoint num="13" id="3702" />
+<TGConnectingPoint num="14" id="3703" />
+<TGConnectingPoint num="15" id="3704" />
+<TGConnectingPoint num="16" id="3705" />
+<TGConnectingPoint num="17" id="3706" />
+<TGConnectingPoint num="18" id="3707" />
+<TGConnectingPoint num="19" id="3708" />
+<TGConnectingPoint num="20" id="3709" />
+<TGConnectingPoint num="21" id="3710" />
+<TGConnectingPoint num="22" id="3711" />
+<TGConnectingPoint num="23" id="3712" />
+<TGConnectingPoint num="24" id="3713" />
+<TGConnectingPoint num="25" id="3714" />
+<TGConnectingPoint num="26" id="3715" />
+<TGConnectingPoint num="27" id="3716" />
+<TGConnectingPoint num="28" id="3717" />
+<TGConnectingPoint num="29" id="3718" />
+<TGConnectingPoint num="30" id="3719" />
+<TGConnectingPoint num="31" id="3720" />
+<TGConnectingPoint num="32" id="3721" />
+<TGConnectingPoint num="33" id="3722" />
+<TGConnectingPoint num="34" id="3723" />
+<TGConnectingPoint num="35" id="3724" />
+<TGConnectingPoint num="36" id="3725" />
+<TGConnectingPoint num="37" id="3726" />
+<TGConnectingPoint num="38" id="3727" />
+<TGConnectingPoint num="39" id="3728" />
+<TGConnectingPoint num="40" id="3729" />
+<TGConnectingPoint num="41" id="3730" />
+<TGConnectingPoint num="42" id="3731" />
+<TGConnectingPoint num="43" id="3732" />
+<TGConnectingPoint num="44" id="3733" />
+<TGConnectingPoint num="45" id="3734" />
+<TGConnectingPoint num="46" id="3735" />
+<TGConnectingPoint num="47" id="3736" />
+<TGConnectingPoint num="48" id="3737" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="3788" >
+<cdparam x="113" y="52" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU_Controller_1" value="Controller instance name" />
+<TGConnectingPoint num="0" id="3739" />
+<TGConnectingPoint num="1" id="3740" />
+<TGConnectingPoint num="2" id="3741" />
+<TGConnectingPoint num="3" id="3742" />
+<TGConnectingPoint num="4" id="3743" />
+<TGConnectingPoint num="5" id="3744" />
+<TGConnectingPoint num="6" id="3745" />
+<TGConnectingPoint num="7" id="3746" />
+<TGConnectingPoint num="8" id="3747" />
+<TGConnectingPoint num="9" id="3748" />
+<TGConnectingPoint num="10" id="3749" />
+<TGConnectingPoint num="11" id="3750" />
+<TGConnectingPoint num="12" id="3751" />
+<TGConnectingPoint num="13" id="3752" />
+<TGConnectingPoint num="14" id="3753" />
+<TGConnectingPoint num="15" id="3754" />
+<TGConnectingPoint num="16" id="3755" />
+<TGConnectingPoint num="17" id="3756" />
+<TGConnectingPoint num="18" id="3757" />
+<TGConnectingPoint num="19" id="3758" />
+<TGConnectingPoint num="20" id="3759" />
+<TGConnectingPoint num="21" id="3760" />
+<TGConnectingPoint num="22" id="3761" />
+<TGConnectingPoint num="23" id="3762" />
+<TGConnectingPoint num="24" id="3763" />
+<TGConnectingPoint num="25" id="3764" />
+<TGConnectingPoint num="26" id="3765" />
+<TGConnectingPoint num="27" id="3766" />
+<TGConnectingPoint num="28" id="3767" />
+<TGConnectingPoint num="29" id="3768" />
+<TGConnectingPoint num="30" id="3769" />
+<TGConnectingPoint num="31" id="3770" />
+<TGConnectingPoint num="32" id="3771" />
+<TGConnectingPoint num="33" id="3772" />
+<TGConnectingPoint num="34" id="3773" />
+<TGConnectingPoint num="35" id="3774" />
+<TGConnectingPoint num="36" id="3775" />
+<TGConnectingPoint num="37" id="3776" />
+<TGConnectingPoint num="38" id="3777" />
+<TGConnectingPoint num="39" id="3778" />
+<TGConnectingPoint num="40" id="3779" />
+<TGConnectingPoint num="41" id="3780" />
+<TGConnectingPoint num="42" id="3781" />
+<TGConnectingPoint num="43" id="3782" />
+<TGConnectingPoint num="44" id="3783" />
+<TGConnectingPoint num="45" id="3784" />
+<TGConnectingPoint num="46" id="3785" />
+<TGConnectingPoint num="47" id="3786" />
+<TGConnectingPoint num="48" id="3787" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter1" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="1523" id="3789" >
+<cdparam x="337" y="112" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferTerminated" value="TransferTerminated()" />
+<P1  x="337" y="112" id="3644" />
+<P2  x="118" y="112" id="3744" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="3790" >
+<cdparam x="562" y="82" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferTerminated" value="TransferTerminated()" />
+<P1  x="562" y="82" id="3691" />
+<P2  x="337" y="82" id="3641" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+<TMLSDPanel name="ConfigureDMA_SD2" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1521" id="3840" >
+<cdparam x="384" y="54" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_5" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="3791" />
+<TGConnectingPoint num="1" id="3792" />
+<TGConnectingPoint num="2" id="3793" />
+<TGConnectingPoint num="3" id="3794" />
+<TGConnectingPoint num="4" id="3795" />
+<TGConnectingPoint num="5" id="3796" />
+<TGConnectingPoint num="6" id="3797" />
+<TGConnectingPoint num="7" id="3798" />
+<TGConnectingPoint num="8" id="3799" />
+<TGConnectingPoint num="9" id="3800" />
+<TGConnectingPoint num="10" id="3801" />
+<TGConnectingPoint num="11" id="3802" />
+<TGConnectingPoint num="12" id="3803" />
+<TGConnectingPoint num="13" id="3804" />
+<TGConnectingPoint num="14" id="3805" />
+<TGConnectingPoint num="15" id="3806" />
+<TGConnectingPoint num="16" id="3807" />
+<TGConnectingPoint num="17" id="3808" />
+<TGConnectingPoint num="18" id="3809" />
+<TGConnectingPoint num="19" id="3810" />
+<TGConnectingPoint num="20" id="3811" />
+<TGConnectingPoint num="21" id="3812" />
+<TGConnectingPoint num="22" id="3813" />
+<TGConnectingPoint num="23" id="3814" />
+<TGConnectingPoint num="24" id="3815" />
+<TGConnectingPoint num="25" id="3816" />
+<TGConnectingPoint num="26" id="3817" />
+<TGConnectingPoint num="27" id="3818" />
+<TGConnectingPoint num="28" id="3819" />
+<TGConnectingPoint num="29" id="3820" />
+<TGConnectingPoint num="30" id="3821" />
+<TGConnectingPoint num="31" id="3822" />
+<TGConnectingPoint num="32" id="3823" />
+<TGConnectingPoint num="33" id="3824" />
+<TGConnectingPoint num="34" id="3825" />
+<TGConnectingPoint num="35" id="3826" />
+<TGConnectingPoint num="36" id="3827" />
+<TGConnectingPoint num="37" id="3828" />
+<TGConnectingPoint num="38" id="3829" />
+<TGConnectingPoint num="39" id="3830" />
+<TGConnectingPoint num="40" id="3831" />
+<TGConnectingPoint num="41" id="3832" />
+<TGConnectingPoint num="42" id="3833" />
+<TGConnectingPoint num="43" id="3834" />
+<TGConnectingPoint num="44" id="3835" />
+<TGConnectingPoint num="45" id="3836" />
+<TGConnectingPoint num="46" id="3837" />
+<TGConnectingPoint num="47" id="3838" />
+<TGConnectingPoint num="48" id="3839" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="3890" >
+<cdparam x="609" y="54" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMA_Controller_2" value="Controller instance name" />
+<TGConnectingPoint num="0" id="3841" />
+<TGConnectingPoint num="1" id="3842" />
+<TGConnectingPoint num="2" id="3843" />
+<TGConnectingPoint num="3" id="3844" />
+<TGConnectingPoint num="4" id="3845" />
+<TGConnectingPoint num="5" id="3846" />
+<TGConnectingPoint num="6" id="3847" />
+<TGConnectingPoint num="7" id="3848" />
+<TGConnectingPoint num="8" id="3849" />
+<TGConnectingPoint num="9" id="3850" />
+<TGConnectingPoint num="10" id="3851" />
+<TGConnectingPoint num="11" id="3852" />
+<TGConnectingPoint num="12" id="3853" />
+<TGConnectingPoint num="13" id="3854" />
+<TGConnectingPoint num="14" id="3855" />
+<TGConnectingPoint num="15" id="3856" />
+<TGConnectingPoint num="16" id="3857" />
+<TGConnectingPoint num="17" id="3858" />
+<TGConnectingPoint num="18" id="3859" />
+<TGConnectingPoint num="19" id="3860" />
+<TGConnectingPoint num="20" id="3861" />
+<TGConnectingPoint num="21" id="3862" />
+<TGConnectingPoint num="22" id="3863" />
+<TGConnectingPoint num="23" id="3864" />
+<TGConnectingPoint num="24" id="3865" />
+<TGConnectingPoint num="25" id="3866" />
+<TGConnectingPoint num="26" id="3867" />
+<TGConnectingPoint num="27" id="3868" />
+<TGConnectingPoint num="28" id="3869" />
+<TGConnectingPoint num="29" id="3870" />
+<TGConnectingPoint num="30" id="3871" />
+<TGConnectingPoint num="31" id="3872" />
+<TGConnectingPoint num="32" id="3873" />
+<TGConnectingPoint num="33" id="3874" />
+<TGConnectingPoint num="34" id="3875" />
+<TGConnectingPoint num="35" id="3876" />
+<TGConnectingPoint num="36" id="3877" />
+<TGConnectingPoint num="37" id="3878" />
+<TGConnectingPoint num="38" id="3879" />
+<TGConnectingPoint num="39" id="3880" />
+<TGConnectingPoint num="40" id="3881" />
+<TGConnectingPoint num="41" id="3882" />
+<TGConnectingPoint num="42" id="3883" />
+<TGConnectingPoint num="43" id="3884" />
+<TGConnectingPoint num="44" id="3885" />
+<TGConnectingPoint num="45" id="3886" />
+<TGConnectingPoint num="46" id="3887" />
+<TGConnectingPoint num="47" id="3888" />
+<TGConnectingPoint num="48" id="3889" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="3940" >
+<cdparam x="165" y="54" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU_Controller_2" value="Controller instance name" />
+<TGConnectingPoint num="0" id="3891" />
+<TGConnectingPoint num="1" id="3892" />
+<TGConnectingPoint num="2" id="3893" />
+<TGConnectingPoint num="3" id="3894" />
+<TGConnectingPoint num="4" id="3895" />
+<TGConnectingPoint num="5" id="3896" />
+<TGConnectingPoint num="6" id="3897" />
+<TGConnectingPoint num="7" id="3898" />
+<TGConnectingPoint num="8" id="3899" />
+<TGConnectingPoint num="9" id="3900" />
+<TGConnectingPoint num="10" id="3901" />
+<TGConnectingPoint num="11" id="3902" />
+<TGConnectingPoint num="12" id="3903" />
+<TGConnectingPoint num="13" id="3904" />
+<TGConnectingPoint num="14" id="3905" />
+<TGConnectingPoint num="15" id="3906" />
+<TGConnectingPoint num="16" id="3907" />
+<TGConnectingPoint num="17" id="3908" />
+<TGConnectingPoint num="18" id="3909" />
+<TGConnectingPoint num="19" id="3910" />
+<TGConnectingPoint num="20" id="3911" />
+<TGConnectingPoint num="21" id="3912" />
+<TGConnectingPoint num="22" id="3913" />
+<TGConnectingPoint num="23" id="3914" />
+<TGConnectingPoint num="24" id="3915" />
+<TGConnectingPoint num="25" id="3916" />
+<TGConnectingPoint num="26" id="3917" />
+<TGConnectingPoint num="27" id="3918" />
+<TGConnectingPoint num="28" id="3919" />
+<TGConnectingPoint num="29" id="3920" />
+<TGConnectingPoint num="30" id="3921" />
+<TGConnectingPoint num="31" id="3922" />
+<TGConnectingPoint num="32" id="3923" />
+<TGConnectingPoint num="33" id="3924" />
+<TGConnectingPoint num="34" id="3925" />
+<TGConnectingPoint num="35" id="3926" />
+<TGConnectingPoint num="36" id="3927" />
+<TGConnectingPoint num="37" id="3928" />
+<TGConnectingPoint num="38" id="3929" />
+<TGConnectingPoint num="39" id="3930" />
+<TGConnectingPoint num="40" id="3931" />
+<TGConnectingPoint num="41" id="3932" />
+<TGConnectingPoint num="42" id="3933" />
+<TGConnectingPoint num="43" id="3934" />
+<TGConnectingPoint num="44" id="3935" />
+<TGConnectingPoint num="45" id="3936" />
+<TGConnectingPoint num="46" id="3937" />
+<TGConnectingPoint num="47" id="3938" />
+<TGConnectingPoint num="48" id="3939" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="1523" id="3941" >
+<cdparam x="389" y="164" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferRequest" value="TransferRequest(counter2, sourceAddress2, destinationAddress2)" />
+<P1  x="389" y="124" id="3797" />
+<P2  x="614" y="124" id="3847" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="counter2" />
+<Param index="1" id="sourceAddress2" />
+<Param index="2" id="destinationAddress2" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="3942" >
+<cdparam x="170" y="134" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferRequest" value="TransferRequest(counter2, sourceAddress2, destinationAddress2)" />
+<P1  x="170" y="94" id="3894" />
+<P2  x="389" y="94" id="3794" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="counter2" />
+<Param index="1" id="sourceAddress2" />
+<Param index="2" id="destinationAddress2" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+<TMLSDPanel name="DMACycle_SD2" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1520" id="3992" >
+<cdparam x="1037" y="57" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Dst_Storage_Instance_2" value="Storage instance name" />
+<TGConnectingPoint num="0" id="3943" />
+<TGConnectingPoint num="1" id="3944" />
+<TGConnectingPoint num="2" id="3945" />
+<TGConnectingPoint num="3" id="3946" />
+<TGConnectingPoint num="4" id="3947" />
+<TGConnectingPoint num="5" id="3948" />
+<TGConnectingPoint num="6" id="3949" />
+<TGConnectingPoint num="7" id="3950" />
+<TGConnectingPoint num="8" id="3951" />
+<TGConnectingPoint num="9" id="3952" />
+<TGConnectingPoint num="10" id="3953" />
+<TGConnectingPoint num="11" id="3954" />
+<TGConnectingPoint num="12" id="3955" />
+<TGConnectingPoint num="13" id="3956" />
+<TGConnectingPoint num="14" id="3957" />
+<TGConnectingPoint num="15" id="3958" />
+<TGConnectingPoint num="16" id="3959" />
+<TGConnectingPoint num="17" id="3960" />
+<TGConnectingPoint num="18" id="3961" />
+<TGConnectingPoint num="19" id="3962" />
+<TGConnectingPoint num="20" id="3963" />
+<TGConnectingPoint num="21" id="3964" />
+<TGConnectingPoint num="22" id="3965" />
+<TGConnectingPoint num="23" id="3966" />
+<TGConnectingPoint num="24" id="3967" />
+<TGConnectingPoint num="25" id="3968" />
+<TGConnectingPoint num="26" id="3969" />
+<TGConnectingPoint num="27" id="3970" />
+<TGConnectingPoint num="28" id="3971" />
+<TGConnectingPoint num="29" id="3972" />
+<TGConnectingPoint num="30" id="3973" />
+<TGConnectingPoint num="31" id="3974" />
+<TGConnectingPoint num="32" id="3975" />
+<TGConnectingPoint num="33" id="3976" />
+<TGConnectingPoint num="34" id="3977" />
+<TGConnectingPoint num="35" id="3978" />
+<TGConnectingPoint num="36" id="3979" />
+<TGConnectingPoint num="37" id="3980" />
+<TGConnectingPoint num="38" id="3981" />
+<TGConnectingPoint num="39" id="3982" />
+<TGConnectingPoint num="40" id="3983" />
+<TGConnectingPoint num="41" id="3984" />
+<TGConnectingPoint num="42" id="3985" />
+<TGConnectingPoint num="43" id="3986" />
+<TGConnectingPoint num="44" id="3987" />
+<TGConnectingPoint num="45" id="3988" />
+<TGConnectingPoint num="46" id="3989" />
+<TGConnectingPoint num="47" id="3990" />
+<TGConnectingPoint num="48" id="3991" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="4042" >
+<cdparam x="826" y="57" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_7" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="3993" />
+<TGConnectingPoint num="1" id="3994" />
+<TGConnectingPoint num="2" id="3995" />
+<TGConnectingPoint num="3" id="3996" />
+<TGConnectingPoint num="4" id="3997" />
+<TGConnectingPoint num="5" id="3998" />
+<TGConnectingPoint num="6" id="3999" />
+<TGConnectingPoint num="7" id="4000" />
+<TGConnectingPoint num="8" id="4001" />
+<TGConnectingPoint num="9" id="4002" />
+<TGConnectingPoint num="10" id="4003" />
+<TGConnectingPoint num="11" id="4004" />
+<TGConnectingPoint num="12" id="4005" />
+<TGConnectingPoint num="13" id="4006" />
+<TGConnectingPoint num="14" id="4007" />
+<TGConnectingPoint num="15" id="4008" />
+<TGConnectingPoint num="16" id="4009" />
+<TGConnectingPoint num="17" id="4010" />
+<TGConnectingPoint num="18" id="4011" />
+<TGConnectingPoint num="19" id="4012" />
+<TGConnectingPoint num="20" id="4013" />
+<TGConnectingPoint num="21" id="4014" />
+<TGConnectingPoint num="22" id="4015" />
+<TGConnectingPoint num="23" id="4016" />
+<TGConnectingPoint num="24" id="4017" />
+<TGConnectingPoint num="25" id="4018" />
+<TGConnectingPoint num="26" id="4019" />
+<TGConnectingPoint num="27" id="4020" />
+<TGConnectingPoint num="28" id="4021" />
+<TGConnectingPoint num="29" id="4022" />
+<TGConnectingPoint num="30" id="4023" />
+<TGConnectingPoint num="31" id="4024" />
+<TGConnectingPoint num="32" id="4025" />
+<TGConnectingPoint num="33" id="4026" />
+<TGConnectingPoint num="34" id="4027" />
+<TGConnectingPoint num="35" id="4028" />
+<TGConnectingPoint num="36" id="4029" />
+<TGConnectingPoint num="37" id="4030" />
+<TGConnectingPoint num="38" id="4031" />
+<TGConnectingPoint num="39" id="4032" />
+<TGConnectingPoint num="40" id="4033" />
+<TGConnectingPoint num="41" id="4034" />
+<TGConnectingPoint num="42" id="4035" />
+<TGConnectingPoint num="43" id="4036" />
+<TGConnectingPoint num="44" id="4037" />
+<TGConnectingPoint num="45" id="4038" />
+<TGConnectingPoint num="46" id="4039" />
+<TGConnectingPoint num="47" id="4040" />
+<TGConnectingPoint num="48" id="4041" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1521" id="4092" >
+<cdparam x="357" y="57" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_6" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="4043" />
+<TGConnectingPoint num="1" id="4044" />
+<TGConnectingPoint num="2" id="4045" />
+<TGConnectingPoint num="3" id="4046" />
+<TGConnectingPoint num="4" id="4047" />
+<TGConnectingPoint num="5" id="4048" />
+<TGConnectingPoint num="6" id="4049" />
+<TGConnectingPoint num="7" id="4050" />
+<TGConnectingPoint num="8" id="4051" />
+<TGConnectingPoint num="9" id="4052" />
+<TGConnectingPoint num="10" id="4053" />
+<TGConnectingPoint num="11" id="4054" />
+<TGConnectingPoint num="12" id="4055" />
+<TGConnectingPoint num="13" id="4056" />
+<TGConnectingPoint num="14" id="4057" />
+<TGConnectingPoint num="15" id="4058" />
+<TGConnectingPoint num="16" id="4059" />
+<TGConnectingPoint num="17" id="4060" />
+<TGConnectingPoint num="18" id="4061" />
+<TGConnectingPoint num="19" id="4062" />
+<TGConnectingPoint num="20" id="4063" />
+<TGConnectingPoint num="21" id="4064" />
+<TGConnectingPoint num="22" id="4065" />
+<TGConnectingPoint num="23" id="4066" />
+<TGConnectingPoint num="24" id="4067" />
+<TGConnectingPoint num="25" id="4068" />
+<TGConnectingPoint num="26" id="4069" />
+<TGConnectingPoint num="27" id="4070" />
+<TGConnectingPoint num="28" id="4071" />
+<TGConnectingPoint num="29" id="4072" />
+<TGConnectingPoint num="30" id="4073" />
+<TGConnectingPoint num="31" id="4074" />
+<TGConnectingPoint num="32" id="4075" />
+<TGConnectingPoint num="33" id="4076" />
+<TGConnectingPoint num="34" id="4077" />
+<TGConnectingPoint num="35" id="4078" />
+<TGConnectingPoint num="36" id="4079" />
+<TGConnectingPoint num="37" id="4080" />
+<TGConnectingPoint num="38" id="4081" />
+<TGConnectingPoint num="39" id="4082" />
+<TGConnectingPoint num="40" id="4083" />
+<TGConnectingPoint num="41" id="4084" />
+<TGConnectingPoint num="42" id="4085" />
+<TGConnectingPoint num="43" id="4086" />
+<TGConnectingPoint num="44" id="4087" />
+<TGConnectingPoint num="45" id="4088" />
+<TGConnectingPoint num="46" id="4089" />
+<TGConnectingPoint num="47" id="4090" />
+<TGConnectingPoint num="48" id="4091" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1520" id="4142" >
+<cdparam x="608" y="57" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Src_Storage_Instance_2" value="Storage instance name" />
+<TGConnectingPoint num="0" id="4093" />
+<TGConnectingPoint num="1" id="4094" />
+<TGConnectingPoint num="2" id="4095" />
+<TGConnectingPoint num="3" id="4096" />
+<TGConnectingPoint num="4" id="4097" />
+<TGConnectingPoint num="5" id="4098" />
+<TGConnectingPoint num="6" id="4099" />
+<TGConnectingPoint num="7" id="4100" />
+<TGConnectingPoint num="8" id="4101" />
+<TGConnectingPoint num="9" id="4102" />
+<TGConnectingPoint num="10" id="4103" />
+<TGConnectingPoint num="11" id="4104" />
+<TGConnectingPoint num="12" id="4105" />
+<TGConnectingPoint num="13" id="4106" />
+<TGConnectingPoint num="14" id="4107" />
+<TGConnectingPoint num="15" id="4108" />
+<TGConnectingPoint num="16" id="4109" />
+<TGConnectingPoint num="17" id="4110" />
+<TGConnectingPoint num="18" id="4111" />
+<TGConnectingPoint num="19" id="4112" />
+<TGConnectingPoint num="20" id="4113" />
+<TGConnectingPoint num="21" id="4114" />
+<TGConnectingPoint num="22" id="4115" />
+<TGConnectingPoint num="23" id="4116" />
+<TGConnectingPoint num="24" id="4117" />
+<TGConnectingPoint num="25" id="4118" />
+<TGConnectingPoint num="26" id="4119" />
+<TGConnectingPoint num="27" id="4120" />
+<TGConnectingPoint num="28" id="4121" />
+<TGConnectingPoint num="29" id="4122" />
+<TGConnectingPoint num="30" id="4123" />
+<TGConnectingPoint num="31" id="4124" />
+<TGConnectingPoint num="32" id="4125" />
+<TGConnectingPoint num="33" id="4126" />
+<TGConnectingPoint num="34" id="4127" />
+<TGConnectingPoint num="35" id="4128" />
+<TGConnectingPoint num="36" id="4129" />
+<TGConnectingPoint num="37" id="4130" />
+<TGConnectingPoint num="38" id="4131" />
+<TGConnectingPoint num="39" id="4132" />
+<TGConnectingPoint num="40" id="4133" />
+<TGConnectingPoint num="41" id="4134" />
+<TGConnectingPoint num="42" id="4135" />
+<TGConnectingPoint num="43" id="4136" />
+<TGConnectingPoint num="44" id="4137" />
+<TGConnectingPoint num="45" id="4138" />
+<TGConnectingPoint num="46" id="4139" />
+<TGConnectingPoint num="47" id="4140" />
+<TGConnectingPoint num="48" id="4141" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="4201" >
+<cdparam x="126" y="57" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMA_Controller_2" value="Controller instance name" />
+<TGConnectingPoint num="0" id="4152" />
+<TGConnectingPoint num="1" id="4153" />
+<TGConnectingPoint num="2" id="4154" />
+<TGConnectingPoint num="3" id="4155" />
+<TGConnectingPoint num="4" id="4156" />
+<TGConnectingPoint num="5" id="4157" />
+<TGConnectingPoint num="6" id="4158" />
+<TGConnectingPoint num="7" id="4159" />
+<TGConnectingPoint num="8" id="4160" />
+<TGConnectingPoint num="9" id="4161" />
+<TGConnectingPoint num="10" id="4162" />
+<TGConnectingPoint num="11" id="4163" />
+<TGConnectingPoint num="12" id="4164" />
+<TGConnectingPoint num="13" id="4165" />
+<TGConnectingPoint num="14" id="4166" />
+<TGConnectingPoint num="15" id="4167" />
+<TGConnectingPoint num="16" id="4168" />
+<TGConnectingPoint num="17" id="4169" />
+<TGConnectingPoint num="18" id="4170" />
+<TGConnectingPoint num="19" id="4171" />
+<TGConnectingPoint num="20" id="4172" />
+<TGConnectingPoint num="21" id="4173" />
+<TGConnectingPoint num="22" id="4174" />
+<TGConnectingPoint num="23" id="4175" />
+<TGConnectingPoint num="24" id="4176" />
+<TGConnectingPoint num="25" id="4177" />
+<TGConnectingPoint num="26" id="4178" />
+<TGConnectingPoint num="27" id="4179" />
+<TGConnectingPoint num="28" id="4180" />
+<TGConnectingPoint num="29" id="4181" />
+<TGConnectingPoint num="30" id="4182" />
+<TGConnectingPoint num="31" id="4183" />
+<TGConnectingPoint num="32" id="4184" />
+<TGConnectingPoint num="33" id="4185" />
+<TGConnectingPoint num="34" id="4186" />
+<TGConnectingPoint num="35" id="4187" />
+<TGConnectingPoint num="36" id="4188" />
+<TGConnectingPoint num="37" id="4189" />
+<TGConnectingPoint num="38" id="4190" />
+<TGConnectingPoint num="39" id="4191" />
+<TGConnectingPoint num="40" id="4192" />
+<TGConnectingPoint num="41" id="4193" />
+<TGConnectingPoint num="42" id="4194" />
+<TGConnectingPoint num="43" id="4195" />
+<TGConnectingPoint num="44" id="4196" />
+<TGConnectingPoint num="45" id="4197" />
+<TGConnectingPoint num="46" id="4198" />
+<TGConnectingPoint num="47" id="4199" />
+<TGConnectingPoint num="48" id="4200" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1524" id="4151" >
+<father id="4201" num="0" />
+<cdparam x="131" y="253" />
+<sizeparam width="146" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" />
+<infoparam name="action state" value="counter = counter - 1" />
+<TGConnectingPoint num="0" id="4143" />
+<TGConnectingPoint num="1" id="4144" />
+<TGConnectingPoint num="2" id="4145" />
+<TGConnectingPoint num="3" id="4146" />
+<TGConnectingPoint num="4" id="4147" />
+<TGConnectingPoint num="5" id="4148" />
+<TGConnectingPoint num="6" id="4149" />
+<TGConnectingPoint num="7" id="4150" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="1523" id="4202" >
+<cdparam x="831" y="247" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress2, 1)" />
+<P1  x="831" y="267" id="4013" />
+<P2  x="1042" y="267" id="3963" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress2" />
+<Param index="1" id="1" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="4203" >
+<cdparam x="131" y="217" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Write" value="Write(destinationAddress2, 1)" />
+<P1  x="131" y="237" id="4169" />
+<P2  x="831" y="237" id="4010" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="destinationAddress2" />
+<Param index="1" id="1" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="4204" >
+<cdparam x="362" y="127" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress2, 1)" />
+<P1  x="362" y="147" id="4051" />
+<P2  x="613" y="147" id="4101" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress2" />
+<Param index="1" id="1" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="4205" >
+<cdparam x="148" y="96" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="Read" value="Read(sourceAddress2, 1)" />
+<P1  x="131" y="117" id="4157" />
+<P2  x="362" y="117" id="4048" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<Param index="0" id="sourceAddress2" />
+<Param index="1" id="1" />
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+<TMLSDPanel name="TerminateDMA_SD2" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1521" id="4255" >
+<cdparam x="280" y="53" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Transfer_Instance_8" value="Transfer instance name" />
+<TGConnectingPoint num="0" id="4206" />
+<TGConnectingPoint num="1" id="4207" />
+<TGConnectingPoint num="2" id="4208" />
+<TGConnectingPoint num="3" id="4209" />
+<TGConnectingPoint num="4" id="4210" />
+<TGConnectingPoint num="5" id="4211" />
+<TGConnectingPoint num="6" id="4212" />
+<TGConnectingPoint num="7" id="4213" />
+<TGConnectingPoint num="8" id="4214" />
+<TGConnectingPoint num="9" id="4215" />
+<TGConnectingPoint num="10" id="4216" />
+<TGConnectingPoint num="11" id="4217" />
+<TGConnectingPoint num="12" id="4218" />
+<TGConnectingPoint num="13" id="4219" />
+<TGConnectingPoint num="14" id="4220" />
+<TGConnectingPoint num="15" id="4221" />
+<TGConnectingPoint num="16" id="4222" />
+<TGConnectingPoint num="17" id="4223" />
+<TGConnectingPoint num="18" id="4224" />
+<TGConnectingPoint num="19" id="4225" />
+<TGConnectingPoint num="20" id="4226" />
+<TGConnectingPoint num="21" id="4227" />
+<TGConnectingPoint num="22" id="4228" />
+<TGConnectingPoint num="23" id="4229" />
+<TGConnectingPoint num="24" id="4230" />
+<TGConnectingPoint num="25" id="4231" />
+<TGConnectingPoint num="26" id="4232" />
+<TGConnectingPoint num="27" id="4233" />
+<TGConnectingPoint num="28" id="4234" />
+<TGConnectingPoint num="29" id="4235" />
+<TGConnectingPoint num="30" id="4236" />
+<TGConnectingPoint num="31" id="4237" />
+<TGConnectingPoint num="32" id="4238" />
+<TGConnectingPoint num="33" id="4239" />
+<TGConnectingPoint num="34" id="4240" />
+<TGConnectingPoint num="35" id="4241" />
+<TGConnectingPoint num="36" id="4242" />
+<TGConnectingPoint num="37" id="4243" />
+<TGConnectingPoint num="38" id="4244" />
+<TGConnectingPoint num="39" id="4245" />
+<TGConnectingPoint num="40" id="4246" />
+<TGConnectingPoint num="41" id="4247" />
+<TGConnectingPoint num="42" id="4248" />
+<TGConnectingPoint num="43" id="4249" />
+<TGConnectingPoint num="44" id="4250" />
+<TGConnectingPoint num="45" id="4251" />
+<TGConnectingPoint num="46" id="4252" />
+<TGConnectingPoint num="47" id="4253" />
+<TGConnectingPoint num="48" id="4254" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="4305" >
+<cdparam x="505" y="53" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DMA_Controller_2" value="Controller instance name" />
+<TGConnectingPoint num="0" id="4256" />
+<TGConnectingPoint num="1" id="4257" />
+<TGConnectingPoint num="2" id="4258" />
+<TGConnectingPoint num="3" id="4259" />
+<TGConnectingPoint num="4" id="4260" />
+<TGConnectingPoint num="5" id="4261" />
+<TGConnectingPoint num="6" id="4262" />
+<TGConnectingPoint num="7" id="4263" />
+<TGConnectingPoint num="8" id="4264" />
+<TGConnectingPoint num="9" id="4265" />
+<TGConnectingPoint num="10" id="4266" />
+<TGConnectingPoint num="11" id="4267" />
+<TGConnectingPoint num="12" id="4268" />
+<TGConnectingPoint num="13" id="4269" />
+<TGConnectingPoint num="14" id="4270" />
+<TGConnectingPoint num="15" id="4271" />
+<TGConnectingPoint num="16" id="4272" />
+<TGConnectingPoint num="17" id="4273" />
+<TGConnectingPoint num="18" id="4274" />
+<TGConnectingPoint num="19" id="4275" />
+<TGConnectingPoint num="20" id="4276" />
+<TGConnectingPoint num="21" id="4277" />
+<TGConnectingPoint num="22" id="4278" />
+<TGConnectingPoint num="23" id="4279" />
+<TGConnectingPoint num="24" id="4280" />
+<TGConnectingPoint num="25" id="4281" />
+<TGConnectingPoint num="26" id="4282" />
+<TGConnectingPoint num="27" id="4283" />
+<TGConnectingPoint num="28" id="4284" />
+<TGConnectingPoint num="29" id="4285" />
+<TGConnectingPoint num="30" id="4286" />
+<TGConnectingPoint num="31" id="4287" />
+<TGConnectingPoint num="32" id="4288" />
+<TGConnectingPoint num="33" id="4289" />
+<TGConnectingPoint num="34" id="4290" />
+<TGConnectingPoint num="35" id="4291" />
+<TGConnectingPoint num="36" id="4292" />
+<TGConnectingPoint num="37" id="4293" />
+<TGConnectingPoint num="38" id="4294" />
+<TGConnectingPoint num="39" id="4295" />
+<TGConnectingPoint num="40" id="4296" />
+<TGConnectingPoint num="41" id="4297" />
+<TGConnectingPoint num="42" id="4298" />
+<TGConnectingPoint num="43" id="4299" />
+<TGConnectingPoint num="44" id="4300" />
+<TGConnectingPoint num="45" id="4301" />
+<TGConnectingPoint num="46" id="4302" />
+<TGConnectingPoint num="47" id="4303" />
+<TGConnectingPoint num="48" id="4304" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1522" id="4355" >
+<cdparam x="61" y="53" />
+<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="CPU_Controller_2" value="Controller instance name" />
+<TGConnectingPoint num="0" id="4306" />
+<TGConnectingPoint num="1" id="4307" />
+<TGConnectingPoint num="2" id="4308" />
+<TGConnectingPoint num="3" id="4309" />
+<TGConnectingPoint num="4" id="4310" />
+<TGConnectingPoint num="5" id="4311" />
+<TGConnectingPoint num="6" id="4312" />
+<TGConnectingPoint num="7" id="4313" />
+<TGConnectingPoint num="8" id="4314" />
+<TGConnectingPoint num="9" id="4315" />
+<TGConnectingPoint num="10" id="4316" />
+<TGConnectingPoint num="11" id="4317" />
+<TGConnectingPoint num="12" id="4318" />
+<TGConnectingPoint num="13" id="4319" />
+<TGConnectingPoint num="14" id="4320" />
+<TGConnectingPoint num="15" id="4321" />
+<TGConnectingPoint num="16" id="4322" />
+<TGConnectingPoint num="17" id="4323" />
+<TGConnectingPoint num="18" id="4324" />
+<TGConnectingPoint num="19" id="4325" />
+<TGConnectingPoint num="20" id="4326" />
+<TGConnectingPoint num="21" id="4327" />
+<TGConnectingPoint num="22" id="4328" />
+<TGConnectingPoint num="23" id="4329" />
+<TGConnectingPoint num="24" id="4330" />
+<TGConnectingPoint num="25" id="4331" />
+<TGConnectingPoint num="26" id="4332" />
+<TGConnectingPoint num="27" id="4333" />
+<TGConnectingPoint num="28" id="4334" />
+<TGConnectingPoint num="29" id="4335" />
+<TGConnectingPoint num="30" id="4336" />
+<TGConnectingPoint num="31" id="4337" />
+<TGConnectingPoint num="32" id="4338" />
+<TGConnectingPoint num="33" id="4339" />
+<TGConnectingPoint num="34" id="4340" />
+<TGConnectingPoint num="35" id="4341" />
+<TGConnectingPoint num="36" id="4342" />
+<TGConnectingPoint num="37" id="4343" />
+<TGConnectingPoint num="38" id="4344" />
+<TGConnectingPoint num="39" id="4345" />
+<TGConnectingPoint num="40" id="4346" />
+<TGConnectingPoint num="41" id="4347" />
+<TGConnectingPoint num="42" id="4348" />
+<TGConnectingPoint num="43" id="4349" />
+<TGConnectingPoint num="44" id="4350" />
+<TGConnectingPoint num="45" id="4351" />
+<TGConnectingPoint num="46" id="4352" />
+<TGConnectingPoint num="47" id="4353" />
+<TGConnectingPoint num="48" id="4354" />
+<extraparam>
+<Mapping mappedOn="" />
+<Actor data="false" />
+<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" />
+<Attribute access="2" id="counter2" value="" type="0" typeOther="" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="1523" id="4356" >
+<cdparam x="285" y="113" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferTerminated" value="TransferTerminated()" />
+<P1  x="285" y="113" id="4211" />
+<P2  x="66" y="113" id="4311" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="1523" id="4357" >
+<cdparam x="510" y="83" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="TransferTerminated" value="TransferTerminated()" />
+<P1  x="510" y="83" id="4258" />
+<P2  x="285" y="83" id="4208" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+</extraparam>
+</CONNECTOR>
+
+</TMLSDPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Architecture" nameTab="Embb" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1900" minY="10" maxY="1900" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1100" id="4382" >
+<cdparam x="560" y="807" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_DMA" value="name" />
+<TGConnectingPoint num="0" id="4358" />
+<TGConnectingPoint num="1" id="4359" />
+<TGConnectingPoint num="2" id="4360" />
+<TGConnectingPoint num="3" id="4361" />
+<TGConnectingPoint num="4" id="4362" />
+<TGConnectingPoint num="5" id="4363" />
+<TGConnectingPoint num="6" id="4364" />
+<TGConnectingPoint num="7" id="4365" />
+<TGConnectingPoint num="8" id="4366" />
+<TGConnectingPoint num="9" id="4367" />
+<TGConnectingPoint num="10" id="4368" />
+<TGConnectingPoint num="11" id="4369" />
+<TGConnectingPoint num="12" id="4370" />
+<TGConnectingPoint num="13" id="4371" />
+<TGConnectingPoint num="14" id="4372" />
+<TGConnectingPoint num="15" id="4373" />
+<TGConnectingPoint num="16" id="4374" />
+<TGConnectingPoint num="17" id="4375" />
+<TGConnectingPoint num="18" id="4376" />
+<TGConnectingPoint num="19" id="4377" />
+<TGConnectingPoint num="20" id="4378" />
+<TGConnectingPoint num="21" id="4379" />
+<TGConnectingPoint num="22" id="4380" />
+<TGConnectingPoint num="23" id="4381" />
+<extraparam>
+<info stereotype="CPURR" nodeName="INTL_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="4407" >
+<cdparam x="543" y="422" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_DMA" value="name" />
+<TGConnectingPoint num="0" id="4383" />
+<TGConnectingPoint num="1" id="4384" />
+<TGConnectingPoint num="2" id="4385" />
+<TGConnectingPoint num="3" id="4386" />
+<TGConnectingPoint num="4" id="4387" />
+<TGConnectingPoint num="5" id="4388" />
+<TGConnectingPoint num="6" id="4389" />
+<TGConnectingPoint num="7" id="4390" />
+<TGConnectingPoint num="8" id="4391" />
+<TGConnectingPoint num="9" id="4392" />
+<TGConnectingPoint num="10" id="4393" />
+<TGConnectingPoint num="11" id="4394" />
+<TGConnectingPoint num="12" id="4395" />
+<TGConnectingPoint num="13" id="4396" />
+<TGConnectingPoint num="14" id="4397" />
+<TGConnectingPoint num="15" id="4398" />
+<TGConnectingPoint num="16" id="4399" />
+<TGConnectingPoint num="17" id="4400" />
+<TGConnectingPoint num="18" id="4401" />
+<TGConnectingPoint num="19" id="4402" />
+<TGConnectingPoint num="20" id="4403" />
+<TGConnectingPoint num="21" id="4404" />
+<TGConnectingPoint num="22" id="4405" />
+<TGConnectingPoint num="23" id="4406" />
+<extraparam>
+<info stereotype="CPURR" nodeName="ADAIF_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="4432" >
+<cdparam x="354" y="243" />
+<sizeparam width="200" height="152" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_MSS" value="name" />
+<TGConnectingPoint num="0" id="4408" />
+<TGConnectingPoint num="1" id="4409" />
+<TGConnectingPoint num="2" id="4410" />
+<TGConnectingPoint num="3" id="4411" />
+<TGConnectingPoint num="4" id="4412" />
+<TGConnectingPoint num="5" id="4413" />
+<TGConnectingPoint num="6" id="4414" />
+<TGConnectingPoint num="7" id="4415" />
+<TGConnectingPoint num="8" id="4416" />
+<TGConnectingPoint num="9" id="4417" />
+<TGConnectingPoint num="10" id="4418" />
+<TGConnectingPoint num="11" id="4419" />
+<TGConnectingPoint num="12" id="4420" />
+<TGConnectingPoint num="13" id="4421" />
+<TGConnectingPoint num="14" id="4422" />
+<TGConnectingPoint num="15" id="4423" />
+<TGConnectingPoint num="16" id="4424" />
+<TGConnectingPoint num="17" id="4425" />
+<TGConnectingPoint num="18" id="4426" />
+<TGConnectingPoint num="19" id="4427" />
+<TGConnectingPoint num="20" id="4428" />
+<TGConnectingPoint num="21" id="4429" />
+<TGConnectingPoint num="22" id="4430" />
+<TGConnectingPoint num="23" id="4431" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="ADAIF_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="2" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="4457" >
+<cdparam x="29" y="215" />
+<sizeparam width="252" height="181" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_PSS" value="name" />
+<TGConnectingPoint num="0" id="4433" />
+<TGConnectingPoint num="1" id="4434" />
+<TGConnectingPoint num="2" id="4435" />
+<TGConnectingPoint num="3" id="4436" />
+<TGConnectingPoint num="4" id="4437" />
+<TGConnectingPoint num="5" id="4438" />
+<TGConnectingPoint num="6" id="4439" />
+<TGConnectingPoint num="7" id="4440" />
+<TGConnectingPoint num="8" id="4441" />
+<TGConnectingPoint num="9" id="4442" />
+<TGConnectingPoint num="10" id="4443" />
+<TGConnectingPoint num="11" id="4444" />
+<TGConnectingPoint num="12" id="4445" />
+<TGConnectingPoint num="13" id="4446" />
+<TGConnectingPoint num="14" id="4447" />
+<TGConnectingPoint num="15" id="4448" />
+<TGConnectingPoint num="16" id="4449" />
+<TGConnectingPoint num="17" id="4450" />
+<TGConnectingPoint num="18" id="4451" />
+<TGConnectingPoint num="19" id="4452" />
+<TGConnectingPoint num="20" id="4453" />
+<TGConnectingPoint num="21" id="4454" />
+<TGConnectingPoint num="22" id="4455" />
+<TGConnectingPoint num="23" id="4456" />
+<extraparam>
+<info stereotype="CPURR" nodeName="ADAIF_PSS" />
+<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" MECType="4" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="4482" >
+<cdparam x="306" y="545" />
+<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_Bridge" value="name" />
+<TGConnectingPoint num="0" id="4458" />
+<TGConnectingPoint num="1" id="4459" />
+<TGConnectingPoint num="2" id="4460" />
+<TGConnectingPoint num="3" id="4461" />
+<TGConnectingPoint num="4" id="4462" />
+<TGConnectingPoint num="5" id="4463" />
+<TGConnectingPoint num="6" id="4464" />
+<TGConnectingPoint num="7" id="4465" />
+<TGConnectingPoint num="8" id="4466" />
+<TGConnectingPoint num="9" id="4467" />
+<TGConnectingPoint num="10" id="4468" />
+<TGConnectingPoint num="11" id="4469" />
+<TGConnectingPoint num="12" id="4470" />
+<TGConnectingPoint num="13" id="4471" />
+<TGConnectingPoint num="14" id="4472" />
+<TGConnectingPoint num="15" id="4473" />
+<TGConnectingPoint num="16" id="4474" />
+<TGConnectingPoint num="17" id="4475" />
+<TGConnectingPoint num="18" id="4476" />
+<TGConnectingPoint num="19" id="4477" />
+<TGConnectingPoint num="20" id="4478" />
+<TGConnectingPoint num="21" id="4479" />
+<TGConnectingPoint num="22" id="4480" />
+<TGConnectingPoint num="23" id="4481" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="ADAIF_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="4507" >
+<cdparam x="1544" y="737" />
+<sizeparam width="216" height="140" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainMemory" value="name" />
+<TGConnectingPoint num="0" id="4483" />
+<TGConnectingPoint num="1" id="4484" />
+<TGConnectingPoint num="2" id="4485" />
+<TGConnectingPoint num="3" id="4486" />
+<TGConnectingPoint num="4" id="4487" />
+<TGConnectingPoint num="5" id="4488" />
+<TGConnectingPoint num="6" id="4489" />
+<TGConnectingPoint num="7" id="4490" />
+<TGConnectingPoint num="8" id="4491" />
+<TGConnectingPoint num="9" id="4492" />
+<TGConnectingPoint num="10" id="4493" />
+<TGConnectingPoint num="11" id="4494" />
+<TGConnectingPoint num="12" id="4495" />
+<TGConnectingPoint num="13" id="4496" />
+<TGConnectingPoint num="14" id="4497" />
+<TGConnectingPoint num="15" id="4498" />
+<TGConnectingPoint num="16" id="4499" />
+<TGConnectingPoint num="17" id="4500" />
+<TGConnectingPoint num="18" id="4501" />
+<TGConnectingPoint num="19" id="4502" />
+<TGConnectingPoint num="20" id="4503" />
+<TGConnectingPoint num="21" id="4504" />
+<TGConnectingPoint num="22" id="4505" />
+<TGConnectingPoint num="23" id="4506" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="MainMemory" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="4" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="4532" >
+<cdparam x="1444" y="293" />
+<sizeparam width="417" height="293" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainCPU" value="name" />
+<TGConnectingPoint num="0" id="4508" />
+<TGConnectingPoint num="1" id="4509" />
+<TGConnectingPoint num="2" id="4510" />
+<TGConnectingPoint num="3" id="4511" />
+<TGConnectingPoint num="4" id="4512" />
+<TGConnectingPoint num="5" id="4513" />
+<TGConnectingPoint num="6" id="4514" />
+<TGConnectingPoint num="7" id="4515" />
+<TGConnectingPoint num="8" id="4516" />
+<TGConnectingPoint num="9" id="4517" />
+<TGConnectingPoint num="10" id="4518" />
+<TGConnectingPoint num="11" id="4519" />
+<TGConnectingPoint num="12" id="4520" />
+<TGConnectingPoint num="13" id="4521" />
+<TGConnectingPoint num="14" id="4522" />
+<TGConnectingPoint num="15" id="4523" />
+<TGConnectingPoint num="16" id="4524" />
+<TGConnectingPoint num="17" id="4525" />
+<TGConnectingPoint num="18" id="4526" />
+<TGConnectingPoint num="19" id="4527" />
+<TGConnectingPoint num="20" id="4528" />
+<TGConnectingPoint num="21" id="4529" />
+<TGConnectingPoint num="22" id="4530" />
+<TGConnectingPoint num="23" id="4531" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MainCPU" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="4557" >
+<cdparam x="1527" y="635" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainBus" value="name" />
+<TGConnectingPoint num="0" id="4533" />
+<TGConnectingPoint num="1" id="4534" />
+<TGConnectingPoint num="2" id="4535" />
+<TGConnectingPoint num="3" id="4536" />
+<TGConnectingPoint num="4" id="4537" />
+<TGConnectingPoint num="5" id="4538" />
+<TGConnectingPoint num="6" id="4539" />
+<TGConnectingPoint num="7" id="4540" />
+<TGConnectingPoint num="8" id="4541" />
+<TGConnectingPoint num="9" id="4542" />
+<TGConnectingPoint num="10" id="4543" />
+<TGConnectingPoint num="11" id="4544" />
+<TGConnectingPoint num="12" id="4545" />
+<TGConnectingPoint num="13" id="4546" />
+<TGConnectingPoint num="14" id="4547" />
+<TGConnectingPoint num="15" id="4548" />
+<TGConnectingPoint num="16" id="4549" />
+<TGConnectingPoint num="17" id="4550" />
+<TGConnectingPoint num="18" id="4551" />
+<TGConnectingPoint num="19" id="4552" />
+<TGConnectingPoint num="20" id="4553" />
+<TGConnectingPoint num="21" id="4554" />
+<TGConnectingPoint num="22" id="4555" />
+<TGConnectingPoint num="23" id="4556" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="MainBus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="4582" >
+<cdparam x="1367" y="610" />
+<sizeparam width="100" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainBridge" value="name" />
+<TGConnectingPoint num="0" id="4558" />
+<TGConnectingPoint num="1" id="4559" />
+<TGConnectingPoint num="2" id="4560" />
+<TGConnectingPoint num="3" id="4561" />
+<TGConnectingPoint num="4" id="4562" />
+<TGConnectingPoint num="5" id="4563" />
+<TGConnectingPoint num="6" id="4564" />
+<TGConnectingPoint num="7" id="4565" />
+<TGConnectingPoint num="8" id="4566" />
+<TGConnectingPoint num="9" id="4567" />
+<TGConnectingPoint num="10" id="4568" />
+<TGConnectingPoint num="11" id="4569" />
+<TGConnectingPoint num="12" id="4570" />
+<TGConnectingPoint num="13" id="4571" />
+<TGConnectingPoint num="14" id="4572" />
+<TGConnectingPoint num="15" id="4573" />
+<TGConnectingPoint num="16" id="4574" />
+<TGConnectingPoint num="17" id="4575" />
+<TGConnectingPoint num="18" id="4576" />
+<TGConnectingPoint num="19" id="4577" />
+<TGConnectingPoint num="20" id="4578" />
+<TGConnectingPoint num="21" id="4579" />
+<TGConnectingPoint num="22" id="4580" />
+<TGConnectingPoint num="23" id="4581" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="MainBridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="4607" >
+<cdparam x="231" y="635" />
+<sizeparam width="845" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="Crossbar" value="name" />
+<TGConnectingPoint num="0" id="4583" />
+<TGConnectingPoint num="1" id="4584" />
+<TGConnectingPoint num="2" id="4585" />
+<TGConnectingPoint num="3" id="4586" />
+<TGConnectingPoint num="4" id="4587" />
+<TGConnectingPoint num="5" id="4588" />
+<TGConnectingPoint num="6" id="4589" />
+<TGConnectingPoint num="7" id="4590" />
+<TGConnectingPoint num="8" id="4591" />
+<TGConnectingPoint num="9" id="4592" />
+<TGConnectingPoint num="10" id="4593" />
+<TGConnectingPoint num="11" id="4594" />
+<TGConnectingPoint num="12" id="4595" />
+<TGConnectingPoint num="13" id="4596" />
+<TGConnectingPoint num="14" id="4597" />
+<TGConnectingPoint num="15" id="4598" />
+<TGConnectingPoint num="16" id="4599" />
+<TGConnectingPoint num="17" id="4600" />
+<TGConnectingPoint num="18" id="4601" />
+<TGConnectingPoint num="19" id="4602" />
+<TGConnectingPoint num="20" id="4603" />
+<TGConnectingPoint num="21" id="4604" />
+<TGConnectingPoint num="22" id="4605" />
+<TGConnectingPoint num="23" id="4606" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="Crossbar" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="4632" >
+<cdparam x="306" y="737" />
+<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_Bridge" value="name" />
+<TGConnectingPoint num="0" id="4608" />
+<TGConnectingPoint num="1" id="4609" />
+<TGConnectingPoint num="2" id="4610" />
+<TGConnectingPoint num="3" id="4611" />
+<TGConnectingPoint num="4" id="4612" />
+<TGConnectingPoint num="5" id="4613" />
+<TGConnectingPoint num="6" id="4614" />
+<TGConnectingPoint num="7" id="4615" />
+<TGConnectingPoint num="8" id="4616" />
+<TGConnectingPoint num="9" id="4617" />
+<TGConnectingPoint num="10" id="4618" />
+<TGConnectingPoint num="11" id="4619" />
+<TGConnectingPoint num="12" id="4620" />
+<TGConnectingPoint num="13" id="4621" />
+<TGConnectingPoint num="14" id="4622" />
+<TGConnectingPoint num="15" id="4623" />
+<TGConnectingPoint num="16" id="4624" />
+<TGConnectingPoint num="17" id="4625" />
+<TGConnectingPoint num="18" id="4626" />
+<TGConnectingPoint num="19" id="4627" />
+<TGConnectingPoint num="20" id="4628" />
+<TGConnectingPoint num="21" id="4629" />
+<TGConnectingPoint num="22" id="4630" />
+<TGConnectingPoint num="23" id="4631" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="INTL_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="4657" >
+<cdparam x="376" y="949" />
+<sizeparam width="331" height="135" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_MSS" value="name" />
+<TGConnectingPoint num="0" id="4633" />
+<TGConnectingPoint num="1" id="4634" />
+<TGConnectingPoint num="2" id="4635" />
+<TGConnectingPoint num="3" id="4636" />
+<TGConnectingPoint num="4" id="4637" />
+<TGConnectingPoint num="5" id="4638" />
+<TGConnectingPoint num="6" id="4639" />
+<TGConnectingPoint num="7" id="4640" />
+<TGConnectingPoint num="8" id="4641" />
+<TGConnectingPoint num="9" id="4642" />
+<TGConnectingPoint num="10" id="4643" />
+<TGConnectingPoint num="11" id="4644" />
+<TGConnectingPoint num="12" id="4645" />
+<TGConnectingPoint num="13" id="4646" />
+<TGConnectingPoint num="14" id="4647" />
+<TGConnectingPoint num="15" id="4648" />
+<TGConnectingPoint num="16" id="4649" />
+<TGConnectingPoint num="17" id="4650" />
+<TGConnectingPoint num="18" id="4651" />
+<TGConnectingPoint num="19" id="4652" />
+<TGConnectingPoint num="20" id="4653" />
+<TGConnectingPoint num="21" id="4654" />
+<TGConnectingPoint num="22" id="4655" />
+<TGConnectingPoint num="23" id="4656" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="INTL_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="3" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="4682" >
+<cdparam x="138" y="938" />
+<sizeparam width="187" height="140" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_PSS" value="name" />
+<TGConnectingPoint num="0" id="4658" />
+<TGConnectingPoint num="1" id="4659" />
+<TGConnectingPoint num="2" id="4660" />
+<TGConnectingPoint num="3" id="4661" />
+<TGConnectingPoint num="4" id="4662" />
+<TGConnectingPoint num="5" id="4663" />
+<TGConnectingPoint num="6" id="4664" />
+<TGConnectingPoint num="7" id="4665" />
+<TGConnectingPoint num="8" id="4666" />
+<TGConnectingPoint num="9" id="4667" />
+<TGConnectingPoint num="10" id="4668" />
+<TGConnectingPoint num="11" id="4669" />
+<TGConnectingPoint num="12" id="4670" />
+<TGConnectingPoint num="13" id="4671" />
+<TGConnectingPoint num="14" id="4672" />
+<TGConnectingPoint num="15" id="4673" />
+<TGConnectingPoint num="16" id="4674" />
+<TGConnectingPoint num="17" id="4675" />
+<TGConnectingPoint num="18" id="4676" />
+<TGConnectingPoint num="19" id="4677" />
+<TGConnectingPoint num="20" id="4678" />
+<TGConnectingPoint num="21" id="4679" />
+<TGConnectingPoint num="22" id="4680" />
+<TGConnectingPoint num="23" id="4681" />
+<extraparam>
+<info stereotype="CPURR" nodeName="INTL_PSS" />
+<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" MECType="2" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="4707" >
+<cdparam x="231" y="832" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_Bus" value="name" />
+<TGConnectingPoint num="0" id="4683" />
+<TGConnectingPoint num="1" id="4684" />
+<TGConnectingPoint num="2" id="4685" />
+<TGConnectingPoint num="3" id="4686" />
+<TGConnectingPoint num="4" id="4687" />
+<TGConnectingPoint num="5" id="4688" />
+<TGConnectingPoint num="6" id="4689" />
+<TGConnectingPoint num="7" id="4690" />
+<TGConnectingPoint num="8" id="4691" />
+<TGConnectingPoint num="9" id="4692" />
+<TGConnectingPoint num="10" id="4693" />
+<TGConnectingPoint num="11" id="4694" />
+<TGConnectingPoint num="12" id="4695" />
+<TGConnectingPoint num="13" id="4696" />
+<TGConnectingPoint num="14" id="4697" />
+<TGConnectingPoint num="15" id="4698" />
+<TGConnectingPoint num="16" id="4699" />
+<TGConnectingPoint num="17" id="4700" />
+<TGConnectingPoint num="18" id="4701" />
+<TGConnectingPoint num="19" id="4702" />
+<TGConnectingPoint num="20" id="4703" />
+<TGConnectingPoint num="21" id="4704" />
+<TGConnectingPoint num="22" id="4705" />
+<TGConnectingPoint num="23" id="4706" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="INTL_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="4732" >
+<cdparam x="231" y="447" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_Bus" value="name" />
+<TGConnectingPoint num="0" id="4708" />
+<TGConnectingPoint num="1" id="4709" />
+<TGConnectingPoint num="2" id="4710" />
+<TGConnectingPoint num="3" id="4711" />
+<TGConnectingPoint num="4" id="4712" />
+<TGConnectingPoint num="5" id="4713" />
+<TGConnectingPoint num="6" id="4714" />
+<TGConnectingPoint num="7" id="4715" />
+<TGConnectingPoint num="8" id="4716" />
+<TGConnectingPoint num="9" id="4717" />
+<TGConnectingPoint num="10" id="4718" />
+<TGConnectingPoint num="11" id="4719" />
+<TGConnectingPoint num="12" id="4720" />
+<TGConnectingPoint num="13" id="4721" />
+<TGConnectingPoint num="14" id="4722" />
+<TGConnectingPoint num="15" id="4723" />
+<TGConnectingPoint num="16" id="4724" />
+<TGConnectingPoint num="17" id="4725" />
+<TGConnectingPoint num="18" id="4726" />
+<TGConnectingPoint num="19" id="4727" />
+<TGConnectingPoint num="20" id="4728" />
+<TGConnectingPoint num="21" id="4729" />
+<TGConnectingPoint num="22" id="4730" />
+<TGConnectingPoint num="23" id="4731" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="ADAIF_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="4757" >
+<cdparam x="1147" y="408" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_DMA" value="name" />
+<TGConnectingPoint num="0" id="4733" />
+<TGConnectingPoint num="1" id="4734" />
+<TGConnectingPoint num="2" id="4735" />
+<TGConnectingPoint num="3" id="4736" />
+<TGConnectingPoint num="4" id="4737" />
+<TGConnectingPoint num="5" id="4738" />
+<TGConnectingPoint num="6" id="4739" />
+<TGConnectingPoint num="7" id="4740" />
+<TGConnectingPoint num="8" id="4741" />
+<TGConnectingPoint num="9" id="4742" />
+<TGConnectingPoint num="10" id="4743" />
+<TGConnectingPoint num="11" id="4744" />
+<TGConnectingPoint num="12" id="4745" />
+<TGConnectingPoint num="13" id="4746" />
+<TGConnectingPoint num="14" id="4747" />
+<TGConnectingPoint num="15" id="4748" />
+<TGConnectingPoint num="16" id="4749" />
+<TGConnectingPoint num="17" id="4750" />
+<TGConnectingPoint num="18" id="4751" />
+<TGConnectingPoint num="19" id="4752" />
+<TGConnectingPoint num="20" id="4753" />
+<TGConnectingPoint num="21" id="4754" />
+<TGConnectingPoint num="22" id="4755" />
+<TGConnectingPoint num="23" id="4756" />
+<extraparam>
+<info stereotype="CPURR" nodeName="FEP_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="4782" >
+<cdparam x="895" y="193" />
+<sizeparam width="255" height="183" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_MSS" value="name" />
+<TGConnectingPoint num="0" id="4758" />
+<TGConnectingPoint num="1" id="4759" />
+<TGConnectingPoint num="2" id="4760" />
+<TGConnectingPoint num="3" id="4761" />
+<TGConnectingPoint num="4" id="4762" />
+<TGConnectingPoint num="5" id="4763" />
+<TGConnectingPoint num="6" id="4764" />
+<TGConnectingPoint num="7" id="4765" />
+<TGConnectingPoint num="8" id="4766" />
+<TGConnectingPoint num="9" id="4767" />
+<TGConnectingPoint num="10" id="4768" />
+<TGConnectingPoint num="11" id="4769" />
+<TGConnectingPoint num="12" id="4770" />
+<TGConnectingPoint num="13" id="4771" />
+<TGConnectingPoint num="14" id="4772" />
+<TGConnectingPoint num="15" id="4773" />
+<TGConnectingPoint num="16" id="4774" />
+<TGConnectingPoint num="17" id="4775" />
+<TGConnectingPoint num="18" id="4776" />
+<TGConnectingPoint num="19" id="4777" />
+<TGConnectingPoint num="20" id="4778" />
+<TGConnectingPoint num="21" id="4779" />
+<TGConnectingPoint num="22" id="4780" />
+<TGConnectingPoint num="23" id="4781" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="FEP_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="0" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="4807" >
+<cdparam x="619" y="199" />
+<sizeparam width="238" height="185" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_PSS" value="name" />
+<TGConnectingPoint num="0" id="4783" />
+<TGConnectingPoint num="1" id="4784" />
+<TGConnectingPoint num="2" id="4785" />
+<TGConnectingPoint num="3" id="4786" />
+<TGConnectingPoint num="4" id="4787" />
+<TGConnectingPoint num="5" id="4788" />
+<TGConnectingPoint num="6" id="4789" />
+<TGConnectingPoint num="7" id="4790" />
+<TGConnectingPoint num="8" id="4791" />
+<TGConnectingPoint num="9" id="4792" />
+<TGConnectingPoint num="10" id="4793" />
+<TGConnectingPoint num="11" id="4794" />
+<TGConnectingPoint num="12" id="4795" />
+<TGConnectingPoint num="13" id="4796" />
+<TGConnectingPoint num="14" id="4797" />
+<TGConnectingPoint num="15" id="4798" />
+<TGConnectingPoint num="16" id="4799" />
+<TGConnectingPoint num="17" id="4800" />
+<TGConnectingPoint num="18" id="4801" />
+<TGConnectingPoint num="19" id="4802" />
+<TGConnectingPoint num="20" id="4803" />
+<TGConnectingPoint num="21" id="4804" />
+<TGConnectingPoint num="22" id="4805" />
+<TGConnectingPoint num="23" id="4806" />
+<extraparam>
+<info stereotype="CPURR" nodeName="FEP_PSS" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="2" execcTime="1" clockRatio="1" MECType="1" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="4832" >
+<cdparam x="910" y="531" />
+<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_Bridge" value="name" />
+<TGConnectingPoint num="0" id="4808" />
+<TGConnectingPoint num="1" id="4809" />
+<TGConnectingPoint num="2" id="4810" />
+<TGConnectingPoint num="3" id="4811" />
+<TGConnectingPoint num="4" id="4812" />
+<TGConnectingPoint num="5" id="4813" />
+<TGConnectingPoint num="6" id="4814" />
+<TGConnectingPoint num="7" id="4815" />
+<TGConnectingPoint num="8" id="4816" />
+<TGConnectingPoint num="9" id="4817" />
+<TGConnectingPoint num="10" id="4818" />
+<TGConnectingPoint num="11" id="4819" />
+<TGConnectingPoint num="12" id="4820" />
+<TGConnectingPoint num="13" id="4821" />
+<TGConnectingPoint num="14" id="4822" />
+<TGConnectingPoint num="15" id="4823" />
+<TGConnectingPoint num="16" id="4824" />
+<TGConnectingPoint num="17" id="4825" />
+<TGConnectingPoint num="18" id="4826" />
+<TGConnectingPoint num="19" id="4827" />
+<TGConnectingPoint num="20" id="4828" />
+<TGConnectingPoint num="21" id="4829" />
+<TGConnectingPoint num="22" id="4830" />
+<TGConnectingPoint num="23" id="4831" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="FEP_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="4857" >
+<cdparam x="835" y="433" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_Bus" value="name" />
+<TGConnectingPoint num="0" id="4833" />
+<TGConnectingPoint num="1" id="4834" />
+<TGConnectingPoint num="2" id="4835" />
+<TGConnectingPoint num="3" id="4836" />
+<TGConnectingPoint num="4" id="4837" />
+<TGConnectingPoint num="5" id="4838" />
+<TGConnectingPoint num="6" id="4839" />
+<TGConnectingPoint num="7" id="4840" />
+<TGConnectingPoint num="8" id="4841" />
+<TGConnectingPoint num="9" id="4842" />
+<TGConnectingPoint num="10" id="4843" />
+<TGConnectingPoint num="11" id="4844" />
+<TGConnectingPoint num="12" id="4845" />
+<TGConnectingPoint num="13" id="4846" />
+<TGConnectingPoint num="14" id="4847" />
+<TGConnectingPoint num="15" id="4848" />
+<TGConnectingPoint num="16" id="4849" />
+<TGConnectingPoint num="17" id="4850" />
+<TGConnectingPoint num="18" id="4851" />
+<TGConnectingPoint num="19" id="4852" />
+<TGConnectingPoint num="20" id="4853" />
+<TGConnectingPoint num="21" id="4854" />
+<TGConnectingPoint num="22" id="4855" />
+<TGConnectingPoint num="23" id="4856" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="FEP_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="4882" >
+<cdparam x="1174" y="850" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_DMA" value="name" />
+<TGConnectingPoint num="0" id="4858" />
+<TGConnectingPoint num="1" id="4859" />
+<TGConnectingPoint num="2" id="4860" />
+<TGConnectingPoint num="3" id="4861" />
+<TGConnectingPoint num="4" id="4862" />
+<TGConnectingPoint num="5" id="4863" />
+<TGConnectingPoint num="6" id="4864" />
+<TGConnectingPoint num="7" id="4865" />
+<TGConnectingPoint num="8" id="4866" />
+<TGConnectingPoint num="9" id="4867" />
+<TGConnectingPoint num="10" id="4868" />
+<TGConnectingPoint num="11" id="4869" />
+<TGConnectingPoint num="12" id="4870" />
+<TGConnectingPoint num="13" id="4871" />
+<TGConnectingPoint num="14" id="4872" />
+<TGConnectingPoint num="15" id="4873" />
+<TGConnectingPoint num="16" id="4874" />
+<TGConnectingPoint num="17" id="4875" />
+<TGConnectingPoint num="18" id="4876" />
+<TGConnectingPoint num="19" id="4877" />
+<TGConnectingPoint num="20" id="4878" />
+<TGConnectingPoint num="21" id="4879" />
+<TGConnectingPoint num="22" id="4880" />
+<TGConnectingPoint num="23" id="4881" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MAPPER_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="4907" >
+<cdparam x="920" y="780" />
+<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_Bridge" value="name" />
+<TGConnectingPoint num="0" id="4883" />
+<TGConnectingPoint num="1" id="4884" />
+<TGConnectingPoint num="2" id="4885" />
+<TGConnectingPoint num="3" id="4886" />
+<TGConnectingPoint num="4" id="4887" />
+<TGConnectingPoint num="5" id="4888" />
+<TGConnectingPoint num="6" id="4889" />
+<TGConnectingPoint num="7" id="4890" />
+<TGConnectingPoint num="8" id="4891" />
+<TGConnectingPoint num="9" id="4892" />
+<TGConnectingPoint num="10" id="4893" />
+<TGConnectingPoint num="11" id="4894" />
+<TGConnectingPoint num="12" id="4895" />
+<TGConnectingPoint num="13" id="4896" />
+<TGConnectingPoint num="14" id="4897" />
+<TGConnectingPoint num="15" id="4898" />
+<TGConnectingPoint num="16" id="4899" />
+<TGConnectingPoint num="17" id="4900" />
+<TGConnectingPoint num="18" id="4901" />
+<TGConnectingPoint num="19" id="4902" />
+<TGConnectingPoint num="20" id="4903" />
+<TGConnectingPoint num="21" id="4904" />
+<TGConnectingPoint num="22" id="4905" />
+<TGConnectingPoint num="23" id="4906" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="MAPPER_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="4932" >
+<cdparam x="1043" y="978" />
+<sizeparam width="314" height="125" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_MSS" value="name" />
+<TGConnectingPoint num="0" id="4908" />
+<TGConnectingPoint num="1" id="4909" />
+<TGConnectingPoint num="2" id="4910" />
+<TGConnectingPoint num="3" id="4911" />
+<TGConnectingPoint num="4" id="4912" />
+<TGConnectingPoint num="5" id="4913" />
+<TGConnectingPoint num="6" id="4914" />
+<TGConnectingPoint num="7" id="4915" />
+<TGConnectingPoint num="8" id="4916" />
+<TGConnectingPoint num="9" id="4917" />
+<TGConnectingPoint num="10" id="4918" />
+<TGConnectingPoint num="11" id="4919" />
+<TGConnectingPoint num="12" id="4920" />
+<TGConnectingPoint num="13" id="4921" />
+<TGConnectingPoint num="14" id="4922" />
+<TGConnectingPoint num="15" id="4923" />
+<TGConnectingPoint num="16" id="4924" />
+<TGConnectingPoint num="17" id="4925" />
+<TGConnectingPoint num="18" id="4926" />
+<TGConnectingPoint num="19" id="4927" />
+<TGConnectingPoint num="20" id="4928" />
+<TGConnectingPoint num="21" id="4929" />
+<TGConnectingPoint num="22" id="4930" />
+<TGConnectingPoint num="23" id="4931" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="MAPPER_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="4957" >
+<cdparam x="759" y="981" />
+<sizeparam width="219" height="158" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_PSS" value="name" />
+<TGConnectingPoint num="0" id="4933" />
+<TGConnectingPoint num="1" id="4934" />
+<TGConnectingPoint num="2" id="4935" />
+<TGConnectingPoint num="3" id="4936" />
+<TGConnectingPoint num="4" id="4937" />
+<TGConnectingPoint num="5" id="4938" />
+<TGConnectingPoint num="6" id="4939" />
+<TGConnectingPoint num="7" id="4940" />
+<TGConnectingPoint num="8" id="4941" />
+<TGConnectingPoint num="9" id="4942" />
+<TGConnectingPoint num="10" id="4943" />
+<TGConnectingPoint num="11" id="4944" />
+<TGConnectingPoint num="12" id="4945" />
+<TGConnectingPoint num="13" id="4946" />
+<TGConnectingPoint num="14" id="4947" />
+<TGConnectingPoint num="15" id="4948" />
+<TGConnectingPoint num="16" id="4949" />
+<TGConnectingPoint num="17" id="4950" />
+<TGConnectingPoint num="18" id="4951" />
+<TGConnectingPoint num="19" id="4952" />
+<TGConnectingPoint num="20" id="4953" />
+<TGConnectingPoint num="21" id="4954" />
+<TGConnectingPoint num="22" id="4955" />
+<TGConnectingPoint num="23" id="4956" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MAPPER_PSS" />
+<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" MECType="3" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="4982" >
+<cdparam x="845" y="875" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_Bus" value="name" />
+<TGConnectingPoint num="0" id="4958" />
+<TGConnectingPoint num="1" id="4959" />
+<TGConnectingPoint num="2" id="4960" />
+<TGConnectingPoint num="3" id="4961" />
+<TGConnectingPoint num="4" id="4962" />
+<TGConnectingPoint num="5" id="4963" />
+<TGConnectingPoint num="6" id="4964" />
+<TGConnectingPoint num="7" id="4965" />
+<TGConnectingPoint num="8" id="4966" />
+<TGConnectingPoint num="9" id="4967" />
+<TGConnectingPoint num="10" id="4968" />
+<TGConnectingPoint num="11" id="4969" />
+<TGConnectingPoint num="12" id="4970" />
+<TGConnectingPoint num="13" id="4971" />
+<TGConnectingPoint num="14" id="4972" />
+<TGConnectingPoint num="15" id="4973" />
+<TGConnectingPoint num="16" id="4974" />
+<TGConnectingPoint num="17" id="4975" />
+<TGConnectingPoint num="18" id="4976" />
+<TGConnectingPoint num="19" id="4977" />
+<TGConnectingPoint num="20" id="4978" />
+<TGConnectingPoint num="21" id="4979" />
+<TGConnectingPoint num="22" id="4980" />
+<TGConnectingPoint num="23" id="4981" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="MAPPER_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="125" id="4983" >
+<cdparam x="1367" y="660" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1367" y="660" id="4561" />
+<P2  x="1076" y="660" id="4587" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4984" >
+<cdparam x="1147" y="508" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1147" y="508" id="4738" />
+<P2  x="1076" y="635" id="4585" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4985" >
+<cdparam x="1298" y="875" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1249" y="850" id="4859" />
+<P2  x="1076" y="685" id="4590" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4986" >
+<cdparam x="1019" y="805" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="970" y="780" id="4884" />
+<P2  x="864" y="685" id="4598" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4987" >
+<cdparam x="1004" y="531" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="960" y="566" id="4814" />
+<P2  x="864" y="635" id="4592" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4988" >
+<cdparam x="1185" y="660" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1467" y="660" id="4562" />
+<P2  x="1527" y="660" id="4536" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4989" >
+<cdparam x="356" y="788" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="788" id="4614" />
+<P2  x="356" y="832" id="4684" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4990" >
+<cdparam x="554" y="806" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="560" y="807" id="4358" />
+<P2  x="442" y="685" id="4597" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4991" >
+<cdparam x="559" y="863" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="560" y="857" id="4361" />
+<P2  x="481" y="857" id="4687" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4992" >
+<cdparam x="586" y="970" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="541" y="949" id="4634" />
+<P2  x="418" y="882" id="4698" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4993" >
+<cdparam x="165" y="927" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="231" y="938" id="4659" />
+<P2  x="293" y="882" id="4697" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4994" >
+<cdparam x="355" y="576" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="580" id="4464" />
+<P2  x="231" y="635" id="4583" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4995" >
+<cdparam x="355" y="541" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="545" id="4459" />
+<P2  x="356" y="497" id="4714" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4996" >
+<cdparam x="543" y="522" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="543" y="522" id="4388" />
+<P2  x="442" y="635" id="4591" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4997" >
+<cdparam x="536" y="475" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="543" y="472" id="4386" />
+<P2  x="481" y="472" id="4712" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4998" >
+<cdparam x="549" y="337" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="454" y="395" id="4414" />
+<P2  x="418" y="447" id="4717" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4999" >
+<cdparam x="155" y="323" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="155" y="396" id="4439" />
+<P2  x="293" y="447" id="4716" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5000" >
+<cdparam x="357" y="778" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="737" id="4609" />
+<P2  x="231" y="685" id="4588" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5001" >
+<cdparam x="1654" y="758" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1652" y="737" id="4484" />
+<P2  x="1652" y="685" id="4539" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5002" >
+<cdparam x="1651" y="573" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1652" y="586" id="4514" />
+<P2  x="1652" y="635" id="4534" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5003" >
+<cdparam x="959" y="527" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="960" y="531" id="4809" />
+<P2  x="960" y="483" id="4839" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5004" >
+<cdparam x="1140" 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="1147" y="458" id="4736" />
+<P2  x="1085" y="458" id="4837" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5005" >
+<cdparam x="1189" y="374" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1022" y="376" id="4764" />
+<P2  x="1022" y="433" id="4842" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5006" >
+<cdparam x="795" y="360" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="738" y="384" id="4789" />
+<P2  x="897" y="433" id="4841" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5007" >
+<cdparam x="970" y="831" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="970" y="831" id="4889" />
+<P2  x="970" y="875" id="4959" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5008" >
+<cdparam x="1173" y="906" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1174" y="900" id="4861" />
+<P2  x="1095" y="900" id="4962" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5009" >
+<cdparam x="1200" y="1013" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1200" y="978" id="4909" />
+<P2  x="1032" y="925" id="4973" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5010" >
+<cdparam x="779" y="970" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="868" y="981" id="4934" />
+<P2  x="907" y="925" id="4972" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+
+</TMLArchiDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Architecture" nameTab="Mapping_0" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1900" minY="10" maxY="1900" attributes="0" masterClockFrequency="100" >
+<COMPONENT type="1100" id="5035" >
+<cdparam x="560" y="807" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_DMA" value="name" />
+<TGConnectingPoint num="0" id="5011" />
+<TGConnectingPoint num="1" id="5012" />
+<TGConnectingPoint num="2" id="5013" />
+<TGConnectingPoint num="3" id="5014" />
+<TGConnectingPoint num="4" id="5015" />
+<TGConnectingPoint num="5" id="5016" />
+<TGConnectingPoint num="6" id="5017" />
+<TGConnectingPoint num="7" id="5018" />
+<TGConnectingPoint num="8" id="5019" />
+<TGConnectingPoint num="9" id="5020" />
+<TGConnectingPoint num="10" id="5021" />
+<TGConnectingPoint num="11" id="5022" />
+<TGConnectingPoint num="12" id="5023" />
+<TGConnectingPoint num="13" id="5024" />
+<TGConnectingPoint num="14" id="5025" />
+<TGConnectingPoint num="15" id="5026" />
+<TGConnectingPoint num="16" id="5027" />
+<TGConnectingPoint num="17" id="5028" />
+<TGConnectingPoint num="18" id="5029" />
+<TGConnectingPoint num="19" id="5030" />
+<TGConnectingPoint num="20" id="5031" />
+<TGConnectingPoint num="21" id="5032" />
+<TGConnectingPoint num="22" id="5033" />
+<TGConnectingPoint num="23" id="5034" />
+<extraparam>
+<info stereotype="CPURR" nodeName="INTL_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5060" >
+<cdparam x="543" y="422" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_DMA" value="name" />
+<TGConnectingPoint num="0" id="5036" />
+<TGConnectingPoint num="1" id="5037" />
+<TGConnectingPoint num="2" id="5038" />
+<TGConnectingPoint num="3" id="5039" />
+<TGConnectingPoint num="4" id="5040" />
+<TGConnectingPoint num="5" id="5041" />
+<TGConnectingPoint num="6" id="5042" />
+<TGConnectingPoint num="7" id="5043" />
+<TGConnectingPoint num="8" id="5044" />
+<TGConnectingPoint num="9" id="5045" />
+<TGConnectingPoint num="10" id="5046" />
+<TGConnectingPoint num="11" id="5047" />
+<TGConnectingPoint num="12" id="5048" />
+<TGConnectingPoint num="13" id="5049" />
+<TGConnectingPoint num="14" id="5050" />
+<TGConnectingPoint num="15" id="5051" />
+<TGConnectingPoint num="16" id="5052" />
+<TGConnectingPoint num="17" id="5053" />
+<TGConnectingPoint num="18" id="5054" />
+<TGConnectingPoint num="19" id="5055" />
+<TGConnectingPoint num="20" id="5056" />
+<TGConnectingPoint num="21" id="5057" />
+<TGConnectingPoint num="22" id="5058" />
+<TGConnectingPoint num="23" id="5059" />
+<extraparam>
+<info stereotype="CPURR" nodeName="ADAIF_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="5085" >
+<cdparam x="377" y="225" />
+<sizeparam width="200" height="152" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_MSS" value="name" />
+<TGConnectingPoint num="0" id="5061" />
+<TGConnectingPoint num="1" id="5062" />
+<TGConnectingPoint num="2" id="5063" />
+<TGConnectingPoint num="3" id="5064" />
+<TGConnectingPoint num="4" id="5065" />
+<TGConnectingPoint num="5" id="5066" />
+<TGConnectingPoint num="6" id="5067" />
+<TGConnectingPoint num="7" id="5068" />
+<TGConnectingPoint num="8" id="5069" />
+<TGConnectingPoint num="9" id="5070" />
+<TGConnectingPoint num="10" id="5071" />
+<TGConnectingPoint num="11" id="5072" />
+<TGConnectingPoint num="12" id="5073" />
+<TGConnectingPoint num="13" id="5074" />
+<TGConnectingPoint num="14" id="5075" />
+<TGConnectingPoint num="15" id="5076" />
+<TGConnectingPoint num="16" id="5077" />
+<TGConnectingPoint num="17" id="5078" />
+<TGConnectingPoint num="18" id="5079" />
+<TGConnectingPoint num="19" id="5080" />
+<TGConnectingPoint num="20" id="5081" />
+<TGConnectingPoint num="21" id="5082" />
+<TGConnectingPoint num="22" id="5083" />
+<TGConnectingPoint num="23" id="5084" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="ADAIF_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="2" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5119" >
+<cdparam x="90" y="201" />
+<sizeparam width="252" height="181" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_PSS" value="name" />
+<TGConnectingPoint num="0" id="5095" />
+<TGConnectingPoint num="1" id="5096" />
+<TGConnectingPoint num="2" id="5097" />
+<TGConnectingPoint num="3" id="5098" />
+<TGConnectingPoint num="4" id="5099" />
+<TGConnectingPoint num="5" id="5100" />
+<TGConnectingPoint num="6" id="5101" />
+<TGConnectingPoint num="7" id="5102" />
+<TGConnectingPoint num="8" id="5103" />
+<TGConnectingPoint num="9" id="5104" />
+<TGConnectingPoint num="10" id="5105" />
+<TGConnectingPoint num="11" id="5106" />
+<TGConnectingPoint num="12" id="5107" />
+<TGConnectingPoint num="13" id="5108" />
+<TGConnectingPoint num="14" id="5109" />
+<TGConnectingPoint num="15" id="5110" />
+<TGConnectingPoint num="16" id="5111" />
+<TGConnectingPoint num="17" id="5112" />
+<TGConnectingPoint num="18" id="5113" />
+<TGConnectingPoint num="19" id="5114" />
+<TGConnectingPoint num="20" id="5115" />
+<TGConnectingPoint num="21" id="5116" />
+<TGConnectingPoint num="22" id="5117" />
+<TGConnectingPoint num="23" id="5118" />
+<extraparam>
+<info stereotype="CPURR" nodeName="ADAIF_PSS" />
+<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" MECType="4" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="5094" >
+<father id="5119" num="0" />
+<cdparam x="109" y="301" />
+<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Sink" />
+<TGConnectingPoint num="0" id="5086" />
+<TGConnectingPoint num="1" id="5087" />
+<TGConnectingPoint num="2" id="5088" />
+<TGConnectingPoint num="3" id="5089" />
+<TGConnectingPoint num="4" id="5090" />
+<TGConnectingPoint num="5" id="5091" />
+<TGConnectingPoint num="6" id="5092" />
+<TGConnectingPoint num="7" id="5093" />
+<extraparam>
+<info value="Zigbee_TX::X_Sink" taskName="X_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="Adaif operation" fatherComponentMECType="4" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1106" id="5144" >
+<cdparam x="306" y="545" />
+<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_Bridge" value="name" />
+<TGConnectingPoint num="0" id="5120" />
+<TGConnectingPoint num="1" id="5121" />
+<TGConnectingPoint num="2" id="5122" />
+<TGConnectingPoint num="3" id="5123" />
+<TGConnectingPoint num="4" id="5124" />
+<TGConnectingPoint num="5" id="5125" />
+<TGConnectingPoint num="6" id="5126" />
+<TGConnectingPoint num="7" id="5127" />
+<TGConnectingPoint num="8" id="5128" />
+<TGConnectingPoint num="9" id="5129" />
+<TGConnectingPoint num="10" id="5130" />
+<TGConnectingPoint num="11" id="5131" />
+<TGConnectingPoint num="12" id="5132" />
+<TGConnectingPoint num="13" id="5133" />
+<TGConnectingPoint num="14" id="5134" />
+<TGConnectingPoint num="15" id="5135" />
+<TGConnectingPoint num="16" id="5136" />
+<TGConnectingPoint num="17" id="5137" />
+<TGConnectingPoint num="18" id="5138" />
+<TGConnectingPoint num="19" id="5139" />
+<TGConnectingPoint num="20" id="5140" />
+<TGConnectingPoint num="21" id="5141" />
+<TGConnectingPoint num="22" id="5142" />
+<TGConnectingPoint num="23" id="5143" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="ADAIF_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="5169" >
+<cdparam x="1544" y="737" />
+<sizeparam width="216" height="140" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainMemory" value="name" />
+<TGConnectingPoint num="0" id="5145" />
+<TGConnectingPoint num="1" id="5146" />
+<TGConnectingPoint num="2" id="5147" />
+<TGConnectingPoint num="3" id="5148" />
+<TGConnectingPoint num="4" id="5149" />
+<TGConnectingPoint num="5" id="5150" />
+<TGConnectingPoint num="6" id="5151" />
+<TGConnectingPoint num="7" id="5152" />
+<TGConnectingPoint num="8" id="5153" />
+<TGConnectingPoint num="9" id="5154" />
+<TGConnectingPoint num="10" id="5155" />
+<TGConnectingPoint num="11" id="5156" />
+<TGConnectingPoint num="12" id="5157" />
+<TGConnectingPoint num="13" id="5158" />
+<TGConnectingPoint num="14" id="5159" />
+<TGConnectingPoint num="15" id="5160" />
+<TGConnectingPoint num="16" id="5161" />
+<TGConnectingPoint num="17" id="5162" />
+<TGConnectingPoint num="18" id="5163" />
+<TGConnectingPoint num="19" id="5164" />
+<TGConnectingPoint num="20" id="5165" />
+<TGConnectingPoint num="21" id="5166" />
+<TGConnectingPoint num="22" id="5167" />
+<TGConnectingPoint num="23" id="5168" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="MainMemory" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="4" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5266" >
+<cdparam x="1444" y="293" />
+<sizeparam width="417" height="293" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainCPU" value="name" />
+<TGConnectingPoint num="0" id="5242" />
+<TGConnectingPoint num="1" id="5243" />
+<TGConnectingPoint num="2" id="5244" />
+<TGConnectingPoint num="3" id="5245" />
+<TGConnectingPoint num="4" id="5246" />
+<TGConnectingPoint num="5" id="5247" />
+<TGConnectingPoint num="6" id="5248" />
+<TGConnectingPoint num="7" id="5249" />
+<TGConnectingPoint num="8" id="5250" />
+<TGConnectingPoint num="9" id="5251" />
+<TGConnectingPoint num="10" id="5252" />
+<TGConnectingPoint num="11" id="5253" />
+<TGConnectingPoint num="12" id="5254" />
+<TGConnectingPoint num="13" id="5255" />
+<TGConnectingPoint num="14" id="5256" />
+<TGConnectingPoint num="15" id="5257" />
+<TGConnectingPoint num="16" id="5258" />
+<TGConnectingPoint num="17" id="5259" />
+<TGConnectingPoint num="18" id="5260" />
+<TGConnectingPoint num="19" id="5261" />
+<TGConnectingPoint num="20" id="5262" />
+<TGConnectingPoint num="21" id="5263" />
+<TGConnectingPoint num="22" id="5264" />
+<TGConnectingPoint num="23" id="5265" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MainCPU" />
+<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="6" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="5178" >
+<father id="5266" num="0" />
+<cdparam x="1686" y="522" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
+<TGConnectingPoint num="0" id="5170" />
+<TGConnectingPoint num="1" id="5171" />
+<TGConnectingPoint num="2" id="5172" />
+<TGConnectingPoint num="3" id="5173" />
+<TGConnectingPoint num="4" id="5174" />
+<TGConnectingPoint num="5" id="5175" />
+<TGConnectingPoint num="6" id="5176" />
+<TGConnectingPoint num="7" id="5177" />
+<extraparam>
+<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="5187" >
+<father id="5266" num="1" />
+<cdparam x="1685" y="459" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
+<TGConnectingPoint num="0" id="5179" />
+<TGConnectingPoint num="1" id="5180" />
+<TGConnectingPoint num="2" id="5181" />
+<TGConnectingPoint num="3" id="5182" />
+<TGConnectingPoint num="4" id="5183" />
+<TGConnectingPoint num="5" id="5184" />
+<TGConnectingPoint num="6" id="5185" />
+<TGConnectingPoint num="7" id="5186" />
+<extraparam>
+<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="5196" >
+<father id="5266" num="2" />
+<cdparam x="1691" y="345" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
+<TGConnectingPoint num="0" id="5188" />
+<TGConnectingPoint num="1" id="5189" />
+<TGConnectingPoint num="2" id="5190" />
+<TGConnectingPoint num="3" id="5191" />
+<TGConnectingPoint num="4" id="5192" />
+<TGConnectingPoint num="5" id="5193" />
+<TGConnectingPoint num="6" id="5194" />
+<TGConnectingPoint num="7" id="5195" />
+<extraparam>
+<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="5205" >
+<father id="5266" num="3" />
+<cdparam x="1688" y="405" />
+<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
+<TGConnectingPoint num="0" id="5197" />
+<TGConnectingPoint num="1" id="5198" />
+<TGConnectingPoint num="2" id="5199" />
+<TGConnectingPoint num="3" id="5200" />
+<TGConnectingPoint num="4" id="5201" />
+<TGConnectingPoint num="5" id="5202" />
+<TGConnectingPoint num="6" id="5203" />
+<TGConnectingPoint num="7" id="5204" />
+<extraparam>
+<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="5214" >
+<father id="5266" num="4" />
+<cdparam x="1466" y="518" />
+<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="228" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" />
+<TGConnectingPoint num="0" id="5206" />
+<TGConnectingPoint num="1" id="5207" />
+<TGConnectingPoint num="2" id="5208" />
+<TGConnectingPoint num="3" id="5209" />
+<TGConnectingPoint num="4" id="5210" />
+<TGConnectingPoint num="5" id="5211" />
+<TGConnectingPoint num="6" id="5212" />
+<TGConnectingPoint num="7" id="5213" />
+<extraparam>
+<info value="Zigbee_TX::X_Chip2Octet" taskName="X_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="X_Chip2Octet" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="5223" >
+<father id="5266" num="5" />
+<cdparam x="1466" y="456" />
+<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
+<TGConnectingPoint num="0" id="5215" />
+<TGConnectingPoint num="1" id="5216" />
+<TGConnectingPoint num="2" id="5217" />
+<TGConnectingPoint num="3" id="5218" />
+<TGConnectingPoint num="4" id="5219" />
+<TGConnectingPoint num="5" id="5220" />
+<TGConnectingPoint num="6" id="5221" />
+<TGConnectingPoint num="7" id="5222" />
+<extraparam>
+<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="5232" >
+<father id="5266" num="6" />
+<cdparam x="1466" y="395" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
+<TGConnectingPoint num="0" id="5224" />
+<TGConnectingPoint num="1" id="5225" />
+<TGConnectingPoint num="2" id="5226" />
+<TGConnectingPoint num="3" id="5227" />
+<TGConnectingPoint num="4" id="5228" />
+<TGConnectingPoint num="5" id="5229" />
+<TGConnectingPoint num="6" id="5230" />
+<TGConnectingPoint num="7" id="5231" />
+<extraparam>
+<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="5241" >
+<father id="5266" num="7" />
+<cdparam x="1465" y="339" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
+<TGConnectingPoint num="0" id="5233" />
+<TGConnectingPoint num="1" id="5234" />
+<TGConnectingPoint num="2" id="5235" />
+<TGConnectingPoint num="3" id="5236" />
+<TGConnectingPoint num="4" id="5237" />
+<TGConnectingPoint num="5" id="5238" />
+<TGConnectingPoint num="6" id="5239" />
+<TGConnectingPoint num="7" id="5240" />
+<extraparam>
+<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1102" id="5291" >
+<cdparam x="1527" y="635" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainBus" value="name" />
+<TGConnectingPoint num="0" id="5267" />
+<TGConnectingPoint num="1" id="5268" />
+<TGConnectingPoint num="2" id="5269" />
+<TGConnectingPoint num="3" id="5270" />
+<TGConnectingPoint num="4" id="5271" />
+<TGConnectingPoint num="5" id="5272" />
+<TGConnectingPoint num="6" id="5273" />
+<TGConnectingPoint num="7" id="5274" />
+<TGConnectingPoint num="8" id="5275" />
+<TGConnectingPoint num="9" id="5276" />
+<TGConnectingPoint num="10" id="5277" />
+<TGConnectingPoint num="11" id="5278" />
+<TGConnectingPoint num="12" id="5279" />
+<TGConnectingPoint num="13" id="5280" />
+<TGConnectingPoint num="14" id="5281" />
+<TGConnectingPoint num="15" id="5282" />
+<TGConnectingPoint num="16" id="5283" />
+<TGConnectingPoint num="17" id="5284" />
+<TGConnectingPoint num="18" id="5285" />
+<TGConnectingPoint num="19" id="5286" />
+<TGConnectingPoint num="20" id="5287" />
+<TGConnectingPoint num="21" id="5288" />
+<TGConnectingPoint num="22" id="5289" />
+<TGConnectingPoint num="23" id="5290" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="MainBus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="5316" >
+<cdparam x="1367" y="610" />
+<sizeparam width="100" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainBridge" value="name" />
+<TGConnectingPoint num="0" id="5292" />
+<TGConnectingPoint num="1" id="5293" />
+<TGConnectingPoint num="2" id="5294" />
+<TGConnectingPoint num="3" id="5295" />
+<TGConnectingPoint num="4" id="5296" />
+<TGConnectingPoint num="5" id="5297" />
+<TGConnectingPoint num="6" id="5298" />
+<TGConnectingPoint num="7" id="5299" />
+<TGConnectingPoint num="8" id="5300" />
+<TGConnectingPoint num="9" id="5301" />
+<TGConnectingPoint num="10" id="5302" />
+<TGConnectingPoint num="11" id="5303" />
+<TGConnectingPoint num="12" id="5304" />
+<TGConnectingPoint num="13" id="5305" />
+<TGConnectingPoint num="14" id="5306" />
+<TGConnectingPoint num="15" id="5307" />
+<TGConnectingPoint num="16" id="5308" />
+<TGConnectingPoint num="17" id="5309" />
+<TGConnectingPoint num="18" id="5310" />
+<TGConnectingPoint num="19" id="5311" />
+<TGConnectingPoint num="20" id="5312" />
+<TGConnectingPoint num="21" id="5313" />
+<TGConnectingPoint num="22" id="5314" />
+<TGConnectingPoint num="23" id="5315" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="MainBridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="5341" >
+<cdparam x="354" y="618" />
+<sizeparam width="845" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="Crossbar" value="name" />
+<TGConnectingPoint num="0" id="5317" />
+<TGConnectingPoint num="1" id="5318" />
+<TGConnectingPoint num="2" id="5319" />
+<TGConnectingPoint num="3" id="5320" />
+<TGConnectingPoint num="4" id="5321" />
+<TGConnectingPoint num="5" id="5322" />
+<TGConnectingPoint num="6" id="5323" />
+<TGConnectingPoint num="7" id="5324" />
+<TGConnectingPoint num="8" id="5325" />
+<TGConnectingPoint num="9" id="5326" />
+<TGConnectingPoint num="10" id="5327" />
+<TGConnectingPoint num="11" id="5328" />
+<TGConnectingPoint num="12" id="5329" />
+<TGConnectingPoint num="13" id="5330" />
+<TGConnectingPoint num="14" id="5331" />
+<TGConnectingPoint num="15" id="5332" />
+<TGConnectingPoint num="16" id="5333" />
+<TGConnectingPoint num="17" id="5334" />
+<TGConnectingPoint num="18" id="5335" />
+<TGConnectingPoint num="19" id="5336" />
+<TGConnectingPoint num="20" id="5337" />
+<TGConnectingPoint num="21" id="5338" />
+<TGConnectingPoint num="22" id="5339" />
+<TGConnectingPoint num="23" id="5340" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="Crossbar" />
+<attributes byteDataSize="8"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="5366" >
+<cdparam x="306" y="737" />
+<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_Bridge" value="name" />
+<TGConnectingPoint num="0" id="5342" />
+<TGConnectingPoint num="1" id="5343" />
+<TGConnectingPoint num="2" id="5344" />
+<TGConnectingPoint num="3" id="5345" />
+<TGConnectingPoint num="4" id="5346" />
+<TGConnectingPoint num="5" id="5347" />
+<TGConnectingPoint num="6" id="5348" />
+<TGConnectingPoint num="7" id="5349" />
+<TGConnectingPoint num="8" id="5350" />
+<TGConnectingPoint num="9" id="5351" />
+<TGConnectingPoint num="10" id="5352" />
+<TGConnectingPoint num="11" id="5353" />
+<TGConnectingPoint num="12" id="5354" />
+<TGConnectingPoint num="13" id="5355" />
+<TGConnectingPoint num="14" id="5356" />
+<TGConnectingPoint num="15" id="5357" />
+<TGConnectingPoint num="16" id="5358" />
+<TGConnectingPoint num="17" id="5359" />
+<TGConnectingPoint num="18" id="5360" />
+<TGConnectingPoint num="19" id="5361" />
+<TGConnectingPoint num="20" id="5362" />
+<TGConnectingPoint num="21" id="5363" />
+<TGConnectingPoint num="22" id="5364" />
+<TGConnectingPoint num="23" id="5365" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="INTL_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="5391" >
+<cdparam x="376" y="949" />
+<sizeparam width="331" height="135" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_MSS" value="name" />
+<TGConnectingPoint num="0" id="5367" />
+<TGConnectingPoint num="1" id="5368" />
+<TGConnectingPoint num="2" id="5369" />
+<TGConnectingPoint num="3" id="5370" />
+<TGConnectingPoint num="4" id="5371" />
+<TGConnectingPoint num="5" id="5372" />
+<TGConnectingPoint num="6" id="5373" />
+<TGConnectingPoint num="7" id="5374" />
+<TGConnectingPoint num="8" id="5375" />
+<TGConnectingPoint num="9" id="5376" />
+<TGConnectingPoint num="10" id="5377" />
+<TGConnectingPoint num="11" id="5378" />
+<TGConnectingPoint num="12" id="5379" />
+<TGConnectingPoint num="13" id="5380" />
+<TGConnectingPoint num="14" id="5381" />
+<TGConnectingPoint num="15" id="5382" />
+<TGConnectingPoint num="16" id="5383" />
+<TGConnectingPoint num="17" id="5384" />
+<TGConnectingPoint num="18" id="5385" />
+<TGConnectingPoint num="19" id="5386" />
+<TGConnectingPoint num="20" id="5387" />
+<TGConnectingPoint num="21" id="5388" />
+<TGConnectingPoint num="22" id="5389" />
+<TGConnectingPoint num="23" id="5390" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="INTL_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="3" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5425" >
+<cdparam x="91" y="938" />
+<sizeparam width="234" height="140" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_PSS" value="name" />
+<TGConnectingPoint num="0" id="5401" />
+<TGConnectingPoint num="1" id="5402" />
+<TGConnectingPoint num="2" id="5403" />
+<TGConnectingPoint num="3" id="5404" />
+<TGConnectingPoint num="4" id="5405" />
+<TGConnectingPoint num="5" id="5406" />
+<TGConnectingPoint num="6" id="5407" />
+<TGConnectingPoint num="7" id="5408" />
+<TGConnectingPoint num="8" id="5409" />
+<TGConnectingPoint num="9" id="5410" />
+<TGConnectingPoint num="10" id="5411" />
+<TGConnectingPoint num="11" id="5412" />
+<TGConnectingPoint num="12" id="5413" />
+<TGConnectingPoint num="13" id="5414" />
+<TGConnectingPoint num="14" id="5415" />
+<TGConnectingPoint num="15" id="5416" />
+<TGConnectingPoint num="16" id="5417" />
+<TGConnectingPoint num="17" id="5418" />
+<TGConnectingPoint num="18" id="5419" />
+<TGConnectingPoint num="19" id="5420" />
+<TGConnectingPoint num="20" id="5421" />
+<TGConnectingPoint num="21" id="5422" />
+<TGConnectingPoint num="22" id="5423" />
+<TGConnectingPoint num="23" id="5424" />
+<extraparam>
+<info stereotype="CPURR" nodeName="INTL_PSS" />
+<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" MECType="2" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="5400" >
+<father id="5425" num="0" />
+<cdparam x="105" y="993" />
+<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="45" minY="0" maxY="100" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" />
+<TGConnectingPoint num="0" id="5392" />
+<TGConnectingPoint num="1" id="5393" />
+<TGConnectingPoint num="2" id="5394" />
+<TGConnectingPoint num="3" id="5395" />
+<TGConnectingPoint num="4" id="5396" />
+<TGConnectingPoint num="5" id="5397" />
+<TGConnectingPoint num="6" id="5398" />
+<TGConnectingPoint num="7" id="5399" />
+<extraparam>
+<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="Interleaver operation" fatherComponentMECType="2" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1102" id="5450" >
+<cdparam x="231" y="832" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_Bus" value="name" />
+<TGConnectingPoint num="0" id="5426" />
+<TGConnectingPoint num="1" id="5427" />
+<TGConnectingPoint num="2" id="5428" />
+<TGConnectingPoint num="3" id="5429" />
+<TGConnectingPoint num="4" id="5430" />
+<TGConnectingPoint num="5" id="5431" />
+<TGConnectingPoint num="6" id="5432" />
+<TGConnectingPoint num="7" id="5433" />
+<TGConnectingPoint num="8" id="5434" />
+<TGConnectingPoint num="9" id="5435" />
+<TGConnectingPoint num="10" id="5436" />
+<TGConnectingPoint num="11" id="5437" />
+<TGConnectingPoint num="12" id="5438" />
+<TGConnectingPoint num="13" id="5439" />
+<TGConnectingPoint num="14" id="5440" />
+<TGConnectingPoint num="15" id="5441" />
+<TGConnectingPoint num="16" id="5442" />
+<TGConnectingPoint num="17" id="5443" />
+<TGConnectingPoint num="18" id="5444" />
+<TGConnectingPoint num="19" id="5445" />
+<TGConnectingPoint num="20" id="5446" />
+<TGConnectingPoint num="21" id="5447" />
+<TGConnectingPoint num="22" id="5448" />
+<TGConnectingPoint num="23" id="5449" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="INTL_Bus" />
+<attributes byteDataSize="8"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="5475" >
+<cdparam x="231" y="447" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_Bus" value="name" />
+<TGConnectingPoint num="0" id="5451" />
+<TGConnectingPoint num="1" id="5452" />
+<TGConnectingPoint num="2" id="5453" />
+<TGConnectingPoint num="3" id="5454" />
+<TGConnectingPoint num="4" id="5455" />
+<TGConnectingPoint num="5" id="5456" />
+<TGConnectingPoint num="6" id="5457" />
+<TGConnectingPoint num="7" id="5458" />
+<TGConnectingPoint num="8" id="5459" />
+<TGConnectingPoint num="9" id="5460" />
+<TGConnectingPoint num="10" id="5461" />
+<TGConnectingPoint num="11" id="5462" />
+<TGConnectingPoint num="12" id="5463" />
+<TGConnectingPoint num="13" id="5464" />
+<TGConnectingPoint num="14" id="5465" />
+<TGConnectingPoint num="15" id="5466" />
+<TGConnectingPoint num="16" id="5467" />
+<TGConnectingPoint num="17" id="5468" />
+<TGConnectingPoint num="18" id="5469" />
+<TGConnectingPoint num="19" id="5470" />
+<TGConnectingPoint num="20" id="5471" />
+<TGConnectingPoint num="21" id="5472" />
+<TGConnectingPoint num="22" id="5473" />
+<TGConnectingPoint num="23" id="5474" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="ADAIF_Bus" />
+<attributes byteDataSize="8"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5500" >
+<cdparam x="1147" y="408" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_DMA" value="name" />
+<TGConnectingPoint num="0" id="5476" />
+<TGConnectingPoint num="1" id="5477" />
+<TGConnectingPoint num="2" id="5478" />
+<TGConnectingPoint num="3" id="5479" />
+<TGConnectingPoint num="4" id="5480" />
+<TGConnectingPoint num="5" id="5481" />
+<TGConnectingPoint num="6" id="5482" />
+<TGConnectingPoint num="7" id="5483" />
+<TGConnectingPoint num="8" id="5484" />
+<TGConnectingPoint num="9" id="5485" />
+<TGConnectingPoint num="10" id="5486" />
+<TGConnectingPoint num="11" id="5487" />
+<TGConnectingPoint num="12" id="5488" />
+<TGConnectingPoint num="13" id="5489" />
+<TGConnectingPoint num="14" id="5490" />
+<TGConnectingPoint num="15" id="5491" />
+<TGConnectingPoint num="16" id="5492" />
+<TGConnectingPoint num="17" id="5493" />
+<TGConnectingPoint num="18" id="5494" />
+<TGConnectingPoint num="19" id="5495" />
+<TGConnectingPoint num="20" id="5496" />
+<TGConnectingPoint num="21" id="5497" />
+<TGConnectingPoint num="22" id="5498" />
+<TGConnectingPoint num="23" id="5499" />
+<extraparam>
+<info stereotype="CPURR" nodeName="FEP_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="5525" >
+<cdparam x="991" y="187" />
+<sizeparam width="255" height="183" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_MSS" value="name" />
+<TGConnectingPoint num="0" id="5501" />
+<TGConnectingPoint num="1" id="5502" />
+<TGConnectingPoint num="2" id="5503" />
+<TGConnectingPoint num="3" id="5504" />
+<TGConnectingPoint num="4" id="5505" />
+<TGConnectingPoint num="5" id="5506" />
+<TGConnectingPoint num="6" id="5507" />
+<TGConnectingPoint num="7" id="5508" />
+<TGConnectingPoint num="8" id="5509" />
+<TGConnectingPoint num="9" id="5510" />
+<TGConnectingPoint num="10" id="5511" />
+<TGConnectingPoint num="11" id="5512" />
+<TGConnectingPoint num="12" id="5513" />
+<TGConnectingPoint num="13" id="5514" />
+<TGConnectingPoint num="14" id="5515" />
+<TGConnectingPoint num="15" id="5516" />
+<TGConnectingPoint num="16" id="5517" />
+<TGConnectingPoint num="17" id="5518" />
+<TGConnectingPoint num="18" id="5519" />
+<TGConnectingPoint num="19" id="5520" />
+<TGConnectingPoint num="20" id="5521" />
+<TGConnectingPoint num="21" id="5522" />
+<TGConnectingPoint num="22" id="5523" />
+<TGConnectingPoint num="23" id="5524" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="FEP_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="0" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5577" >
+<cdparam x="680" y="193" />
+<sizeparam width="238" height="185" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_PSS" value="name" />
+<TGConnectingPoint num="0" id="5553" />
+<TGConnectingPoint num="1" id="5554" />
+<TGConnectingPoint num="2" id="5555" />
+<TGConnectingPoint num="3" id="5556" />
+<TGConnectingPoint num="4" id="5557" />
+<TGConnectingPoint num="5" id="5558" />
+<TGConnectingPoint num="6" id="5559" />
+<TGConnectingPoint num="7" id="5560" />
+<TGConnectingPoint num="8" id="5561" />
+<TGConnectingPoint num="9" id="5562" />
+<TGConnectingPoint num="10" id="5563" />
+<TGConnectingPoint num="11" id="5564" />
+<TGConnectingPoint num="12" id="5565" />
+<TGConnectingPoint num="13" id="5566" />
+<TGConnectingPoint num="14" id="5567" />
+<TGConnectingPoint num="15" id="5568" />
+<TGConnectingPoint num="16" id="5569" />
+<TGConnectingPoint num="17" id="5570" />
+<TGConnectingPoint num="18" id="5571" />
+<TGConnectingPoint num="19" id="5572" />
+<TGConnectingPoint num="20" id="5573" />
+<TGConnectingPoint num="21" id="5574" />
+<TGConnectingPoint num="22" id="5575" />
+<TGConnectingPoint num="23" id="5576" />
+<extraparam>
+<info stereotype="CPURR" nodeName="FEP_PSS" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="2" execcTime="1" clockRatio="1" MECType="1" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="5534" >
+<father id="5577" num="0" />
+<cdparam x="700" y="233" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
+<TGConnectingPoint num="0" id="5526" />
+<TGConnectingPoint num="1" id="5527" />
+<TGConnectingPoint num="2" id="5528" />
+<TGConnectingPoint num="3" id="5529" />
+<TGConnectingPoint num="4" id="5530" />
+<TGConnectingPoint num="5" id="5531" />
+<TGConnectingPoint num="6" id="5532" />
+<TGConnectingPoint num="7" id="5533" />
+<extraparam>
+<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="5543" >
+<father id="5577" num="1" />
+<cdparam x="701" y="329" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_Q" />
+<TGConnectingPoint num="0" id="5535" />
+<TGConnectingPoint num="1" id="5536" />
+<TGConnectingPoint num="2" id="5537" />
+<TGConnectingPoint num="3" id="5538" />
+<TGConnectingPoint num="4" id="5539" />
+<TGConnectingPoint num="5" id="5540" />
+<TGConnectingPoint num="6" id="5541" />
+<TGConnectingPoint num="7" id="5542" />
+<extraparam>
+<info value="Zigbee_TX::X_CWP_Q" taskName="X_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="5552" >
+<father id="5577" num="2" />
+<cdparam x="732" y="283" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
+<TGConnectingPoint num="0" id="5544" />
+<TGConnectingPoint num="1" id="5545" />
+<TGConnectingPoint num="2" id="5546" />
+<TGConnectingPoint num="3" id="5547" />
+<TGConnectingPoint num="4" id="5548" />
+<TGConnectingPoint num="5" id="5549" />
+<TGConnectingPoint num="6" id="5550" />
+<TGConnectingPoint num="7" id="5551" />
+<extraparam>
+<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1106" id="5602" >
+<cdparam x="910" y="531" />
+<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_Bridge" value="name" />
+<TGConnectingPoint num="0" id="5578" />
+<TGConnectingPoint num="1" id="5579" />
+<TGConnectingPoint num="2" id="5580" />
+<TGConnectingPoint num="3" id="5581" />
+<TGConnectingPoint num="4" id="5582" />
+<TGConnectingPoint num="5" id="5583" />
+<TGConnectingPoint num="6" id="5584" />
+<TGConnectingPoint num="7" id="5585" />
+<TGConnectingPoint num="8" id="5586" />
+<TGConnectingPoint num="9" id="5587" />
+<TGConnectingPoint num="10" id="5588" />
+<TGConnectingPoint num="11" id="5589" />
+<TGConnectingPoint num="12" id="5590" />
+<TGConnectingPoint num="13" id="5591" />
+<TGConnectingPoint num="14" id="5592" />
+<TGConnectingPoint num="15" id="5593" />
+<TGConnectingPoint num="16" id="5594" />
+<TGConnectingPoint num="17" id="5595" />
+<TGConnectingPoint num="18" id="5596" />
+<TGConnectingPoint num="19" id="5597" />
+<TGConnectingPoint num="20" id="5598" />
+<TGConnectingPoint num="21" id="5599" />
+<TGConnectingPoint num="22" id="5600" />
+<TGConnectingPoint num="23" id="5601" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="FEP_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="5627" >
+<cdparam x="835" y="433" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_Bus" value="name" />
+<TGConnectingPoint num="0" id="5603" />
+<TGConnectingPoint num="1" id="5604" />
+<TGConnectingPoint num="2" id="5605" />
+<TGConnectingPoint num="3" id="5606" />
+<TGConnectingPoint num="4" id="5607" />
+<TGConnectingPoint num="5" id="5608" />
+<TGConnectingPoint num="6" id="5609" />
+<TGConnectingPoint num="7" id="5610" />
+<TGConnectingPoint num="8" id="5611" />
+<TGConnectingPoint num="9" id="5612" />
+<TGConnectingPoint num="10" id="5613" />
+<TGConnectingPoint num="11" id="5614" />
+<TGConnectingPoint num="12" id="5615" />
+<TGConnectingPoint num="13" id="5616" />
+<TGConnectingPoint num="14" id="5617" />
+<TGConnectingPoint num="15" id="5618" />
+<TGConnectingPoint num="16" id="5619" />
+<TGConnectingPoint num="17" id="5620" />
+<TGConnectingPoint num="18" id="5621" />
+<TGConnectingPoint num="19" id="5622" />
+<TGConnectingPoint num="20" id="5623" />
+<TGConnectingPoint num="21" id="5624" />
+<TGConnectingPoint num="22" id="5625" />
+<TGConnectingPoint num="23" id="5626" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="FEP_Bus" />
+<attributes byteDataSize="8"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5652" >
+<cdparam x="1141" y="748" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_DMA" value="name" />
+<TGConnectingPoint num="0" id="5628" />
+<TGConnectingPoint num="1" id="5629" />
+<TGConnectingPoint num="2" id="5630" />
+<TGConnectingPoint num="3" id="5631" />
+<TGConnectingPoint num="4" id="5632" />
+<TGConnectingPoint num="5" id="5633" />
+<TGConnectingPoint num="6" id="5634" />
+<TGConnectingPoint num="7" id="5635" />
+<TGConnectingPoint num="8" id="5636" />
+<TGConnectingPoint num="9" id="5637" />
+<TGConnectingPoint num="10" id="5638" />
+<TGConnectingPoint num="11" id="5639" />
+<TGConnectingPoint num="12" id="5640" />
+<TGConnectingPoint num="13" id="5641" />
+<TGConnectingPoint num="14" id="5642" />
+<TGConnectingPoint num="15" id="5643" />
+<TGConnectingPoint num="16" id="5644" />
+<TGConnectingPoint num="17" id="5645" />
+<TGConnectingPoint num="18" id="5646" />
+<TGConnectingPoint num="19" id="5647" />
+<TGConnectingPoint num="20" id="5648" />
+<TGConnectingPoint num="21" id="5649" />
+<TGConnectingPoint num="22" id="5650" />
+<TGConnectingPoint num="23" id="5651" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MAPPER_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="5677" >
+<cdparam x="920" y="780" />
+<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_Bridge" value="name" />
+<TGConnectingPoint num="0" id="5653" />
+<TGConnectingPoint num="1" id="5654" />
+<TGConnectingPoint num="2" id="5655" />
+<TGConnectingPoint num="3" id="5656" />
+<TGConnectingPoint num="4" id="5657" />
+<TGConnectingPoint num="5" id="5658" />
+<TGConnectingPoint num="6" id="5659" />
+<TGConnectingPoint num="7" id="5660" />
+<TGConnectingPoint num="8" id="5661" />
+<TGConnectingPoint num="9" id="5662" />
+<TGConnectingPoint num="10" id="5663" />
+<TGConnectingPoint num="11" id="5664" />
+<TGConnectingPoint num="12" id="5665" />
+<TGConnectingPoint num="13" id="5666" />
+<TGConnectingPoint num="14" id="5667" />
+<TGConnectingPoint num="15" id="5668" />
+<TGConnectingPoint num="16" id="5669" />
+<TGConnectingPoint num="17" id="5670" />
+<TGConnectingPoint num="18" id="5671" />
+<TGConnectingPoint num="19" id="5672" />
+<TGConnectingPoint num="20" id="5673" />
+<TGConnectingPoint num="21" id="5674" />
+<TGConnectingPoint num="22" id="5675" />
+<TGConnectingPoint num="23" id="5676" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="MAPPER_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="5702" >
+<cdparam x="1043" y="978" />
+<sizeparam width="314" height="125" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_MSS" value="name" />
+<TGConnectingPoint num="0" id="5678" />
+<TGConnectingPoint num="1" id="5679" />
+<TGConnectingPoint num="2" id="5680" />
+<TGConnectingPoint num="3" id="5681" />
+<TGConnectingPoint num="4" id="5682" />
+<TGConnectingPoint num="5" id="5683" />
+<TGConnectingPoint num="6" id="5684" />
+<TGConnectingPoint num="7" id="5685" />
+<TGConnectingPoint num="8" id="5686" />
+<TGConnectingPoint num="9" id="5687" />
+<TGConnectingPoint num="10" id="5688" />
+<TGConnectingPoint num="11" id="5689" />
+<TGConnectingPoint num="12" id="5690" />
+<TGConnectingPoint num="13" id="5691" />
+<TGConnectingPoint num="14" id="5692" />
+<TGConnectingPoint num="15" id="5693" />
+<TGConnectingPoint num="16" id="5694" />
+<TGConnectingPoint num="17" id="5695" />
+<TGConnectingPoint num="18" id="5696" />
+<TGConnectingPoint num="19" id="5697" />
+<TGConnectingPoint num="20" id="5698" />
+<TGConnectingPoint num="21" id="5699" />
+<TGConnectingPoint num="22" id="5700" />
+<TGConnectingPoint num="23" id="5701" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="MAPPER_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5736" >
+<cdparam x="734" y="981" />
+<sizeparam width="244" height="158" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_PSS" value="name" />
+<TGConnectingPoint num="0" id="5712" />
+<TGConnectingPoint num="1" id="5713" />
+<TGConnectingPoint num="2" id="5714" />
+<TGConnectingPoint num="3" id="5715" />
+<TGConnectingPoint num="4" id="5716" />
+<TGConnectingPoint num="5" id="5717" />
+<TGConnectingPoint num="6" id="5718" />
+<TGConnectingPoint num="7" id="5719" />
+<TGConnectingPoint num="8" id="5720" />
+<TGConnectingPoint num="9" id="5721" />
+<TGConnectingPoint num="10" id="5722" />
+<TGConnectingPoint num="11" id="5723" />
+<TGConnectingPoint num="12" id="5724" />
+<TGConnectingPoint num="13" id="5725" />
+<TGConnectingPoint num="14" id="5726" />
+<TGConnectingPoint num="15" id="5727" />
+<TGConnectingPoint num="16" id="5728" />
+<TGConnectingPoint num="17" id="5729" />
+<TGConnectingPoint num="18" id="5730" />
+<TGConnectingPoint num="19" id="5731" />
+<TGConnectingPoint num="20" id="5732" />
+<TGConnectingPoint num="21" id="5733" />
+<TGConnectingPoint num="22" id="5734" />
+<TGConnectingPoint num="23" id="5735" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MAPPER_PSS" />
+<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" MECType="3" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="5711" >
+<father id="5736" num="0" />
+<cdparam x="743" y="1030" />
+<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="21" minY="0" maxY="118" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Symbol2ChipSeq" />
+<TGConnectingPoint num="0" id="5703" />
+<TGConnectingPoint num="1" id="5704" />
+<TGConnectingPoint num="2" id="5705" />
+<TGConnectingPoint num="3" id="5706" />
+<TGConnectingPoint num="4" id="5707" />
+<TGConnectingPoint num="5" id="5708" />
+<TGConnectingPoint num="6" id="5709" />
+<TGConnectingPoint num="7" id="5710" />
+<extraparam>
+<info value="Zigbee_TX::X_Symbol2ChipSeq" taskName="X_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="Mapper operation" fatherComponentMECType="3" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1102" id="5761" >
+<cdparam x="845" y="875" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_Bus" value="name" />
+<TGConnectingPoint num="0" id="5737" />
+<TGConnectingPoint num="1" id="5738" />
+<TGConnectingPoint num="2" id="5739" />
+<TGConnectingPoint num="3" id="5740" />
+<TGConnectingPoint num="4" id="5741" />
+<TGConnectingPoint num="5" id="5742" />
+<TGConnectingPoint num="6" id="5743" />
+<TGConnectingPoint num="7" id="5744" />
+<TGConnectingPoint num="8" id="5745" />
+<TGConnectingPoint num="9" id="5746" />
+<TGConnectingPoint num="10" id="5747" />
+<TGConnectingPoint num="11" id="5748" />
+<TGConnectingPoint num="12" id="5749" />
+<TGConnectingPoint num="13" id="5750" />
+<TGConnectingPoint num="14" id="5751" />
+<TGConnectingPoint num="15" id="5752" />
+<TGConnectingPoint num="16" id="5753" />
+<TGConnectingPoint num="17" id="5754" />
+<TGConnectingPoint num="18" id="5755" />
+<TGConnectingPoint num="19" id="5756" />
+<TGConnectingPoint num="20" id="5757" />
+<TGConnectingPoint num="21" id="5758" />
+<TGConnectingPoint num="22" id="5759" />
+<TGConnectingPoint num="23" id="5760" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="MAPPER_Bus" />
+<attributes byteDataSize="8"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1108" id="5779" >
+<cdparam x="106" y="1266" />
+<sizeparam width="419" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_Symbol2ChipSeq_Chips2Octet" value="CP0" />
+<TGConnectingPoint num="0" id="5771" />
+<TGConnectingPoint num="1" id="5772" />
+<TGConnectingPoint num="2" id="5773" />
+<TGConnectingPoint num="3" id="5774" />
+<TGConnectingPoint num="4" id="5775" />
+<TGConnectingPoint num="5" id="5776" />
+<TGConnectingPoint num="6" id="5777" />
+<TGConnectingPoint num="7" id="5778" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="MAPPER_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappedAttributes type="int" name="counter" value="1" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="5770" >
+<father id="5779" num="0" />
+<cdparam x="295" y="1302" />
+<sizeparam width="212" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="207" minY="0" maxY="45" />
+<infoparam name="TGComponent" value="Zigbee_TX::chip2octet_ch_in" />
+<TGConnectingPoint num="0" id="5762" />
+<TGConnectingPoint num="1" id="5763" />
+<TGConnectingPoint num="2" id="5764" />
+<TGConnectingPoint num="3" id="5765" />
+<TGConnectingPoint num="4" id="5766" />
+<TGConnectingPoint num="5" id="5767" />
+<TGConnectingPoint num="6" id="5768" />
+<TGConnectingPoint num="7" id="5769" />
+<extraparam>
+<info value="Zigbee_TX::chip2octet_ch_in" portName="chip2octet_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="INTL_MSS" bufferType="3" packedBinaryIn="" width="" bitInOffset="" inputOffset="" packedBinaryOut="" bitOutOffset="" outputOffset="" offsetPerm="" lengthPerm="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1108" id="5797" >
+<cdparam x="105" y="1396" />
+<sizeparam width="405" height="88" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_Chip2Octet_CWL" value="CP0" />
+<TGConnectingPoint num="0" id="5789" />
+<TGConnectingPoint num="1" id="5790" />
+<TGConnectingPoint num="2" id="5791" />
+<TGConnectingPoint num="3" id="5792" />
+<TGConnectingPoint num="4" id="5793" />
+<TGConnectingPoint num="5" id="5794" />
+<TGConnectingPoint num="6" id="5795" />
+<TGConnectingPoint num="7" id="5796" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="INTL_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappedAttributes type="int" name="counter" value="1" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="5788" >
+<father id="5797" num="0" />
+<cdparam x="327" y="1437" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="241" minY="0" maxY="48" />
+<infoparam name="TGComponent" value="Zigbee_TX::cwl_ch_in" />
+<TGConnectingPoint num="0" id="5780" />
+<TGConnectingPoint num="1" id="5781" />
+<TGConnectingPoint num="2" id="5782" />
+<TGConnectingPoint num="3" id="5783" />
+<TGConnectingPoint num="4" id="5784" />
+<TGConnectingPoint num="5" id="5785" />
+<TGConnectingPoint num="6" id="5786" />
+<TGConnectingPoint num="7" id="5787" />
+<extraparam>
+<info value="Zigbee_TX::cwl_ch_in" portName="cwl_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="FEP_MSS" bufferType="0" baseAddress="0x2" numSamples="1" bank="0" dataType="int8" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1108" id="5815" >
+<cdparam x="626" y="1227" />
+<sizeparam width="295" height="145" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_sink" value="CP0" />
+<TGConnectingPoint num="0" id="5807" />
+<TGConnectingPoint num="1" id="5808" />
+<TGConnectingPoint num="2" id="5809" />
+<TGConnectingPoint num="3" id="5810" />
+<TGConnectingPoint num="4" id="5811" />
+<TGConnectingPoint num="5" id="5812" />
+<TGConnectingPoint num="6" id="5813" />
+<TGConnectingPoint num="7" id="5814" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_sink" cpMEC="Double DMA" transferType1="0" transferType2="0" />
+<attributes reference="Double_DMA_transfer" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_2" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_2" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_2" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_2" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_5" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_6" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_7" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_8" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappedAttributes type="int" name="counter1" value="2" />
+<mappedAttributes type="int" name="counter2" value="2" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="5806" >
+<father id="5815" num="0" />
+<cdparam x="700" y="1290" />
+<sizeparam width="170" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="125" minY="0" maxY="105" />
+<infoparam name="TGComponent" value="Zigbee_TX::sink_ch_in" />
+<TGConnectingPoint num="0" id="5798" />
+<TGConnectingPoint num="1" id="5799" />
+<TGConnectingPoint num="2" id="5800" />
+<TGConnectingPoint num="3" id="5801" />
+<TGConnectingPoint num="4" id="5802" />
+<TGConnectingPoint num="5" id="5803" />
+<TGConnectingPoint num="6" id="5804" />
+<TGConnectingPoint num="7" id="5805" />
+<extraparam>
+<info value="Zigbee_TX::sink_ch_in" portName="sink_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="ADAIF_MSS" bufferType="2" numSamples="1" baseAddress="0x2" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1108" id="5833" >
+<cdparam x="106" y="1143" />
+<sizeparam width="421" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_Source_to_Bits2Symbol" value="CP0" />
+<TGConnectingPoint num="0" id="5825" />
+<TGConnectingPoint num="1" id="5826" />
+<TGConnectingPoint num="2" id="5827" />
+<TGConnectingPoint num="3" id="5828" />
+<TGConnectingPoint num="4" id="5829" />
+<TGConnectingPoint num="5" id="5830" />
+<TGConnectingPoint num="6" id="5831" />
+<TGConnectingPoint num="7" id="5832" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="Memory Copy" transferType1="0" transferType2="0" />
+<attributes reference="CP_Memory_Copy" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="CPU_Controller" architectureUnit="MainCPU" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Dst_Storage_Instance" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Src_Storage_Instance" architectureUnit="MainMemory" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance2" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappedAttributes type="int" name="counter" value="8" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="5824" >
+<father id="5833" num="0" />
+<cdparam x="157" y="1179" />
+<sizeparam width="247" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" />
+<infoparam name="TGComponent" value="Zigbee_TX::symbol2ChipSeq_ch_in" />
+<TGConnectingPoint num="0" id="5816" />
+<TGConnectingPoint num="1" id="5817" />
+<TGConnectingPoint num="2" id="5818" />
+<TGConnectingPoint num="3" id="5819" />
+<TGConnectingPoint num="4" id="5820" />
+<TGConnectingPoint num="5" id="5821" />
+<TGConnectingPoint num="6" id="5822" />
+<TGConnectingPoint num="7" id="5823" />
+<extraparam>
+<info value="Zigbee_TX::symbol2ChipSeq_ch_in" portName="symbol2ChipSeq_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="MAPPER_MSS" bufferType="1" numSamplesDataIn="1" baseAddressDataIn="0x2" bitsPerSymbolDataIn="3" symmetricalValueDataIn="OFF" baseAddressDataOut="0x4" baseAddressLUT="0x5" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="125" id="5834" >
+<cdparam x="1367" y="660" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1367" y="660" id="5295" />
+<P2  x="1199" y="643" id="5321" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5835" >
+<cdparam x="1147" y="508" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1147" y="508" id="5481" />
+<P2  x="1199" y="618" id="5319" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5836" >
+<cdparam x="1298" y="875" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1216" y="748" id="5629" />
+<P2  x="1199" y="668" id="5324" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5837" >
+<cdparam x="1019" y="805" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="970" y="780" id="5654" />
+<P2  x="987" y="668" id="5332" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5838" >
+<cdparam x="1004" y="531" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="960" y="566" id="5584" />
+<P2  x="987" y="618" id="5326" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5839" >
+<cdparam x="1185" y="660" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1467" y="660" id="5296" />
+<P2  x="1527" y="660" id="5270" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5840" >
+<cdparam x="356" y="788" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="788" id="5348" />
+<P2  x="356" y="832" id="5427" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5841" >
+<cdparam x="554" y="806" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="560" y="807" id="5011" />
+<P2  x="565" y="668" id="5331" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5842" >
+<cdparam x="559" y="863" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="560" y="857" id="5014" />
+<P2  x="481" y="857" id="5430" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5843" >
+<cdparam x="586" y="970" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="541" y="949" id="5368" />
+<P2  x="418" y="882" id="5441" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5844" >
+<cdparam x="165" y="927" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="208" y="938" id="5402" />
+<P2  x="293" y="882" id="5440" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5845" >
+<cdparam x="355" y="576" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="580" id="5126" />
+<P2  x="354" y="618" id="5317" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5846" >
+<cdparam x="355" y="541" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="545" id="5121" />
+<P2  x="356" y="497" id="5457" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5847" >
+<cdparam x="543" y="522" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="543" y="522" id="5041" />
+<P2  x="565" y="618" id="5325" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5848" >
+<cdparam x="536" y="475" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="543" y="472" id="5039" />
+<P2  x="481" y="472" id="5455" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5849" >
+<cdparam x="549" y="337" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="477" y="377" id="5067" />
+<P2  x="418" y="447" id="5460" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5850" >
+<cdparam x="155" y="323" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="216" y="382" id="5101" />
+<P2  x="293" y="447" id="5459" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5851" >
+<cdparam x="357" y="778" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="737" id="5343" />
+<P2  x="354" y="668" id="5322" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5852" >
+<cdparam x="1654" y="758" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1652" y="737" id="5146" />
+<P2  x="1652" y="685" id="5273" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5853" >
+<cdparam x="1651" y="573" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1652" y="586" id="5248" />
+<P2  x="1652" y="635" id="5268" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5854" >
+<cdparam x="959" y="527" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="960" y="531" id="5579" />
+<P2  x="960" y="483" id="5609" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5855" >
+<cdparam x="1140" 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="1147" y="458" id="5479" />
+<P2  x="1085" y="458" id="5607" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5856" >
+<cdparam x="1189" y="374" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1118" y="370" id="5507" />
+<P2  x="1022" y="433" id="5612" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5857" >
+<cdparam x="795" y="360" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="799" y="378" id="5559" />
+<P2  x="897" y="433" id="5611" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5858" >
+<cdparam x="970" y="831" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="970" y="831" id="5659" />
+<P2  x="970" y="875" id="5738" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5859" >
+<cdparam x="1173" y="906" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1141" y="798" id="5631" />
+<P2  x="1095" y="900" id="5741" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5860" >
+<cdparam x="1200" y="1013" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1200" y="978" id="5679" />
+<P2  x="1032" y="925" id="5752" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="5861" >
+<cdparam x="779" y="970" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="856" y="981" id="5713" />
+<P2  x="907" y="925" id="5751" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+
+</TMLArchiDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Architecture" nameTab="Mapping_1" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1900" minY="10" maxY="1900" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1100" id="5886" >
+<cdparam x="560" y="807" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_DMA" value="name" />
+<TGConnectingPoint num="0" id="5862" />
+<TGConnectingPoint num="1" id="5863" />
+<TGConnectingPoint num="2" id="5864" />
+<TGConnectingPoint num="3" id="5865" />
+<TGConnectingPoint num="4" id="5866" />
+<TGConnectingPoint num="5" id="5867" />
+<TGConnectingPoint num="6" id="5868" />
+<TGConnectingPoint num="7" id="5869" />
+<TGConnectingPoint num="8" id="5870" />
+<TGConnectingPoint num="9" id="5871" />
+<TGConnectingPoint num="10" id="5872" />
+<TGConnectingPoint num="11" id="5873" />
+<TGConnectingPoint num="12" id="5874" />
+<TGConnectingPoint num="13" id="5875" />
+<TGConnectingPoint num="14" id="5876" />
+<TGConnectingPoint num="15" id="5877" />
+<TGConnectingPoint num="16" id="5878" />
+<TGConnectingPoint num="17" id="5879" />
+<TGConnectingPoint num="18" id="5880" />
+<TGConnectingPoint num="19" id="5881" />
+<TGConnectingPoint num="20" id="5882" />
+<TGConnectingPoint num="21" id="5883" />
+<TGConnectingPoint num="22" id="5884" />
+<TGConnectingPoint num="23" id="5885" />
+<extraparam>
+<info stereotype="CPURR" nodeName="INTL_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5911" >
+<cdparam x="543" y="422" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_DMA" value="name" />
+<TGConnectingPoint num="0" id="5887" />
+<TGConnectingPoint num="1" id="5888" />
+<TGConnectingPoint num="2" id="5889" />
+<TGConnectingPoint num="3" id="5890" />
+<TGConnectingPoint num="4" id="5891" />
+<TGConnectingPoint num="5" id="5892" />
+<TGConnectingPoint num="6" id="5893" />
+<TGConnectingPoint num="7" id="5894" />
+<TGConnectingPoint num="8" id="5895" />
+<TGConnectingPoint num="9" id="5896" />
+<TGConnectingPoint num="10" id="5897" />
+<TGConnectingPoint num="11" id="5898" />
+<TGConnectingPoint num="12" id="5899" />
+<TGConnectingPoint num="13" id="5900" />
+<TGConnectingPoint num="14" id="5901" />
+<TGConnectingPoint num="15" id="5902" />
+<TGConnectingPoint num="16" id="5903" />
+<TGConnectingPoint num="17" id="5904" />
+<TGConnectingPoint num="18" id="5905" />
+<TGConnectingPoint num="19" id="5906" />
+<TGConnectingPoint num="20" id="5907" />
+<TGConnectingPoint num="21" id="5908" />
+<TGConnectingPoint num="22" id="5909" />
+<TGConnectingPoint num="23" id="5910" />
+<extraparam>
+<info stereotype="CPURR" nodeName="ADAIF_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="5936" >
+<cdparam x="354" y="243" />
+<sizeparam width="200" height="152" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_MSS" value="name" />
+<TGConnectingPoint num="0" id="5912" />
+<TGConnectingPoint num="1" id="5913" />
+<TGConnectingPoint num="2" id="5914" />
+<TGConnectingPoint num="3" id="5915" />
+<TGConnectingPoint num="4" id="5916" />
+<TGConnectingPoint num="5" id="5917" />
+<TGConnectingPoint num="6" id="5918" />
+<TGConnectingPoint num="7" id="5919" />
+<TGConnectingPoint num="8" id="5920" />
+<TGConnectingPoint num="9" id="5921" />
+<TGConnectingPoint num="10" id="5922" />
+<TGConnectingPoint num="11" id="5923" />
+<TGConnectingPoint num="12" id="5924" />
+<TGConnectingPoint num="13" id="5925" />
+<TGConnectingPoint num="14" id="5926" />
+<TGConnectingPoint num="15" id="5927" />
+<TGConnectingPoint num="16" id="5928" />
+<TGConnectingPoint num="17" id="5929" />
+<TGConnectingPoint num="18" id="5930" />
+<TGConnectingPoint num="19" id="5931" />
+<TGConnectingPoint num="20" id="5932" />
+<TGConnectingPoint num="21" id="5933" />
+<TGConnectingPoint num="22" id="5934" />
+<TGConnectingPoint num="23" id="5935" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="ADAIF_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="2" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="5970" >
+<cdparam x="29" y="215" />
+<sizeparam width="252" height="181" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_PSS" value="name" />
+<TGConnectingPoint num="0" id="5946" />
+<TGConnectingPoint num="1" id="5947" />
+<TGConnectingPoint num="2" id="5948" />
+<TGConnectingPoint num="3" id="5949" />
+<TGConnectingPoint num="4" id="5950" />
+<TGConnectingPoint num="5" id="5951" />
+<TGConnectingPoint num="6" id="5952" />
+<TGConnectingPoint num="7" id="5953" />
+<TGConnectingPoint num="8" id="5954" />
+<TGConnectingPoint num="9" id="5955" />
+<TGConnectingPoint num="10" id="5956" />
+<TGConnectingPoint num="11" id="5957" />
+<TGConnectingPoint num="12" id="5958" />
+<TGConnectingPoint num="13" id="5959" />
+<TGConnectingPoint num="14" id="5960" />
+<TGConnectingPoint num="15" id="5961" />
+<TGConnectingPoint num="16" id="5962" />
+<TGConnectingPoint num="17" id="5963" />
+<TGConnectingPoint num="18" id="5964" />
+<TGConnectingPoint num="19" id="5965" />
+<TGConnectingPoint num="20" id="5966" />
+<TGConnectingPoint num="21" id="5967" />
+<TGConnectingPoint num="22" id="5968" />
+<TGConnectingPoint num="23" id="5969" />
+<extraparam>
+<info stereotype="CPURR" nodeName="ADAIF_PSS" />
+<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" MECType="4" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="5945" >
+<father id="5970" num="0" />
+<cdparam x="48" y="315" />
+<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Sink" />
+<TGConnectingPoint num="0" id="5937" />
+<TGConnectingPoint num="1" id="5938" />
+<TGConnectingPoint num="2" id="5939" />
+<TGConnectingPoint num="3" id="5940" />
+<TGConnectingPoint num="4" id="5941" />
+<TGConnectingPoint num="5" id="5942" />
+<TGConnectingPoint num="6" id="5943" />
+<TGConnectingPoint num="7" id="5944" />
+<extraparam>
+<info value="Zigbee_TX::X_Sink" taskName="X_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="Adaif operation" fatherComponentMECType="4" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1106" id="5995" >
+<cdparam x="306" y="545" />
+<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_Bridge" value="name" />
+<TGConnectingPoint num="0" id="5971" />
+<TGConnectingPoint num="1" id="5972" />
+<TGConnectingPoint num="2" id="5973" />
+<TGConnectingPoint num="3" id="5974" />
+<TGConnectingPoint num="4" id="5975" />
+<TGConnectingPoint num="5" id="5976" />
+<TGConnectingPoint num="6" id="5977" />
+<TGConnectingPoint num="7" id="5978" />
+<TGConnectingPoint num="8" id="5979" />
+<TGConnectingPoint num="9" id="5980" />
+<TGConnectingPoint num="10" id="5981" />
+<TGConnectingPoint num="11" id="5982" />
+<TGConnectingPoint num="12" id="5983" />
+<TGConnectingPoint num="13" id="5984" />
+<TGConnectingPoint num="14" id="5985" />
+<TGConnectingPoint num="15" id="5986" />
+<TGConnectingPoint num="16" id="5987" />
+<TGConnectingPoint num="17" id="5988" />
+<TGConnectingPoint num="18" id="5989" />
+<TGConnectingPoint num="19" id="5990" />
+<TGConnectingPoint num="20" id="5991" />
+<TGConnectingPoint num="21" id="5992" />
+<TGConnectingPoint num="22" id="5993" />
+<TGConnectingPoint num="23" id="5994" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="ADAIF_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="6020" >
+<cdparam x="1544" y="737" />
+<sizeparam width="216" height="140" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainMemory" value="name" />
+<TGConnectingPoint num="0" id="5996" />
+<TGConnectingPoint num="1" id="5997" />
+<TGConnectingPoint num="2" id="5998" />
+<TGConnectingPoint num="3" id="5999" />
+<TGConnectingPoint num="4" id="6000" />
+<TGConnectingPoint num="5" id="6001" />
+<TGConnectingPoint num="6" id="6002" />
+<TGConnectingPoint num="7" id="6003" />
+<TGConnectingPoint num="8" id="6004" />
+<TGConnectingPoint num="9" id="6005" />
+<TGConnectingPoint num="10" id="6006" />
+<TGConnectingPoint num="11" id="6007" />
+<TGConnectingPoint num="12" id="6008" />
+<TGConnectingPoint num="13" id="6009" />
+<TGConnectingPoint num="14" id="6010" />
+<TGConnectingPoint num="15" id="6011" />
+<TGConnectingPoint num="16" id="6012" />
+<TGConnectingPoint num="17" id="6013" />
+<TGConnectingPoint num="18" id="6014" />
+<TGConnectingPoint num="19" id="6015" />
+<TGConnectingPoint num="20" id="6016" />
+<TGConnectingPoint num="21" id="6017" />
+<TGConnectingPoint num="22" id="6018" />
+<TGConnectingPoint num="23" id="6019" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="MainMemory" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="4" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="6117" >
+<cdparam x="1444" y="293" />
+<sizeparam width="417" height="293" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainCPU" value="name" />
+<TGConnectingPoint num="0" id="6093" />
+<TGConnectingPoint num="1" id="6094" />
+<TGConnectingPoint num="2" id="6095" />
+<TGConnectingPoint num="3" id="6096" />
+<TGConnectingPoint num="4" id="6097" />
+<TGConnectingPoint num="5" id="6098" />
+<TGConnectingPoint num="6" id="6099" />
+<TGConnectingPoint num="7" id="6100" />
+<TGConnectingPoint num="8" id="6101" />
+<TGConnectingPoint num="9" id="6102" />
+<TGConnectingPoint num="10" id="6103" />
+<TGConnectingPoint num="11" id="6104" />
+<TGConnectingPoint num="12" id="6105" />
+<TGConnectingPoint num="13" id="6106" />
+<TGConnectingPoint num="14" id="6107" />
+<TGConnectingPoint num="15" id="6108" />
+<TGConnectingPoint num="16" id="6109" />
+<TGConnectingPoint num="17" id="6110" />
+<TGConnectingPoint num="18" id="6111" />
+<TGConnectingPoint num="19" id="6112" />
+<TGConnectingPoint num="20" id="6113" />
+<TGConnectingPoint num="21" id="6114" />
+<TGConnectingPoint num="22" id="6115" />
+<TGConnectingPoint num="23" id="6116" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MainCPU" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="6029" >
+<father id="6117" num="0" />
+<cdparam x="1465" y="339" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
+<TGConnectingPoint num="0" id="6021" />
+<TGConnectingPoint num="1" id="6022" />
+<TGConnectingPoint num="2" id="6023" />
+<TGConnectingPoint num="3" id="6024" />
+<TGConnectingPoint num="4" id="6025" />
+<TGConnectingPoint num="5" id="6026" />
+<TGConnectingPoint num="6" id="6027" />
+<TGConnectingPoint num="7" id="6028" />
+<extraparam>
+<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6038" >
+<father id="6117" num="1" />
+<cdparam x="1466" y="395" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
+<TGConnectingPoint num="0" id="6030" />
+<TGConnectingPoint num="1" id="6031" />
+<TGConnectingPoint num="2" id="6032" />
+<TGConnectingPoint num="3" id="6033" />
+<TGConnectingPoint num="4" id="6034" />
+<TGConnectingPoint num="5" id="6035" />
+<TGConnectingPoint num="6" id="6036" />
+<TGConnectingPoint num="7" id="6037" />
+<extraparam>
+<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6047" >
+<father id="6117" num="2" />
+<cdparam x="1466" y="456" />
+<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
+<TGConnectingPoint num="0" id="6039" />
+<TGConnectingPoint num="1" id="6040" />
+<TGConnectingPoint num="2" id="6041" />
+<TGConnectingPoint num="3" id="6042" />
+<TGConnectingPoint num="4" id="6043" />
+<TGConnectingPoint num="5" id="6044" />
+<TGConnectingPoint num="6" id="6045" />
+<TGConnectingPoint num="7" id="6046" />
+<extraparam>
+<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6056" >
+<father id="6117" num="3" />
+<cdparam x="1466" y="518" />
+<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="228" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" />
+<TGConnectingPoint num="0" id="6048" />
+<TGConnectingPoint num="1" id="6049" />
+<TGConnectingPoint num="2" id="6050" />
+<TGConnectingPoint num="3" id="6051" />
+<TGConnectingPoint num="4" id="6052" />
+<TGConnectingPoint num="5" id="6053" />
+<TGConnectingPoint num="6" id="6054" />
+<TGConnectingPoint num="7" id="6055" />
+<extraparam>
+<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip2Octet" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6065" >
+<father id="6117" num="4" />
+<cdparam x="1688" y="405" />
+<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
+<TGConnectingPoint num="0" id="6057" />
+<TGConnectingPoint num="1" id="6058" />
+<TGConnectingPoint num="2" id="6059" />
+<TGConnectingPoint num="3" id="6060" />
+<TGConnectingPoint num="4" id="6061" />
+<TGConnectingPoint num="5" id="6062" />
+<TGConnectingPoint num="6" id="6063" />
+<TGConnectingPoint num="7" id="6064" />
+<extraparam>
+<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6074" >
+<father id="6117" num="5" />
+<cdparam x="1691" y="345" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
+<TGConnectingPoint num="0" id="6066" />
+<TGConnectingPoint num="1" id="6067" />
+<TGConnectingPoint num="2" id="6068" />
+<TGConnectingPoint num="3" id="6069" />
+<TGConnectingPoint num="4" id="6070" />
+<TGConnectingPoint num="5" id="6071" />
+<TGConnectingPoint num="6" id="6072" />
+<TGConnectingPoint num="7" id="6073" />
+<extraparam>
+<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6083" >
+<father id="6117" num="6" />
+<cdparam x="1696" y="456" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
+<TGConnectingPoint num="0" id="6075" />
+<TGConnectingPoint num="1" id="6076" />
+<TGConnectingPoint num="2" id="6077" />
+<TGConnectingPoint num="3" id="6078" />
+<TGConnectingPoint num="4" id="6079" />
+<TGConnectingPoint num="5" id="6080" />
+<TGConnectingPoint num="6" id="6081" />
+<TGConnectingPoint num="7" id="6082" />
+<extraparam>
+<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6092" >
+<father id="6117" num="7" />
+<cdparam x="1686" y="522" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
+<TGConnectingPoint num="0" id="6084" />
+<TGConnectingPoint num="1" id="6085" />
+<TGConnectingPoint num="2" id="6086" />
+<TGConnectingPoint num="3" id="6087" />
+<TGConnectingPoint num="4" id="6088" />
+<TGConnectingPoint num="5" id="6089" />
+<TGConnectingPoint num="6" id="6090" />
+<TGConnectingPoint num="7" id="6091" />
+<extraparam>
+<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1102" id="6142" >
+<cdparam x="1527" y="635" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainBus" value="name" />
+<TGConnectingPoint num="0" id="6118" />
+<TGConnectingPoint num="1" id="6119" />
+<TGConnectingPoint num="2" id="6120" />
+<TGConnectingPoint num="3" id="6121" />
+<TGConnectingPoint num="4" id="6122" />
+<TGConnectingPoint num="5" id="6123" />
+<TGConnectingPoint num="6" id="6124" />
+<TGConnectingPoint num="7" id="6125" />
+<TGConnectingPoint num="8" id="6126" />
+<TGConnectingPoint num="9" id="6127" />
+<TGConnectingPoint num="10" id="6128" />
+<TGConnectingPoint num="11" id="6129" />
+<TGConnectingPoint num="12" id="6130" />
+<TGConnectingPoint num="13" id="6131" />
+<TGConnectingPoint num="14" id="6132" />
+<TGConnectingPoint num="15" id="6133" />
+<TGConnectingPoint num="16" id="6134" />
+<TGConnectingPoint num="17" id="6135" />
+<TGConnectingPoint num="18" id="6136" />
+<TGConnectingPoint num="19" id="6137" />
+<TGConnectingPoint num="20" id="6138" />
+<TGConnectingPoint num="21" id="6139" />
+<TGConnectingPoint num="22" id="6140" />
+<TGConnectingPoint num="23" id="6141" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="MainBus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="6167" >
+<cdparam x="1367" y="610" />
+<sizeparam width="100" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainBridge" value="name" />
+<TGConnectingPoint num="0" id="6143" />
+<TGConnectingPoint num="1" id="6144" />
+<TGConnectingPoint num="2" id="6145" />
+<TGConnectingPoint num="3" id="6146" />
+<TGConnectingPoint num="4" id="6147" />
+<TGConnectingPoint num="5" id="6148" />
+<TGConnectingPoint num="6" id="6149" />
+<TGConnectingPoint num="7" id="6150" />
+<TGConnectingPoint num="8" id="6151" />
+<TGConnectingPoint num="9" id="6152" />
+<TGConnectingPoint num="10" id="6153" />
+<TGConnectingPoint num="11" id="6154" />
+<TGConnectingPoint num="12" id="6155" />
+<TGConnectingPoint num="13" id="6156" />
+<TGConnectingPoint num="14" id="6157" />
+<TGConnectingPoint num="15" id="6158" />
+<TGConnectingPoint num="16" id="6159" />
+<TGConnectingPoint num="17" id="6160" />
+<TGConnectingPoint num="18" id="6161" />
+<TGConnectingPoint num="19" id="6162" />
+<TGConnectingPoint num="20" id="6163" />
+<TGConnectingPoint num="21" id="6164" />
+<TGConnectingPoint num="22" id="6165" />
+<TGConnectingPoint num="23" id="6166" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="MainBridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="6192" >
+<cdparam x="231" y="635" />
+<sizeparam width="845" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="Crossbar" value="name" />
+<TGConnectingPoint num="0" id="6168" />
+<TGConnectingPoint num="1" id="6169" />
+<TGConnectingPoint num="2" id="6170" />
+<TGConnectingPoint num="3" id="6171" />
+<TGConnectingPoint num="4" id="6172" />
+<TGConnectingPoint num="5" id="6173" />
+<TGConnectingPoint num="6" id="6174" />
+<TGConnectingPoint num="7" id="6175" />
+<TGConnectingPoint num="8" id="6176" />
+<TGConnectingPoint num="9" id="6177" />
+<TGConnectingPoint num="10" id="6178" />
+<TGConnectingPoint num="11" id="6179" />
+<TGConnectingPoint num="12" id="6180" />
+<TGConnectingPoint num="13" id="6181" />
+<TGConnectingPoint num="14" id="6182" />
+<TGConnectingPoint num="15" id="6183" />
+<TGConnectingPoint num="16" id="6184" />
+<TGConnectingPoint num="17" id="6185" />
+<TGConnectingPoint num="18" id="6186" />
+<TGConnectingPoint num="19" id="6187" />
+<TGConnectingPoint num="20" id="6188" />
+<TGConnectingPoint num="21" id="6189" />
+<TGConnectingPoint num="22" id="6190" />
+<TGConnectingPoint num="23" id="6191" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="Crossbar" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="6217" >
+<cdparam x="306" y="737" />
+<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_Bridge" value="name" />
+<TGConnectingPoint num="0" id="6193" />
+<TGConnectingPoint num="1" id="6194" />
+<TGConnectingPoint num="2" id="6195" />
+<TGConnectingPoint num="3" id="6196" />
+<TGConnectingPoint num="4" id="6197" />
+<TGConnectingPoint num="5" id="6198" />
+<TGConnectingPoint num="6" id="6199" />
+<TGConnectingPoint num="7" id="6200" />
+<TGConnectingPoint num="8" id="6201" />
+<TGConnectingPoint num="9" id="6202" />
+<TGConnectingPoint num="10" id="6203" />
+<TGConnectingPoint num="11" id="6204" />
+<TGConnectingPoint num="12" id="6205" />
+<TGConnectingPoint num="13" id="6206" />
+<TGConnectingPoint num="14" id="6207" />
+<TGConnectingPoint num="15" id="6208" />
+<TGConnectingPoint num="16" id="6209" />
+<TGConnectingPoint num="17" id="6210" />
+<TGConnectingPoint num="18" id="6211" />
+<TGConnectingPoint num="19" id="6212" />
+<TGConnectingPoint num="20" id="6213" />
+<TGConnectingPoint num="21" id="6214" />
+<TGConnectingPoint num="22" id="6215" />
+<TGConnectingPoint num="23" id="6216" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="INTL_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="6242" >
+<cdparam x="376" y="949" />
+<sizeparam width="331" height="135" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_MSS" value="name" />
+<TGConnectingPoint num="0" id="6218" />
+<TGConnectingPoint num="1" id="6219" />
+<TGConnectingPoint num="2" id="6220" />
+<TGConnectingPoint num="3" id="6221" />
+<TGConnectingPoint num="4" id="6222" />
+<TGConnectingPoint num="5" id="6223" />
+<TGConnectingPoint num="6" id="6224" />
+<TGConnectingPoint num="7" id="6225" />
+<TGConnectingPoint num="8" id="6226" />
+<TGConnectingPoint num="9" id="6227" />
+<TGConnectingPoint num="10" id="6228" />
+<TGConnectingPoint num="11" id="6229" />
+<TGConnectingPoint num="12" id="6230" />
+<TGConnectingPoint num="13" id="6231" />
+<TGConnectingPoint num="14" id="6232" />
+<TGConnectingPoint num="15" id="6233" />
+<TGConnectingPoint num="16" id="6234" />
+<TGConnectingPoint num="17" id="6235" />
+<TGConnectingPoint num="18" id="6236" />
+<TGConnectingPoint num="19" id="6237" />
+<TGConnectingPoint num="20" id="6238" />
+<TGConnectingPoint num="21" id="6239" />
+<TGConnectingPoint num="22" id="6240" />
+<TGConnectingPoint num="23" id="6241" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="INTL_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="3" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="6276" >
+<cdparam x="91" y="938" />
+<sizeparam width="234" height="140" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_PSS" value="name" />
+<TGConnectingPoint num="0" id="6252" />
+<TGConnectingPoint num="1" id="6253" />
+<TGConnectingPoint num="2" id="6254" />
+<TGConnectingPoint num="3" id="6255" />
+<TGConnectingPoint num="4" id="6256" />
+<TGConnectingPoint num="5" id="6257" />
+<TGConnectingPoint num="6" id="6258" />
+<TGConnectingPoint num="7" id="6259" />
+<TGConnectingPoint num="8" id="6260" />
+<TGConnectingPoint num="9" id="6261" />
+<TGConnectingPoint num="10" id="6262" />
+<TGConnectingPoint num="11" id="6263" />
+<TGConnectingPoint num="12" id="6264" />
+<TGConnectingPoint num="13" id="6265" />
+<TGConnectingPoint num="14" id="6266" />
+<TGConnectingPoint num="15" id="6267" />
+<TGConnectingPoint num="16" id="6268" />
+<TGConnectingPoint num="17" id="6269" />
+<TGConnectingPoint num="18" id="6270" />
+<TGConnectingPoint num="19" id="6271" />
+<TGConnectingPoint num="20" id="6272" />
+<TGConnectingPoint num="21" id="6273" />
+<TGConnectingPoint num="22" id="6274" />
+<TGConnectingPoint num="23" id="6275" />
+<extraparam>
+<info stereotype="CPURR" nodeName="INTL_PSS" />
+<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" MECType="2" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="6251" >
+<father id="6276" num="0" />
+<cdparam x="105" y="993" />
+<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="45" minY="0" maxY="100" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" />
+<TGConnectingPoint num="0" id="6243" />
+<TGConnectingPoint num="1" id="6244" />
+<TGConnectingPoint num="2" id="6245" />
+<TGConnectingPoint num="3" id="6246" />
+<TGConnectingPoint num="4" id="6247" />
+<TGConnectingPoint num="5" id="6248" />
+<TGConnectingPoint num="6" id="6249" />
+<TGConnectingPoint num="7" id="6250" />
+<extraparam>
+<info value="Zigbee_TX::X_Chip2Octet" taskName="X_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="Interleaver operation" fatherComponentMECType="2" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1102" id="6301" >
+<cdparam x="231" y="832" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_Bus" value="name" />
+<TGConnectingPoint num="0" id="6277" />
+<TGConnectingPoint num="1" id="6278" />
+<TGConnectingPoint num="2" id="6279" />
+<TGConnectingPoint num="3" id="6280" />
+<TGConnectingPoint num="4" id="6281" />
+<TGConnectingPoint num="5" id="6282" />
+<TGConnectingPoint num="6" id="6283" />
+<TGConnectingPoint num="7" id="6284" />
+<TGConnectingPoint num="8" id="6285" />
+<TGConnectingPoint num="9" id="6286" />
+<TGConnectingPoint num="10" id="6287" />
+<TGConnectingPoint num="11" id="6288" />
+<TGConnectingPoint num="12" id="6289" />
+<TGConnectingPoint num="13" id="6290" />
+<TGConnectingPoint num="14" id="6291" />
+<TGConnectingPoint num="15" id="6292" />
+<TGConnectingPoint num="16" id="6293" />
+<TGConnectingPoint num="17" id="6294" />
+<TGConnectingPoint num="18" id="6295" />
+<TGConnectingPoint num="19" id="6296" />
+<TGConnectingPoint num="20" id="6297" />
+<TGConnectingPoint num="21" id="6298" />
+<TGConnectingPoint num="22" id="6299" />
+<TGConnectingPoint num="23" id="6300" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="INTL_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="6326" >
+<cdparam x="231" y="447" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_Bus" value="name" />
+<TGConnectingPoint num="0" id="6302" />
+<TGConnectingPoint num="1" id="6303" />
+<TGConnectingPoint num="2" id="6304" />
+<TGConnectingPoint num="3" id="6305" />
+<TGConnectingPoint num="4" id="6306" />
+<TGConnectingPoint num="5" id="6307" />
+<TGConnectingPoint num="6" id="6308" />
+<TGConnectingPoint num="7" id="6309" />
+<TGConnectingPoint num="8" id="6310" />
+<TGConnectingPoint num="9" id="6311" />
+<TGConnectingPoint num="10" id="6312" />
+<TGConnectingPoint num="11" id="6313" />
+<TGConnectingPoint num="12" id="6314" />
+<TGConnectingPoint num="13" id="6315" />
+<TGConnectingPoint num="14" id="6316" />
+<TGConnectingPoint num="15" id="6317" />
+<TGConnectingPoint num="16" id="6318" />
+<TGConnectingPoint num="17" id="6319" />
+<TGConnectingPoint num="18" id="6320" />
+<TGConnectingPoint num="19" id="6321" />
+<TGConnectingPoint num="20" id="6322" />
+<TGConnectingPoint num="21" id="6323" />
+<TGConnectingPoint num="22" id="6324" />
+<TGConnectingPoint num="23" id="6325" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="ADAIF_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="6351" >
+<cdparam x="1147" y="408" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_DMA" value="name" />
+<TGConnectingPoint num="0" id="6327" />
+<TGConnectingPoint num="1" id="6328" />
+<TGConnectingPoint num="2" id="6329" />
+<TGConnectingPoint num="3" id="6330" />
+<TGConnectingPoint num="4" id="6331" />
+<TGConnectingPoint num="5" id="6332" />
+<TGConnectingPoint num="6" id="6333" />
+<TGConnectingPoint num="7" id="6334" />
+<TGConnectingPoint num="8" id="6335" />
+<TGConnectingPoint num="9" id="6336" />
+<TGConnectingPoint num="10" id="6337" />
+<TGConnectingPoint num="11" id="6338" />
+<TGConnectingPoint num="12" id="6339" />
+<TGConnectingPoint num="13" id="6340" />
+<TGConnectingPoint num="14" id="6341" />
+<TGConnectingPoint num="15" id="6342" />
+<TGConnectingPoint num="16" id="6343" />
+<TGConnectingPoint num="17" id="6344" />
+<TGConnectingPoint num="18" id="6345" />
+<TGConnectingPoint num="19" id="6346" />
+<TGConnectingPoint num="20" id="6347" />
+<TGConnectingPoint num="21" id="6348" />
+<TGConnectingPoint num="22" id="6349" />
+<TGConnectingPoint num="23" id="6350" />
+<extraparam>
+<info stereotype="CPURR" nodeName="FEP_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="6376" >
+<cdparam x="895" y="193" />
+<sizeparam width="255" height="183" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_MSS" value="name" />
+<TGConnectingPoint num="0" id="6352" />
+<TGConnectingPoint num="1" id="6353" />
+<TGConnectingPoint num="2" id="6354" />
+<TGConnectingPoint num="3" id="6355" />
+<TGConnectingPoint num="4" id="6356" />
+<TGConnectingPoint num="5" id="6357" />
+<TGConnectingPoint num="6" id="6358" />
+<TGConnectingPoint num="7" id="6359" />
+<TGConnectingPoint num="8" id="6360" />
+<TGConnectingPoint num="9" id="6361" />
+<TGConnectingPoint num="10" id="6362" />
+<TGConnectingPoint num="11" id="6363" />
+<TGConnectingPoint num="12" id="6364" />
+<TGConnectingPoint num="13" id="6365" />
+<TGConnectingPoint num="14" id="6366" />
+<TGConnectingPoint num="15" id="6367" />
+<TGConnectingPoint num="16" id="6368" />
+<TGConnectingPoint num="17" id="6369" />
+<TGConnectingPoint num="18" id="6370" />
+<TGConnectingPoint num="19" id="6371" />
+<TGConnectingPoint num="20" id="6372" />
+<TGConnectingPoint num="21" id="6373" />
+<TGConnectingPoint num="22" id="6374" />
+<TGConnectingPoint num="23" id="6375" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="FEP_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="0" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="6428" >
+<cdparam x="619" y="199" />
+<sizeparam width="238" height="185" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_PSS" value="name" />
+<TGConnectingPoint num="0" id="6404" />
+<TGConnectingPoint num="1" id="6405" />
+<TGConnectingPoint num="2" id="6406" />
+<TGConnectingPoint num="3" id="6407" />
+<TGConnectingPoint num="4" id="6408" />
+<TGConnectingPoint num="5" id="6409" />
+<TGConnectingPoint num="6" id="6410" />
+<TGConnectingPoint num="7" id="6411" />
+<TGConnectingPoint num="8" id="6412" />
+<TGConnectingPoint num="9" id="6413" />
+<TGConnectingPoint num="10" id="6414" />
+<TGConnectingPoint num="11" id="6415" />
+<TGConnectingPoint num="12" id="6416" />
+<TGConnectingPoint num="13" id="6417" />
+<TGConnectingPoint num="14" id="6418" />
+<TGConnectingPoint num="15" id="6419" />
+<TGConnectingPoint num="16" id="6420" />
+<TGConnectingPoint num="17" id="6421" />
+<TGConnectingPoint num="18" id="6422" />
+<TGConnectingPoint num="19" id="6423" />
+<TGConnectingPoint num="20" id="6424" />
+<TGConnectingPoint num="21" id="6425" />
+<TGConnectingPoint num="22" id="6426" />
+<TGConnectingPoint num="23" id="6427" />
+<extraparam>
+<info stereotype="CPURR" nodeName="FEP_PSS" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="2" execcTime="1" clockRatio="1" MECType="1" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="6385" >
+<father id="6428" num="0" />
+<cdparam x="671" y="289" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
+<TGConnectingPoint num="0" id="6377" />
+<TGConnectingPoint num="1" id="6378" />
+<TGConnectingPoint num="2" id="6379" />
+<TGConnectingPoint num="3" id="6380" />
+<TGConnectingPoint num="4" id="6381" />
+<TGConnectingPoint num="5" id="6382" />
+<TGConnectingPoint num="6" id="6383" />
+<TGConnectingPoint num="7" id="6384" />
+<extraparam>
+<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6394" >
+<father id="6428" num="1" />
+<cdparam x="640" y="335" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_Q" />
+<TGConnectingPoint num="0" id="6386" />
+<TGConnectingPoint num="1" id="6387" />
+<TGConnectingPoint num="2" id="6388" />
+<TGConnectingPoint num="3" id="6389" />
+<TGConnectingPoint num="4" id="6390" />
+<TGConnectingPoint num="5" id="6391" />
+<TGConnectingPoint num="6" id="6392" />
+<TGConnectingPoint num="7" id="6393" />
+<extraparam>
+<info value="Zigbee_TX::X_CWP_Q" taskName="X_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6403" >
+<father id="6428" num="2" />
+<cdparam x="639" y="239" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
+<TGConnectingPoint num="0" id="6395" />
+<TGConnectingPoint num="1" id="6396" />
+<TGConnectingPoint num="2" id="6397" />
+<TGConnectingPoint num="3" id="6398" />
+<TGConnectingPoint num="4" id="6399" />
+<TGConnectingPoint num="5" id="6400" />
+<TGConnectingPoint num="6" id="6401" />
+<TGConnectingPoint num="7" id="6402" />
+<extraparam>
+<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1106" id="6453" >
+<cdparam x="910" y="531" />
+<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_Bridge" value="name" />
+<TGConnectingPoint num="0" id="6429" />
+<TGConnectingPoint num="1" id="6430" />
+<TGConnectingPoint num="2" id="6431" />
+<TGConnectingPoint num="3" id="6432" />
+<TGConnectingPoint num="4" id="6433" />
+<TGConnectingPoint num="5" id="6434" />
+<TGConnectingPoint num="6" id="6435" />
+<TGConnectingPoint num="7" id="6436" />
+<TGConnectingPoint num="8" id="6437" />
+<TGConnectingPoint num="9" id="6438" />
+<TGConnectingPoint num="10" id="6439" />
+<TGConnectingPoint num="11" id="6440" />
+<TGConnectingPoint num="12" id="6441" />
+<TGConnectingPoint num="13" id="6442" />
+<TGConnectingPoint num="14" id="6443" />
+<TGConnectingPoint num="15" id="6444" />
+<TGConnectingPoint num="16" id="6445" />
+<TGConnectingPoint num="17" id="6446" />
+<TGConnectingPoint num="18" id="6447" />
+<TGConnectingPoint num="19" id="6448" />
+<TGConnectingPoint num="20" id="6449" />
+<TGConnectingPoint num="21" id="6450" />
+<TGConnectingPoint num="22" id="6451" />
+<TGConnectingPoint num="23" id="6452" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="FEP_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="6478" >
+<cdparam x="835" y="433" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_Bus" value="name" />
+<TGConnectingPoint num="0" id="6454" />
+<TGConnectingPoint num="1" id="6455" />
+<TGConnectingPoint num="2" id="6456" />
+<TGConnectingPoint num="3" id="6457" />
+<TGConnectingPoint num="4" id="6458" />
+<TGConnectingPoint num="5" id="6459" />
+<TGConnectingPoint num="6" id="6460" />
+<TGConnectingPoint num="7" id="6461" />
+<TGConnectingPoint num="8" id="6462" />
+<TGConnectingPoint num="9" id="6463" />
+<TGConnectingPoint num="10" id="6464" />
+<TGConnectingPoint num="11" id="6465" />
+<TGConnectingPoint num="12" id="6466" />
+<TGConnectingPoint num="13" id="6467" />
+<TGConnectingPoint num="14" id="6468" />
+<TGConnectingPoint num="15" id="6469" />
+<TGConnectingPoint num="16" id="6470" />
+<TGConnectingPoint num="17" id="6471" />
+<TGConnectingPoint num="18" id="6472" />
+<TGConnectingPoint num="19" id="6473" />
+<TGConnectingPoint num="20" id="6474" />
+<TGConnectingPoint num="21" id="6475" />
+<TGConnectingPoint num="22" id="6476" />
+<TGConnectingPoint num="23" id="6477" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="FEP_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="6503" >
+<cdparam x="1174" y="850" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_DMA" value="name" />
+<TGConnectingPoint num="0" id="6479" />
+<TGConnectingPoint num="1" id="6480" />
+<TGConnectingPoint num="2" id="6481" />
+<TGConnectingPoint num="3" id="6482" />
+<TGConnectingPoint num="4" id="6483" />
+<TGConnectingPoint num="5" id="6484" />
+<TGConnectingPoint num="6" id="6485" />
+<TGConnectingPoint num="7" id="6486" />
+<TGConnectingPoint num="8" id="6487" />
+<TGConnectingPoint num="9" id="6488" />
+<TGConnectingPoint num="10" id="6489" />
+<TGConnectingPoint num="11" id="6490" />
+<TGConnectingPoint num="12" id="6491" />
+<TGConnectingPoint num="13" id="6492" />
+<TGConnectingPoint num="14" id="6493" />
+<TGConnectingPoint num="15" id="6494" />
+<TGConnectingPoint num="16" id="6495" />
+<TGConnectingPoint num="17" id="6496" />
+<TGConnectingPoint num="18" id="6497" />
+<TGConnectingPoint num="19" id="6498" />
+<TGConnectingPoint num="20" id="6499" />
+<TGConnectingPoint num="21" id="6500" />
+<TGConnectingPoint num="22" id="6501" />
+<TGConnectingPoint num="23" id="6502" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MAPPER_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="6528" >
+<cdparam x="920" y="780" />
+<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_Bridge" value="name" />
+<TGConnectingPoint num="0" id="6504" />
+<TGConnectingPoint num="1" id="6505" />
+<TGConnectingPoint num="2" id="6506" />
+<TGConnectingPoint num="3" id="6507" />
+<TGConnectingPoint num="4" id="6508" />
+<TGConnectingPoint num="5" id="6509" />
+<TGConnectingPoint num="6" id="6510" />
+<TGConnectingPoint num="7" id="6511" />
+<TGConnectingPoint num="8" id="6512" />
+<TGConnectingPoint num="9" id="6513" />
+<TGConnectingPoint num="10" id="6514" />
+<TGConnectingPoint num="11" id="6515" />
+<TGConnectingPoint num="12" id="6516" />
+<TGConnectingPoint num="13" id="6517" />
+<TGConnectingPoint num="14" id="6518" />
+<TGConnectingPoint num="15" id="6519" />
+<TGConnectingPoint num="16" id="6520" />
+<TGConnectingPoint num="17" id="6521" />
+<TGConnectingPoint num="18" id="6522" />
+<TGConnectingPoint num="19" id="6523" />
+<TGConnectingPoint num="20" id="6524" />
+<TGConnectingPoint num="21" id="6525" />
+<TGConnectingPoint num="22" id="6526" />
+<TGConnectingPoint num="23" id="6527" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="MAPPER_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="6553" >
+<cdparam x="1043" y="978" />
+<sizeparam width="314" height="125" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_MSS" value="name" />
+<TGConnectingPoint num="0" id="6529" />
+<TGConnectingPoint num="1" id="6530" />
+<TGConnectingPoint num="2" id="6531" />
+<TGConnectingPoint num="3" id="6532" />
+<TGConnectingPoint num="4" id="6533" />
+<TGConnectingPoint num="5" id="6534" />
+<TGConnectingPoint num="6" id="6535" />
+<TGConnectingPoint num="7" id="6536" />
+<TGConnectingPoint num="8" id="6537" />
+<TGConnectingPoint num="9" id="6538" />
+<TGConnectingPoint num="10" id="6539" />
+<TGConnectingPoint num="11" id="6540" />
+<TGConnectingPoint num="12" id="6541" />
+<TGConnectingPoint num="13" id="6542" />
+<TGConnectingPoint num="14" id="6543" />
+<TGConnectingPoint num="15" id="6544" />
+<TGConnectingPoint num="16" id="6545" />
+<TGConnectingPoint num="17" id="6546" />
+<TGConnectingPoint num="18" id="6547" />
+<TGConnectingPoint num="19" id="6548" />
+<TGConnectingPoint num="20" id="6549" />
+<TGConnectingPoint num="21" id="6550" />
+<TGConnectingPoint num="22" id="6551" />
+<TGConnectingPoint num="23" id="6552" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="MAPPER_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="6587" >
+<cdparam x="743" y="984" />
+<sizeparam width="237" height="159" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_PSS" value="name" />
+<TGConnectingPoint num="0" id="6563" />
+<TGConnectingPoint num="1" id="6564" />
+<TGConnectingPoint num="2" id="6565" />
+<TGConnectingPoint num="3" id="6566" />
+<TGConnectingPoint num="4" id="6567" />
+<TGConnectingPoint num="5" id="6568" />
+<TGConnectingPoint num="6" id="6569" />
+<TGConnectingPoint num="7" id="6570" />
+<TGConnectingPoint num="8" id="6571" />
+<TGConnectingPoint num="9" id="6572" />
+<TGConnectingPoint num="10" id="6573" />
+<TGConnectingPoint num="11" id="6574" />
+<TGConnectingPoint num="12" id="6575" />
+<TGConnectingPoint num="13" id="6576" />
+<TGConnectingPoint num="14" id="6577" />
+<TGConnectingPoint num="15" id="6578" />
+<TGConnectingPoint num="16" id="6579" />
+<TGConnectingPoint num="17" id="6580" />
+<TGConnectingPoint num="18" id="6581" />
+<TGConnectingPoint num="19" id="6582" />
+<TGConnectingPoint num="20" id="6583" />
+<TGConnectingPoint num="21" id="6584" />
+<TGConnectingPoint num="22" id="6585" />
+<TGConnectingPoint num="23" id="6586" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MAPPER_PSS" />
+<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" MECType="3" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="6562" >
+<father id="6587" num="0" />
+<cdparam x="749" y="1029" />
+<sizeparam width="223" height="45" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="14" minY="0" maxY="119" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Symbol2ChipSeq" />
+<TGConnectingPoint num="0" id="6554" />
+<TGConnectingPoint num="1" id="6555" />
+<TGConnectingPoint num="2" id="6556" />
+<TGConnectingPoint num="3" id="6557" />
+<TGConnectingPoint num="4" id="6558" />
+<TGConnectingPoint num="5" id="6559" />
+<TGConnectingPoint num="6" id="6560" />
+<TGConnectingPoint num="7" id="6561" />
+<extraparam>
+<info value="Zigbee_TX::X_Symbol2ChipSeq" taskName="X_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="Mapper operation" fatherComponentMECType="3" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1102" id="6612" >
+<cdparam x="845" y="875" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_Bus" value="name" />
+<TGConnectingPoint num="0" id="6588" />
+<TGConnectingPoint num="1" id="6589" />
+<TGConnectingPoint num="2" id="6590" />
+<TGConnectingPoint num="3" id="6591" />
+<TGConnectingPoint num="4" id="6592" />
+<TGConnectingPoint num="5" id="6593" />
+<TGConnectingPoint num="6" id="6594" />
+<TGConnectingPoint num="7" id="6595" />
+<TGConnectingPoint num="8" id="6596" />
+<TGConnectingPoint num="9" id="6597" />
+<TGConnectingPoint num="10" id="6598" />
+<TGConnectingPoint num="11" id="6599" />
+<TGConnectingPoint num="12" id="6600" />
+<TGConnectingPoint num="13" id="6601" />
+<TGConnectingPoint num="14" id="6602" />
+<TGConnectingPoint num="15" id="6603" />
+<TGConnectingPoint num="16" id="6604" />
+<TGConnectingPoint num="17" id="6605" />
+<TGConnectingPoint num="18" id="6606" />
+<TGConnectingPoint num="19" id="6607" />
+<TGConnectingPoint num="20" id="6608" />
+<TGConnectingPoint num="21" id="6609" />
+<TGConnectingPoint num="22" id="6610" />
+<TGConnectingPoint num="23" id="6611" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="MAPPER_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1108" id="6630" >
+<cdparam x="103" y="1267" />
+<sizeparam width="419" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_Symbol2ChipSeq_Chips2Octet" value="CP0" />
+<TGConnectingPoint num="0" id="6622" />
+<TGConnectingPoint num="1" id="6623" />
+<TGConnectingPoint num="2" id="6624" />
+<TGConnectingPoint num="3" id="6625" />
+<TGConnectingPoint num="4" id="6626" />
+<TGConnectingPoint num="5" id="6627" />
+<TGConnectingPoint num="6" id="6628" />
+<TGConnectingPoint num="7" id="6629" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="ADAIF_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="ADAIF_Bridge, MainBus, MainBridge, Crossbar, ADAIF_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="ADAIF_Bridge, MainBus, MainBridge, Crossbar, ADAIF_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, INTL_Bridge, INTL_Bus, ADAIF_Bus" />
+<mappedAttributes type="int" name="destinationAddress" value="123" />
+<mappedAttributes type="int" name="sourceAddress" value="123" />
+<mappedAttributes type="int" name="counter" value="123" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="6621" >
+<father id="6630" num="0" />
+<cdparam x="292" y="1303" />
+<sizeparam width="212" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="207" minY="0" maxY="45" />
+<infoparam name="TGComponent" value="Zigbee_TX::chip2octet_ch_in" />
+<TGConnectingPoint num="0" id="6613" />
+<TGConnectingPoint num="1" id="6614" />
+<TGConnectingPoint num="2" id="6615" />
+<TGConnectingPoint num="3" id="6616" />
+<TGConnectingPoint num="4" id="6617" />
+<TGConnectingPoint num="5" id="6618" />
+<TGConnectingPoint num="6" id="6619" />
+<TGConnectingPoint num="7" id="6620" />
+<extraparam>
+<info value="Zigbee_TX::chip2octet_ch_in" portName="chip2octet_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="INTL_MSS" bufferType="3" packedBinaryIn="" width="" bitInOffset="" inputOffset="" packedBinaryOut="" bitOutOffset="" outputOffset="" offsetPerm="" lengthPerm="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1108" id="6648" >
+<cdparam x="105" y="1396" />
+<sizeparam width="405" height="88" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_Chip2Octet_CWL" value="CP0" />
+<TGConnectingPoint num="0" id="6640" />
+<TGConnectingPoint num="1" id="6641" />
+<TGConnectingPoint num="2" id="6642" />
+<TGConnectingPoint num="3" id="6643" />
+<TGConnectingPoint num="4" id="6644" />
+<TGConnectingPoint num="5" id="6645" />
+<TGConnectingPoint num="6" id="6646" />
+<TGConnectingPoint num="7" id="6647" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="INTL_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="6639" >
+<father id="6648" num="0" />
+<cdparam x="327" y="1437" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="241" minY="0" maxY="48" />
+<infoparam name="TGComponent" value="Zigbee_TX::cwl_ch_in" />
+<TGConnectingPoint num="0" id="6631" />
+<TGConnectingPoint num="1" id="6632" />
+<TGConnectingPoint num="2" id="6633" />
+<TGConnectingPoint num="3" id="6634" />
+<TGConnectingPoint num="4" id="6635" />
+<TGConnectingPoint num="5" id="6636" />
+<TGConnectingPoint num="6" id="6637" />
+<TGConnectingPoint num="7" id="6638" />
+<extraparam>
+<info value="Zigbee_TX::cwl_ch_in" portName="cwl_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="FEP_MSS" bufferType="0" baseAddress="0x123" numSamples="1234" bank="0" dataType="int8" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1108" id="6666" >
+<cdparam x="627" y="1252" />
+<sizeparam width="295" height="145" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_sink" value="CP0" />
+<TGConnectingPoint num="0" id="6658" />
+<TGConnectingPoint num="1" id="6659" />
+<TGConnectingPoint num="2" id="6660" />
+<TGConnectingPoint num="3" id="6661" />
+<TGConnectingPoint num="4" id="6662" />
+<TGConnectingPoint num="5" id="6663" />
+<TGConnectingPoint num="6" id="6664" />
+<TGConnectingPoint num="7" id="6665" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_sink" cpMEC="Double DMA" transferType1="0" transferType2="0" />
+<attributes reference="Double_DMA_transfer" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_2" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_2" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_2" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_2" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_6" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_5" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_8" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_7" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="6657" >
+<father id="6666" num="0" />
+<cdparam x="701" y="1315" />
+<sizeparam width="170" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="125" minY="0" maxY="105" />
+<infoparam name="TGComponent" value="Zigbee_TX::sink_ch_in" />
+<TGConnectingPoint num="0" id="6649" />
+<TGConnectingPoint num="1" id="6650" />
+<TGConnectingPoint num="2" id="6651" />
+<TGConnectingPoint num="3" id="6652" />
+<TGConnectingPoint num="4" id="6653" />
+<TGConnectingPoint num="5" id="6654" />
+<TGConnectingPoint num="6" id="6655" />
+<TGConnectingPoint num="7" id="6656" />
+<extraparam>
+<info value="Zigbee_TX::sink_ch_in" portName="sink_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="ADAIF_MSS" bufferType="2" numSamples="123" baseAddress="0x123" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1108" id="6684" >
+<cdparam x="106" y="1143" />
+<sizeparam width="421" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_Source_to_Bits2Symbol" value="CP0" />
+<TGConnectingPoint num="0" id="6676" />
+<TGConnectingPoint num="1" id="6677" />
+<TGConnectingPoint num="2" id="6678" />
+<TGConnectingPoint num="3" id="6679" />
+<TGConnectingPoint num="4" id="6680" />
+<TGConnectingPoint num="5" id="6681" />
+<TGConnectingPoint num="6" id="6682" />
+<TGConnectingPoint num="7" id="6683" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="Memory Copy" transferType1="0" transferType2="0" />
+<attributes reference="CP_Memory_Copy" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Dst_Storage_Instance" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="CPU_Controller" architectureUnit="MainCPU" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance_1" architectureUnit="MainBus" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance2" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Src_Storage_Instance" architectureUnit="ADAIF_MSS" />
+<mappedAttributes type="addr" name="sourceAddress" value="0x123" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="6675" >
+<father id="6684" num="0" />
+<cdparam x="280" y="1181" />
+<sizeparam width="247" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" />
+<infoparam name="TGComponent" value="Zigbee_TX::symbol2ChipSeq_ch_in" />
+<TGConnectingPoint num="0" id="6667" />
+<TGConnectingPoint num="1" id="6668" />
+<TGConnectingPoint num="2" id="6669" />
+<TGConnectingPoint num="3" id="6670" />
+<TGConnectingPoint num="4" id="6671" />
+<TGConnectingPoint num="5" id="6672" />
+<TGConnectingPoint num="6" id="6673" />
+<TGConnectingPoint num="7" id="6674" />
+<extraparam>
+<info value="Zigbee_TX::symbol2ChipSeq_ch_in" portName="symbol2ChipSeq_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="MAPPER_MSS" bufferType="1" numSamplesDataIn="123" baseAddressDataIn="0x123" bitsPerSymbolDataIn="123" symmetricalValueDataIn="OFF" baseAddressDataOut="0x123" baseAddressLUT="0x123" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="125" id="6685" >
+<cdparam x="1367" y="660" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1367" y="660" id="6146" />
+<P2  x="1076" y="660" id="6172" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6686" >
+<cdparam x="1147" y="508" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1147" y="508" id="6332" />
+<P2  x="1076" y="635" id="6170" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6687" >
+<cdparam x="1298" y="875" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1249" y="850" id="6480" />
+<P2  x="1076" y="685" id="6175" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6688" >
+<cdparam x="1019" y="805" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="970" y="780" id="6505" />
+<P2  x="864" y="685" id="6183" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6689" >
+<cdparam x="1004" y="531" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="960" y="566" id="6435" />
+<P2  x="864" y="635" id="6177" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6690" >
+<cdparam x="1185" y="660" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1467" y="660" id="6147" />
+<P2  x="1527" y="660" id="6121" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6691" >
+<cdparam x="356" y="788" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="788" id="6199" />
+<P2  x="356" y="832" id="6278" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6692" >
+<cdparam x="554" y="806" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="560" y="807" id="5862" />
+<P2  x="442" y="685" id="6182" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6693" >
+<cdparam x="559" y="863" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="560" y="857" id="5865" />
+<P2  x="481" y="857" id="6281" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6694" >
+<cdparam x="586" y="970" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="541" y="949" id="6219" />
+<P2  x="418" y="882" id="6292" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6695" >
+<cdparam x="165" y="927" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="208" y="938" id="6253" />
+<P2  x="293" y="882" id="6291" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6696" >
+<cdparam x="355" y="576" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="580" id="5977" />
+<P2  x="231" y="635" id="6168" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6697" >
+<cdparam x="355" y="541" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="545" id="5972" />
+<P2  x="356" y="497" id="6308" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6698" >
+<cdparam x="543" y="522" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="543" y="522" id="5892" />
+<P2  x="442" y="635" id="6176" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6699" >
+<cdparam x="536" y="475" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="543" y="472" id="5890" />
+<P2  x="481" y="472" id="6306" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6700" >
+<cdparam x="549" y="337" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="454" y="395" id="5918" />
+<P2  x="418" y="447" id="6311" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6701" >
+<cdparam x="155" y="323" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="155" y="396" id="5952" />
+<P2  x="293" y="447" id="6310" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6702" >
+<cdparam x="357" y="778" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="737" id="6194" />
+<P2  x="231" y="685" id="6173" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6703" >
+<cdparam x="1654" y="758" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1652" y="737" id="5997" />
+<P2  x="1652" y="685" id="6124" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6704" >
+<cdparam x="1651" y="573" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1652" y="586" id="6099" />
+<P2  x="1652" y="635" id="6119" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6705" >
+<cdparam x="959" y="527" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="960" y="531" id="6430" />
+<P2  x="960" y="483" id="6460" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6706" >
+<cdparam x="1140" 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="1147" y="458" id="6330" />
+<P2  x="1085" y="458" id="6458" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6707" >
+<cdparam x="1189" y="374" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1022" y="376" id="6358" />
+<P2  x="1022" y="433" id="6463" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6708" >
+<cdparam x="795" y="360" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="738" y="384" id="6410" />
+<P2  x="897" y="433" id="6462" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6709" >
+<cdparam x="970" y="831" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="970" y="831" id="6510" />
+<P2  x="970" y="875" id="6589" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6710" >
+<cdparam x="1173" y="906" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1174" y="900" id="6482" />
+<P2  x="1095" y="900" id="6592" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6711" >
+<cdparam x="1200" y="1013" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1200" y="978" id="6530" />
+<P2  x="1032" y="925" id="6603" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="6712" >
+<cdparam x="779" y="970" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="861" y="984" id="6564" />
+<P2  x="907" y="925" id="6602" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+
+</TMLArchiDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Architecture" nameTab="Mapping_2" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1900" minY="10" maxY="1900" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1100" id="6737" >
+<cdparam x="560" y="807" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_DMA" value="name" />
+<TGConnectingPoint num="0" id="6713" />
+<TGConnectingPoint num="1" id="6714" />
+<TGConnectingPoint num="2" id="6715" />
+<TGConnectingPoint num="3" id="6716" />
+<TGConnectingPoint num="4" id="6717" />
+<TGConnectingPoint num="5" id="6718" />
+<TGConnectingPoint num="6" id="6719" />
+<TGConnectingPoint num="7" id="6720" />
+<TGConnectingPoint num="8" id="6721" />
+<TGConnectingPoint num="9" id="6722" />
+<TGConnectingPoint num="10" id="6723" />
+<TGConnectingPoint num="11" id="6724" />
+<TGConnectingPoint num="12" id="6725" />
+<TGConnectingPoint num="13" id="6726" />
+<TGConnectingPoint num="14" id="6727" />
+<TGConnectingPoint num="15" id="6728" />
+<TGConnectingPoint num="16" id="6729" />
+<TGConnectingPoint num="17" id="6730" />
+<TGConnectingPoint num="18" id="6731" />
+<TGConnectingPoint num="19" id="6732" />
+<TGConnectingPoint num="20" id="6733" />
+<TGConnectingPoint num="21" id="6734" />
+<TGConnectingPoint num="22" id="6735" />
+<TGConnectingPoint num="23" id="6736" />
+<extraparam>
+<info stereotype="CPURR" nodeName="INTL_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="6762" >
+<cdparam x="543" y="422" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_DMA" value="name" />
+<TGConnectingPoint num="0" id="6738" />
+<TGConnectingPoint num="1" id="6739" />
+<TGConnectingPoint num="2" id="6740" />
+<TGConnectingPoint num="3" id="6741" />
+<TGConnectingPoint num="4" id="6742" />
+<TGConnectingPoint num="5" id="6743" />
+<TGConnectingPoint num="6" id="6744" />
+<TGConnectingPoint num="7" id="6745" />
+<TGConnectingPoint num="8" id="6746" />
+<TGConnectingPoint num="9" id="6747" />
+<TGConnectingPoint num="10" id="6748" />
+<TGConnectingPoint num="11" id="6749" />
+<TGConnectingPoint num="12" id="6750" />
+<TGConnectingPoint num="13" id="6751" />
+<TGConnectingPoint num="14" id="6752" />
+<TGConnectingPoint num="15" id="6753" />
+<TGConnectingPoint num="16" id="6754" />
+<TGConnectingPoint num="17" id="6755" />
+<TGConnectingPoint num="18" id="6756" />
+<TGConnectingPoint num="19" id="6757" />
+<TGConnectingPoint num="20" id="6758" />
+<TGConnectingPoint num="21" id="6759" />
+<TGConnectingPoint num="22" id="6760" />
+<TGConnectingPoint num="23" id="6761" />
+<extraparam>
+<info stereotype="CPURR" nodeName="ADAIF_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="6787" >
+<cdparam x="354" y="243" />
+<sizeparam width="200" height="152" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_MSS" value="name" />
+<TGConnectingPoint num="0" id="6763" />
+<TGConnectingPoint num="1" id="6764" />
+<TGConnectingPoint num="2" id="6765" />
+<TGConnectingPoint num="3" id="6766" />
+<TGConnectingPoint num="4" id="6767" />
+<TGConnectingPoint num="5" id="6768" />
+<TGConnectingPoint num="6" id="6769" />
+<TGConnectingPoint num="7" id="6770" />
+<TGConnectingPoint num="8" id="6771" />
+<TGConnectingPoint num="9" id="6772" />
+<TGConnectingPoint num="10" id="6773" />
+<TGConnectingPoint num="11" id="6774" />
+<TGConnectingPoint num="12" id="6775" />
+<TGConnectingPoint num="13" id="6776" />
+<TGConnectingPoint num="14" id="6777" />
+<TGConnectingPoint num="15" id="6778" />
+<TGConnectingPoint num="16" id="6779" />
+<TGConnectingPoint num="17" id="6780" />
+<TGConnectingPoint num="18" id="6781" />
+<TGConnectingPoint num="19" id="6782" />
+<TGConnectingPoint num="20" id="6783" />
+<TGConnectingPoint num="21" id="6784" />
+<TGConnectingPoint num="22" id="6785" />
+<TGConnectingPoint num="23" id="6786" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="ADAIF_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="2" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="6821" >
+<cdparam x="29" y="215" />
+<sizeparam width="252" height="181" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_PSS" value="name" />
+<TGConnectingPoint num="0" id="6797" />
+<TGConnectingPoint num="1" id="6798" />
+<TGConnectingPoint num="2" id="6799" />
+<TGConnectingPoint num="3" id="6800" />
+<TGConnectingPoint num="4" id="6801" />
+<TGConnectingPoint num="5" id="6802" />
+<TGConnectingPoint num="6" id="6803" />
+<TGConnectingPoint num="7" id="6804" />
+<TGConnectingPoint num="8" id="6805" />
+<TGConnectingPoint num="9" id="6806" />
+<TGConnectingPoint num="10" id="6807" />
+<TGConnectingPoint num="11" id="6808" />
+<TGConnectingPoint num="12" id="6809" />
+<TGConnectingPoint num="13" id="6810" />
+<TGConnectingPoint num="14" id="6811" />
+<TGConnectingPoint num="15" id="6812" />
+<TGConnectingPoint num="16" id="6813" />
+<TGConnectingPoint num="17" id="6814" />
+<TGConnectingPoint num="18" id="6815" />
+<TGConnectingPoint num="19" id="6816" />
+<TGConnectingPoint num="20" id="6817" />
+<TGConnectingPoint num="21" id="6818" />
+<TGConnectingPoint num="22" id="6819" />
+<TGConnectingPoint num="23" id="6820" />
+<extraparam>
+<info stereotype="CPURR" nodeName="ADAIF_PSS" />
+<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" MECType="4" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="6796" >
+<father id="6821" num="0" />
+<cdparam x="48" y="315" />
+<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Sink" />
+<TGConnectingPoint num="0" id="6788" />
+<TGConnectingPoint num="1" id="6789" />
+<TGConnectingPoint num="2" id="6790" />
+<TGConnectingPoint num="3" id="6791" />
+<TGConnectingPoint num="4" id="6792" />
+<TGConnectingPoint num="5" id="6793" />
+<TGConnectingPoint num="6" id="6794" />
+<TGConnectingPoint num="7" id="6795" />
+<extraparam>
+<info value="Zigbee_TX::X_Sink" taskName="X_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="Adaif operation" fatherComponentMECType="4" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1106" id="6846" >
+<cdparam x="306" y="545" />
+<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_Bridge" value="name" />
+<TGConnectingPoint num="0" id="6822" />
+<TGConnectingPoint num="1" id="6823" />
+<TGConnectingPoint num="2" id="6824" />
+<TGConnectingPoint num="3" id="6825" />
+<TGConnectingPoint num="4" id="6826" />
+<TGConnectingPoint num="5" id="6827" />
+<TGConnectingPoint num="6" id="6828" />
+<TGConnectingPoint num="7" id="6829" />
+<TGConnectingPoint num="8" id="6830" />
+<TGConnectingPoint num="9" id="6831" />
+<TGConnectingPoint num="10" id="6832" />
+<TGConnectingPoint num="11" id="6833" />
+<TGConnectingPoint num="12" id="6834" />
+<TGConnectingPoint num="13" id="6835" />
+<TGConnectingPoint num="14" id="6836" />
+<TGConnectingPoint num="15" id="6837" />
+<TGConnectingPoint num="16" id="6838" />
+<TGConnectingPoint num="17" id="6839" />
+<TGConnectingPoint num="18" id="6840" />
+<TGConnectingPoint num="19" id="6841" />
+<TGConnectingPoint num="20" id="6842" />
+<TGConnectingPoint num="21" id="6843" />
+<TGConnectingPoint num="22" id="6844" />
+<TGConnectingPoint num="23" id="6845" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="ADAIF_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="6871" >
+<cdparam x="1544" y="737" />
+<sizeparam width="216" height="140" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainMemory" value="name" />
+<TGConnectingPoint num="0" id="6847" />
+<TGConnectingPoint num="1" id="6848" />
+<TGConnectingPoint num="2" id="6849" />
+<TGConnectingPoint num="3" id="6850" />
+<TGConnectingPoint num="4" id="6851" />
+<TGConnectingPoint num="5" id="6852" />
+<TGConnectingPoint num="6" id="6853" />
+<TGConnectingPoint num="7" id="6854" />
+<TGConnectingPoint num="8" id="6855" />
+<TGConnectingPoint num="9" id="6856" />
+<TGConnectingPoint num="10" id="6857" />
+<TGConnectingPoint num="11" id="6858" />
+<TGConnectingPoint num="12" id="6859" />
+<TGConnectingPoint num="13" id="6860" />
+<TGConnectingPoint num="14" id="6861" />
+<TGConnectingPoint num="15" id="6862" />
+<TGConnectingPoint num="16" id="6863" />
+<TGConnectingPoint num="17" id="6864" />
+<TGConnectingPoint num="18" id="6865" />
+<TGConnectingPoint num="19" id="6866" />
+<TGConnectingPoint num="20" id="6867" />
+<TGConnectingPoint num="21" id="6868" />
+<TGConnectingPoint num="22" id="6869" />
+<TGConnectingPoint num="23" id="6870" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="MainMemory" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="4" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="6968" >
+<cdparam x="1444" y="293" />
+<sizeparam width="417" height="293" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainCPU" value="name" />
+<TGConnectingPoint num="0" id="6944" />
+<TGConnectingPoint num="1" id="6945" />
+<TGConnectingPoint num="2" id="6946" />
+<TGConnectingPoint num="3" id="6947" />
+<TGConnectingPoint num="4" id="6948" />
+<TGConnectingPoint num="5" id="6949" />
+<TGConnectingPoint num="6" id="6950" />
+<TGConnectingPoint num="7" id="6951" />
+<TGConnectingPoint num="8" id="6952" />
+<TGConnectingPoint num="9" id="6953" />
+<TGConnectingPoint num="10" id="6954" />
+<TGConnectingPoint num="11" id="6955" />
+<TGConnectingPoint num="12" id="6956" />
+<TGConnectingPoint num="13" id="6957" />
+<TGConnectingPoint num="14" id="6958" />
+<TGConnectingPoint num="15" id="6959" />
+<TGConnectingPoint num="16" id="6960" />
+<TGConnectingPoint num="17" id="6961" />
+<TGConnectingPoint num="18" id="6962" />
+<TGConnectingPoint num="19" id="6963" />
+<TGConnectingPoint num="20" id="6964" />
+<TGConnectingPoint num="21" id="6965" />
+<TGConnectingPoint num="22" id="6966" />
+<TGConnectingPoint num="23" id="6967" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MainCPU" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="6880" >
+<father id="6968" num="0" />
+<cdparam x="1686" y="522" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
+<TGConnectingPoint num="0" id="6872" />
+<TGConnectingPoint num="1" id="6873" />
+<TGConnectingPoint num="2" id="6874" />
+<TGConnectingPoint num="3" id="6875" />
+<TGConnectingPoint num="4" id="6876" />
+<TGConnectingPoint num="5" id="6877" />
+<TGConnectingPoint num="6" id="6878" />
+<TGConnectingPoint num="7" id="6879" />
+<extraparam>
+<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6889" >
+<father id="6968" num="1" />
+<cdparam x="1685" y="459" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
+<TGConnectingPoint num="0" id="6881" />
+<TGConnectingPoint num="1" id="6882" />
+<TGConnectingPoint num="2" id="6883" />
+<TGConnectingPoint num="3" id="6884" />
+<TGConnectingPoint num="4" id="6885" />
+<TGConnectingPoint num="5" id="6886" />
+<TGConnectingPoint num="6" id="6887" />
+<TGConnectingPoint num="7" id="6888" />
+<extraparam>
+<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6898" >
+<father id="6968" num="2" />
+<cdparam x="1691" y="345" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
+<TGConnectingPoint num="0" id="6890" />
+<TGConnectingPoint num="1" id="6891" />
+<TGConnectingPoint num="2" id="6892" />
+<TGConnectingPoint num="3" id="6893" />
+<TGConnectingPoint num="4" id="6894" />
+<TGConnectingPoint num="5" id="6895" />
+<TGConnectingPoint num="6" id="6896" />
+<TGConnectingPoint num="7" id="6897" />
+<extraparam>
+<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6907" >
+<father id="6968" num="3" />
+<cdparam x="1688" y="405" />
+<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
+<TGConnectingPoint num="0" id="6899" />
+<TGConnectingPoint num="1" id="6900" />
+<TGConnectingPoint num="2" id="6901" />
+<TGConnectingPoint num="3" id="6902" />
+<TGConnectingPoint num="4" id="6903" />
+<TGConnectingPoint num="5" id="6904" />
+<TGConnectingPoint num="6" id="6905" />
+<TGConnectingPoint num="7" id="6906" />
+<extraparam>
+<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6916" >
+<father id="6968" num="4" />
+<cdparam x="1466" y="518" />
+<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="228" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" />
+<TGConnectingPoint num="0" id="6908" />
+<TGConnectingPoint num="1" id="6909" />
+<TGConnectingPoint num="2" id="6910" />
+<TGConnectingPoint num="3" id="6911" />
+<TGConnectingPoint num="4" id="6912" />
+<TGConnectingPoint num="5" id="6913" />
+<TGConnectingPoint num="6" id="6914" />
+<TGConnectingPoint num="7" id="6915" />
+<extraparam>
+<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip2Octet" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6925" >
+<father id="6968" num="5" />
+<cdparam x="1466" y="456" />
+<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
+<TGConnectingPoint num="0" id="6917" />
+<TGConnectingPoint num="1" id="6918" />
+<TGConnectingPoint num="2" id="6919" />
+<TGConnectingPoint num="3" id="6920" />
+<TGConnectingPoint num="4" id="6921" />
+<TGConnectingPoint num="5" id="6922" />
+<TGConnectingPoint num="6" id="6923" />
+<TGConnectingPoint num="7" id="6924" />
+<extraparam>
+<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6934" >
+<father id="6968" num="6" />
+<cdparam x="1466" y="395" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
+<TGConnectingPoint num="0" id="6926" />
+<TGConnectingPoint num="1" id="6927" />
+<TGConnectingPoint num="2" id="6928" />
+<TGConnectingPoint num="3" id="6929" />
+<TGConnectingPoint num="4" id="6930" />
+<TGConnectingPoint num="5" id="6931" />
+<TGConnectingPoint num="6" id="6932" />
+<TGConnectingPoint num="7" id="6933" />
+<extraparam>
+<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="6943" >
+<father id="6968" num="7" />
+<cdparam x="1465" y="339" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
+<TGConnectingPoint num="0" id="6935" />
+<TGConnectingPoint num="1" id="6936" />
+<TGConnectingPoint num="2" id="6937" />
+<TGConnectingPoint num="3" id="6938" />
+<TGConnectingPoint num="4" id="6939" />
+<TGConnectingPoint num="5" id="6940" />
+<TGConnectingPoint num="6" id="6941" />
+<TGConnectingPoint num="7" id="6942" />
+<extraparam>
+<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1102" id="6993" >
+<cdparam x="1527" y="635" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainBus" value="name" />
+<TGConnectingPoint num="0" id="6969" />
+<TGConnectingPoint num="1" id="6970" />
+<TGConnectingPoint num="2" id="6971" />
+<TGConnectingPoint num="3" id="6972" />
+<TGConnectingPoint num="4" id="6973" />
+<TGConnectingPoint num="5" id="6974" />
+<TGConnectingPoint num="6" id="6975" />
+<TGConnectingPoint num="7" id="6976" />
+<TGConnectingPoint num="8" id="6977" />
+<TGConnectingPoint num="9" id="6978" />
+<TGConnectingPoint num="10" id="6979" />
+<TGConnectingPoint num="11" id="6980" />
+<TGConnectingPoint num="12" id="6981" />
+<TGConnectingPoint num="13" id="6982" />
+<TGConnectingPoint num="14" id="6983" />
+<TGConnectingPoint num="15" id="6984" />
+<TGConnectingPoint num="16" id="6985" />
+<TGConnectingPoint num="17" id="6986" />
+<TGConnectingPoint num="18" id="6987" />
+<TGConnectingPoint num="19" id="6988" />
+<TGConnectingPoint num="20" id="6989" />
+<TGConnectingPoint num="21" id="6990" />
+<TGConnectingPoint num="22" id="6991" />
+<TGConnectingPoint num="23" id="6992" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="MainBus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="7018" >
+<cdparam x="1367" y="610" />
+<sizeparam width="100" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MainBridge" value="name" />
+<TGConnectingPoint num="0" id="6994" />
+<TGConnectingPoint num="1" id="6995" />
+<TGConnectingPoint num="2" id="6996" />
+<TGConnectingPoint num="3" id="6997" />
+<TGConnectingPoint num="4" id="6998" />
+<TGConnectingPoint num="5" id="6999" />
+<TGConnectingPoint num="6" id="7000" />
+<TGConnectingPoint num="7" id="7001" />
+<TGConnectingPoint num="8" id="7002" />
+<TGConnectingPoint num="9" id="7003" />
+<TGConnectingPoint num="10" id="7004" />
+<TGConnectingPoint num="11" id="7005" />
+<TGConnectingPoint num="12" id="7006" />
+<TGConnectingPoint num="13" id="7007" />
+<TGConnectingPoint num="14" id="7008" />
+<TGConnectingPoint num="15" id="7009" />
+<TGConnectingPoint num="16" id="7010" />
+<TGConnectingPoint num="17" id="7011" />
+<TGConnectingPoint num="18" id="7012" />
+<TGConnectingPoint num="19" id="7013" />
+<TGConnectingPoint num="20" id="7014" />
+<TGConnectingPoint num="21" id="7015" />
+<TGConnectingPoint num="22" id="7016" />
+<TGConnectingPoint num="23" id="7017" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="MainBridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="7043" >
+<cdparam x="231" y="635" />
+<sizeparam width="845" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="Crossbar" value="name" />
+<TGConnectingPoint num="0" id="7019" />
+<TGConnectingPoint num="1" id="7020" />
+<TGConnectingPoint num="2" id="7021" />
+<TGConnectingPoint num="3" id="7022" />
+<TGConnectingPoint num="4" id="7023" />
+<TGConnectingPoint num="5" id="7024" />
+<TGConnectingPoint num="6" id="7025" />
+<TGConnectingPoint num="7" id="7026" />
+<TGConnectingPoint num="8" id="7027" />
+<TGConnectingPoint num="9" id="7028" />
+<TGConnectingPoint num="10" id="7029" />
+<TGConnectingPoint num="11" id="7030" />
+<TGConnectingPoint num="12" id="7031" />
+<TGConnectingPoint num="13" id="7032" />
+<TGConnectingPoint num="14" id="7033" />
+<TGConnectingPoint num="15" id="7034" />
+<TGConnectingPoint num="16" id="7035" />
+<TGConnectingPoint num="17" id="7036" />
+<TGConnectingPoint num="18" id="7037" />
+<TGConnectingPoint num="19" id="7038" />
+<TGConnectingPoint num="20" id="7039" />
+<TGConnectingPoint num="21" id="7040" />
+<TGConnectingPoint num="22" id="7041" />
+<TGConnectingPoint num="23" id="7042" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="Crossbar" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="7068" >
+<cdparam x="306" y="737" />
+<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_Bridge" value="name" />
+<TGConnectingPoint num="0" id="7044" />
+<TGConnectingPoint num="1" id="7045" />
+<TGConnectingPoint num="2" id="7046" />
+<TGConnectingPoint num="3" id="7047" />
+<TGConnectingPoint num="4" id="7048" />
+<TGConnectingPoint num="5" id="7049" />
+<TGConnectingPoint num="6" id="7050" />
+<TGConnectingPoint num="7" id="7051" />
+<TGConnectingPoint num="8" id="7052" />
+<TGConnectingPoint num="9" id="7053" />
+<TGConnectingPoint num="10" id="7054" />
+<TGConnectingPoint num="11" id="7055" />
+<TGConnectingPoint num="12" id="7056" />
+<TGConnectingPoint num="13" id="7057" />
+<TGConnectingPoint num="14" id="7058" />
+<TGConnectingPoint num="15" id="7059" />
+<TGConnectingPoint num="16" id="7060" />
+<TGConnectingPoint num="17" id="7061" />
+<TGConnectingPoint num="18" id="7062" />
+<TGConnectingPoint num="19" id="7063" />
+<TGConnectingPoint num="20" id="7064" />
+<TGConnectingPoint num="21" id="7065" />
+<TGConnectingPoint num="22" id="7066" />
+<TGConnectingPoint num="23" id="7067" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="INTL_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="7093" >
+<cdparam x="376" y="949" />
+<sizeparam width="331" height="135" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_MSS" value="name" />
+<TGConnectingPoint num="0" id="7069" />
+<TGConnectingPoint num="1" id="7070" />
+<TGConnectingPoint num="2" id="7071" />
+<TGConnectingPoint num="3" id="7072" />
+<TGConnectingPoint num="4" id="7073" />
+<TGConnectingPoint num="5" id="7074" />
+<TGConnectingPoint num="6" id="7075" />
+<TGConnectingPoint num="7" id="7076" />
+<TGConnectingPoint num="8" id="7077" />
+<TGConnectingPoint num="9" id="7078" />
+<TGConnectingPoint num="10" id="7079" />
+<TGConnectingPoint num="11" id="7080" />
+<TGConnectingPoint num="12" id="7081" />
+<TGConnectingPoint num="13" id="7082" />
+<TGConnectingPoint num="14" id="7083" />
+<TGConnectingPoint num="15" id="7084" />
+<TGConnectingPoint num="16" id="7085" />
+<TGConnectingPoint num="17" id="7086" />
+<TGConnectingPoint num="18" id="7087" />
+<TGConnectingPoint num="19" id="7088" />
+<TGConnectingPoint num="20" id="7089" />
+<TGConnectingPoint num="21" id="7090" />
+<TGConnectingPoint num="22" id="7091" />
+<TGConnectingPoint num="23" id="7092" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="INTL_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="3" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="7127" >
+<cdparam x="91" y="938" />
+<sizeparam width="234" height="140" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_PSS" value="name" />
+<TGConnectingPoint num="0" id="7103" />
+<TGConnectingPoint num="1" id="7104" />
+<TGConnectingPoint num="2" id="7105" />
+<TGConnectingPoint num="3" id="7106" />
+<TGConnectingPoint num="4" id="7107" />
+<TGConnectingPoint num="5" id="7108" />
+<TGConnectingPoint num="6" id="7109" />
+<TGConnectingPoint num="7" id="7110" />
+<TGConnectingPoint num="8" id="7111" />
+<TGConnectingPoint num="9" id="7112" />
+<TGConnectingPoint num="10" id="7113" />
+<TGConnectingPoint num="11" id="7114" />
+<TGConnectingPoint num="12" id="7115" />
+<TGConnectingPoint num="13" id="7116" />
+<TGConnectingPoint num="14" id="7117" />
+<TGConnectingPoint num="15" id="7118" />
+<TGConnectingPoint num="16" id="7119" />
+<TGConnectingPoint num="17" id="7120" />
+<TGConnectingPoint num="18" id="7121" />
+<TGConnectingPoint num="19" id="7122" />
+<TGConnectingPoint num="20" id="7123" />
+<TGConnectingPoint num="21" id="7124" />
+<TGConnectingPoint num="22" id="7125" />
+<TGConnectingPoint num="23" id="7126" />
+<extraparam>
+<info stereotype="CPURR" nodeName="INTL_PSS" />
+<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" MECType="2" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="7102" >
+<father id="7127" num="0" />
+<cdparam x="105" y="993" />
+<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="45" minY="0" maxY="100" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" />
+<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" />
+<extraparam>
+<info value="Zigbee_TX::X_Chip2Octet" taskName="X_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="Interleaver operation" fatherComponentMECType="2" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1102" id="7152" >
+<cdparam x="231" y="832" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="INTL_Bus" value="name" />
+<TGConnectingPoint num="0" id="7128" />
+<TGConnectingPoint num="1" id="7129" />
+<TGConnectingPoint num="2" id="7130" />
+<TGConnectingPoint num="3" id="7131" />
+<TGConnectingPoint num="4" id="7132" />
+<TGConnectingPoint num="5" id="7133" />
+<TGConnectingPoint num="6" id="7134" />
+<TGConnectingPoint num="7" id="7135" />
+<TGConnectingPoint num="8" id="7136" />
+<TGConnectingPoint num="9" id="7137" />
+<TGConnectingPoint num="10" id="7138" />
+<TGConnectingPoint num="11" id="7139" />
+<TGConnectingPoint num="12" id="7140" />
+<TGConnectingPoint num="13" id="7141" />
+<TGConnectingPoint num="14" id="7142" />
+<TGConnectingPoint num="15" id="7143" />
+<TGConnectingPoint num="16" id="7144" />
+<TGConnectingPoint num="17" id="7145" />
+<TGConnectingPoint num="18" id="7146" />
+<TGConnectingPoint num="19" id="7147" />
+<TGConnectingPoint num="20" id="7148" />
+<TGConnectingPoint num="21" id="7149" />
+<TGConnectingPoint num="22" id="7150" />
+<TGConnectingPoint num="23" id="7151" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="INTL_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="7177" >
+<cdparam x="231" y="447" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="ADAIF_Bus" value="name" />
+<TGConnectingPoint num="0" id="7153" />
+<TGConnectingPoint num="1" id="7154" />
+<TGConnectingPoint num="2" id="7155" />
+<TGConnectingPoint num="3" id="7156" />
+<TGConnectingPoint num="4" id="7157" />
+<TGConnectingPoint num="5" id="7158" />
+<TGConnectingPoint num="6" id="7159" />
+<TGConnectingPoint num="7" id="7160" />
+<TGConnectingPoint num="8" id="7161" />
+<TGConnectingPoint num="9" id="7162" />
+<TGConnectingPoint num="10" id="7163" />
+<TGConnectingPoint num="11" id="7164" />
+<TGConnectingPoint num="12" id="7165" />
+<TGConnectingPoint num="13" id="7166" />
+<TGConnectingPoint num="14" id="7167" />
+<TGConnectingPoint num="15" id="7168" />
+<TGConnectingPoint num="16" id="7169" />
+<TGConnectingPoint num="17" id="7170" />
+<TGConnectingPoint num="18" id="7171" />
+<TGConnectingPoint num="19" id="7172" />
+<TGConnectingPoint num="20" id="7173" />
+<TGConnectingPoint num="21" id="7174" />
+<TGConnectingPoint num="22" id="7175" />
+<TGConnectingPoint num="23" id="7176" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="ADAIF_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="7202" >
+<cdparam x="1147" y="408" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_DMA" value="name" />
+<TGConnectingPoint num="0" id="7178" />
+<TGConnectingPoint num="1" id="7179" />
+<TGConnectingPoint num="2" id="7180" />
+<TGConnectingPoint num="3" id="7181" />
+<TGConnectingPoint num="4" id="7182" />
+<TGConnectingPoint num="5" id="7183" />
+<TGConnectingPoint num="6" id="7184" />
+<TGConnectingPoint num="7" id="7185" />
+<TGConnectingPoint num="8" id="7186" />
+<TGConnectingPoint num="9" id="7187" />
+<TGConnectingPoint num="10" id="7188" />
+<TGConnectingPoint num="11" id="7189" />
+<TGConnectingPoint num="12" id="7190" />
+<TGConnectingPoint num="13" id="7191" />
+<TGConnectingPoint num="14" id="7192" />
+<TGConnectingPoint num="15" id="7193" />
+<TGConnectingPoint num="16" id="7194" />
+<TGConnectingPoint num="17" id="7195" />
+<TGConnectingPoint num="18" id="7196" />
+<TGConnectingPoint num="19" id="7197" />
+<TGConnectingPoint num="20" id="7198" />
+<TGConnectingPoint num="21" id="7199" />
+<TGConnectingPoint num="22" id="7200" />
+<TGConnectingPoint num="23" id="7201" />
+<extraparam>
+<info stereotype="CPURR" nodeName="FEP_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="7227" >
+<cdparam x="895" y="193" />
+<sizeparam width="255" height="183" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_MSS" value="name" />
+<TGConnectingPoint num="0" id="7203" />
+<TGConnectingPoint num="1" id="7204" />
+<TGConnectingPoint num="2" id="7205" />
+<TGConnectingPoint num="3" id="7206" />
+<TGConnectingPoint num="4" id="7207" />
+<TGConnectingPoint num="5" id="7208" />
+<TGConnectingPoint num="6" id="7209" />
+<TGConnectingPoint num="7" id="7210" />
+<TGConnectingPoint num="8" id="7211" />
+<TGConnectingPoint num="9" id="7212" />
+<TGConnectingPoint num="10" id="7213" />
+<TGConnectingPoint num="11" id="7214" />
+<TGConnectingPoint num="12" id="7215" />
+<TGConnectingPoint num="13" id="7216" />
+<TGConnectingPoint num="14" id="7217" />
+<TGConnectingPoint num="15" id="7218" />
+<TGConnectingPoint num="16" id="7219" />
+<TGConnectingPoint num="17" id="7220" />
+<TGConnectingPoint num="18" id="7221" />
+<TGConnectingPoint num="19" id="7222" />
+<TGConnectingPoint num="20" id="7223" />
+<TGConnectingPoint num="21" id="7224" />
+<TGConnectingPoint num="22" id="7225" />
+<TGConnectingPoint num="23" id="7226" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="FEP_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="0" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="7279" >
+<cdparam x="619" y="199" />
+<sizeparam width="238" height="185" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_PSS" value="name" />
+<TGConnectingPoint num="0" id="7255" />
+<TGConnectingPoint num="1" id="7256" />
+<TGConnectingPoint num="2" id="7257" />
+<TGConnectingPoint num="3" id="7258" />
+<TGConnectingPoint num="4" id="7259" />
+<TGConnectingPoint num="5" id="7260" />
+<TGConnectingPoint num="6" id="7261" />
+<TGConnectingPoint num="7" id="7262" />
+<TGConnectingPoint num="8" id="7263" />
+<TGConnectingPoint num="9" id="7264" />
+<TGConnectingPoint num="10" id="7265" />
+<TGConnectingPoint num="11" id="7266" />
+<TGConnectingPoint num="12" id="7267" />
+<TGConnectingPoint num="13" id="7268" />
+<TGConnectingPoint num="14" id="7269" />
+<TGConnectingPoint num="15" id="7270" />
+<TGConnectingPoint num="16" id="7271" />
+<TGConnectingPoint num="17" id="7272" />
+<TGConnectingPoint num="18" id="7273" />
+<TGConnectingPoint num="19" id="7274" />
+<TGConnectingPoint num="20" id="7275" />
+<TGConnectingPoint num="21" id="7276" />
+<TGConnectingPoint num="22" id="7277" />
+<TGConnectingPoint num="23" id="7278" />
+<extraparam>
+<info stereotype="CPURR" nodeName="FEP_PSS" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="2" execcTime="1" clockRatio="1" MECType="1" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="7236" >
+<father id="7279" num="0" />
+<cdparam x="639" y="239" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
+<TGConnectingPoint num="0" id="7228" />
+<TGConnectingPoint num="1" id="7229" />
+<TGConnectingPoint num="2" id="7230" />
+<TGConnectingPoint num="3" id="7231" />
+<TGConnectingPoint num="4" id="7232" />
+<TGConnectingPoint num="5" id="7233" />
+<TGConnectingPoint num="6" id="7234" />
+<TGConnectingPoint num="7" id="7235" />
+<extraparam>
+<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="7245" >
+<father id="7279" num="1" />
+<cdparam x="640" y="335" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_Q" />
+<TGConnectingPoint num="0" id="7237" />
+<TGConnectingPoint num="1" id="7238" />
+<TGConnectingPoint num="2" id="7239" />
+<TGConnectingPoint num="3" id="7240" />
+<TGConnectingPoint num="4" id="7241" />
+<TGConnectingPoint num="5" id="7242" />
+<TGConnectingPoint num="6" id="7243" />
+<TGConnectingPoint num="7" id="7244" />
+<extraparam>
+<info value="Zigbee_TX::X_CWP_Q" taskName="X_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="7254" >
+<father id="7279" num="2" />
+<cdparam x="671" y="289" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
+<TGConnectingPoint num="0" id="7246" />
+<TGConnectingPoint num="1" id="7247" />
+<TGConnectingPoint num="2" id="7248" />
+<TGConnectingPoint num="3" id="7249" />
+<TGConnectingPoint num="4" id="7250" />
+<TGConnectingPoint num="5" id="7251" />
+<TGConnectingPoint num="6" id="7252" />
+<TGConnectingPoint num="7" id="7253" />
+<extraparam>
+<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1106" id="7304" >
+<cdparam x="910" y="531" />
+<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_Bridge" value="name" />
+<TGConnectingPoint num="0" id="7280" />
+<TGConnectingPoint num="1" id="7281" />
+<TGConnectingPoint num="2" id="7282" />
+<TGConnectingPoint num="3" id="7283" />
+<TGConnectingPoint num="4" id="7284" />
+<TGConnectingPoint num="5" id="7285" />
+<TGConnectingPoint num="6" id="7286" />
+<TGConnectingPoint num="7" id="7287" />
+<TGConnectingPoint num="8" id="7288" />
+<TGConnectingPoint num="9" id="7289" />
+<TGConnectingPoint num="10" id="7290" />
+<TGConnectingPoint num="11" id="7291" />
+<TGConnectingPoint num="12" id="7292" />
+<TGConnectingPoint num="13" id="7293" />
+<TGConnectingPoint num="14" id="7294" />
+<TGConnectingPoint num="15" id="7295" />
+<TGConnectingPoint num="16" id="7296" />
+<TGConnectingPoint num="17" id="7297" />
+<TGConnectingPoint num="18" id="7298" />
+<TGConnectingPoint num="19" id="7299" />
+<TGConnectingPoint num="20" id="7300" />
+<TGConnectingPoint num="21" id="7301" />
+<TGConnectingPoint num="22" id="7302" />
+<TGConnectingPoint num="23" id="7303" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="FEP_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="7329" >
+<cdparam x="835" y="433" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="FEP_Bus" value="name" />
+<TGConnectingPoint num="0" id="7305" />
+<TGConnectingPoint num="1" id="7306" />
+<TGConnectingPoint num="2" id="7307" />
+<TGConnectingPoint num="3" id="7308" />
+<TGConnectingPoint num="4" id="7309" />
+<TGConnectingPoint num="5" id="7310" />
+<TGConnectingPoint num="6" id="7311" />
+<TGConnectingPoint num="7" id="7312" />
+<TGConnectingPoint num="8" id="7313" />
+<TGConnectingPoint num="9" id="7314" />
+<TGConnectingPoint num="10" id="7315" />
+<TGConnectingPoint num="11" id="7316" />
+<TGConnectingPoint num="12" id="7317" />
+<TGConnectingPoint num="13" id="7318" />
+<TGConnectingPoint num="14" id="7319" />
+<TGConnectingPoint num="15" id="7320" />
+<TGConnectingPoint num="16" id="7321" />
+<TGConnectingPoint num="17" id="7322" />
+<TGConnectingPoint num="18" id="7323" />
+<TGConnectingPoint num="19" id="7324" />
+<TGConnectingPoint num="20" id="7325" />
+<TGConnectingPoint num="21" id="7326" />
+<TGConnectingPoint num="22" id="7327" />
+<TGConnectingPoint num="23" id="7328" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="FEP_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="7354" >
+<cdparam x="1174" y="850" />
+<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_DMA" value="name" />
+<TGConnectingPoint num="0" id="7330" />
+<TGConnectingPoint num="1" id="7331" />
+<TGConnectingPoint num="2" id="7332" />
+<TGConnectingPoint num="3" id="7333" />
+<TGConnectingPoint num="4" id="7334" />
+<TGConnectingPoint num="5" id="7335" />
+<TGConnectingPoint num="6" id="7336" />
+<TGConnectingPoint num="7" id="7337" />
+<TGConnectingPoint num="8" id="7338" />
+<TGConnectingPoint num="9" id="7339" />
+<TGConnectingPoint num="10" id="7340" />
+<TGConnectingPoint num="11" id="7341" />
+<TGConnectingPoint num="12" id="7342" />
+<TGConnectingPoint num="13" id="7343" />
+<TGConnectingPoint num="14" id="7344" />
+<TGConnectingPoint num="15" id="7345" />
+<TGConnectingPoint num="16" id="7346" />
+<TGConnectingPoint num="17" id="7347" />
+<TGConnectingPoint num="18" id="7348" />
+<TGConnectingPoint num="19" id="7349" />
+<TGConnectingPoint num="20" id="7350" />
+<TGConnectingPoint num="21" id="7351" />
+<TGConnectingPoint num="22" id="7352" />
+<TGConnectingPoint num="23" id="7353" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MAPPER_DMA" />
+<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" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="7379" >
+<cdparam x="920" y="780" />
+<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_Bridge" value="name" />
+<TGConnectingPoint num="0" id="7355" />
+<TGConnectingPoint num="1" id="7356" />
+<TGConnectingPoint num="2" id="7357" />
+<TGConnectingPoint num="3" id="7358" />
+<TGConnectingPoint num="4" id="7359" />
+<TGConnectingPoint num="5" id="7360" />
+<TGConnectingPoint num="6" id="7361" />
+<TGConnectingPoint num="7" id="7362" />
+<TGConnectingPoint num="8" id="7363" />
+<TGConnectingPoint num="9" id="7364" />
+<TGConnectingPoint num="10" id="7365" />
+<TGConnectingPoint num="11" id="7366" />
+<TGConnectingPoint num="12" id="7367" />
+<TGConnectingPoint num="13" id="7368" />
+<TGConnectingPoint num="14" id="7369" />
+<TGConnectingPoint num="15" id="7370" />
+<TGConnectingPoint num="16" id="7371" />
+<TGConnectingPoint num="17" id="7372" />
+<TGConnectingPoint num="18" id="7373" />
+<TGConnectingPoint num="19" id="7374" />
+<TGConnectingPoint num="20" id="7375" />
+<TGConnectingPoint num="21" id="7376" />
+<TGConnectingPoint num="22" id="7377" />
+<TGConnectingPoint num="23" id="7378" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="MAPPER_Bridge" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="7404" >
+<cdparam x="1043" y="978" />
+<sizeparam width="314" height="125" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_MSS" value="name" />
+<TGConnectingPoint num="0" id="7380" />
+<TGConnectingPoint num="1" id="7381" />
+<TGConnectingPoint num="2" id="7382" />
+<TGConnectingPoint num="3" id="7383" />
+<TGConnectingPoint num="4" id="7384" />
+<TGConnectingPoint num="5" id="7385" />
+<TGConnectingPoint num="6" id="7386" />
+<TGConnectingPoint num="7" id="7387" />
+<TGConnectingPoint num="8" id="7388" />
+<TGConnectingPoint num="9" id="7389" />
+<TGConnectingPoint num="10" id="7390" />
+<TGConnectingPoint num="11" id="7391" />
+<TGConnectingPoint num="12" id="7392" />
+<TGConnectingPoint num="13" id="7393" />
+<TGConnectingPoint num="14" id="7394" />
+<TGConnectingPoint num="15" id="7395" />
+<TGConnectingPoint num="16" id="7396" />
+<TGConnectingPoint num="17" id="7397" />
+<TGConnectingPoint num="18" id="7398" />
+<TGConnectingPoint num="19" id="7399" />
+<TGConnectingPoint num="20" id="7400" />
+<TGConnectingPoint num="21" id="7401" />
+<TGConnectingPoint num="22" id="7402" />
+<TGConnectingPoint num="23" id="7403" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="MAPPER_MSS" />
+<attributes byteDataSize="4"  clockRatio="1"  bufferType="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="7438" >
+<cdparam x="759" y="981" />
+<sizeparam width="219" height="158" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_PSS" value="name" />
+<TGConnectingPoint num="0" id="7414" />
+<TGConnectingPoint num="1" id="7415" />
+<TGConnectingPoint num="2" id="7416" />
+<TGConnectingPoint num="3" id="7417" />
+<TGConnectingPoint num="4" id="7418" />
+<TGConnectingPoint num="5" id="7419" />
+<TGConnectingPoint num="6" id="7420" />
+<TGConnectingPoint num="7" id="7421" />
+<TGConnectingPoint num="8" id="7422" />
+<TGConnectingPoint num="9" id="7423" />
+<TGConnectingPoint num="10" id="7424" />
+<TGConnectingPoint num="11" id="7425" />
+<TGConnectingPoint num="12" id="7426" />
+<TGConnectingPoint num="13" id="7427" />
+<TGConnectingPoint num="14" id="7428" />
+<TGConnectingPoint num="15" id="7429" />
+<TGConnectingPoint num="16" id="7430" />
+<TGConnectingPoint num="17" id="7431" />
+<TGConnectingPoint num="18" id="7432" />
+<TGConnectingPoint num="19" id="7433" />
+<TGConnectingPoint num="20" id="7434" />
+<TGConnectingPoint num="21" id="7435" />
+<TGConnectingPoint num="22" id="7436" />
+<TGConnectingPoint num="23" id="7437" />
+<extraparam>
+<info stereotype="CPURR" nodeName="MAPPER_PSS" />
+<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" MECType="3" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="7413" >
+<father id="7438" num="0" />
+<cdparam x="755" y="1028" />
+<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="-4" minY="0" maxY="118" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Symbol2ChipSeq" />
+<TGConnectingPoint num="0" id="7405" />
+<TGConnectingPoint num="1" id="7406" />
+<TGConnectingPoint num="2" id="7407" />
+<TGConnectingPoint num="3" id="7408" />
+<TGConnectingPoint num="4" id="7409" />
+<TGConnectingPoint num="5" id="7410" />
+<TGConnectingPoint num="6" id="7411" />
+<TGConnectingPoint num="7" id="7412" />
+<extraparam>
+<info value="Zigbee_TX::X_Symbol2ChipSeq" taskName="X_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="Mapper operation" fatherComponentMECType="3" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1102" id="7463" >
+<cdparam x="845" y="875" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="MAPPER_Bus" value="name" />
+<TGConnectingPoint num="0" id="7439" />
+<TGConnectingPoint num="1" id="7440" />
+<TGConnectingPoint num="2" id="7441" />
+<TGConnectingPoint num="3" id="7442" />
+<TGConnectingPoint num="4" id="7443" />
+<TGConnectingPoint num="5" id="7444" />
+<TGConnectingPoint num="6" id="7445" />
+<TGConnectingPoint num="7" id="7446" />
+<TGConnectingPoint num="8" id="7447" />
+<TGConnectingPoint num="9" id="7448" />
+<TGConnectingPoint num="10" id="7449" />
+<TGConnectingPoint num="11" id="7450" />
+<TGConnectingPoint num="12" id="7451" />
+<TGConnectingPoint num="13" id="7452" />
+<TGConnectingPoint num="14" id="7453" />
+<TGConnectingPoint num="15" id="7454" />
+<TGConnectingPoint num="16" id="7455" />
+<TGConnectingPoint num="17" id="7456" />
+<TGConnectingPoint num="18" id="7457" />
+<TGConnectingPoint num="19" id="7458" />
+<TGConnectingPoint num="20" id="7459" />
+<TGConnectingPoint num="21" id="7460" />
+<TGConnectingPoint num="22" id="7461" />
+<TGConnectingPoint num="23" id="7462" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="MAPPER_Bus" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1108" id="7481" >
+<cdparam x="103" y="1267" />
+<sizeparam width="419" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_Symbol2ChipSeq_Chips2Octet" value="CP0" />
+<TGConnectingPoint num="0" id="7473" />
+<TGConnectingPoint num="1" id="7474" />
+<TGConnectingPoint num="2" id="7475" />
+<TGConnectingPoint num="3" id="7476" />
+<TGConnectingPoint num="4" id="7477" />
+<TGConnectingPoint num="5" id="7478" />
+<TGConnectingPoint num="6" id="7479" />
+<TGConnectingPoint num="7" id="7480" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="MAPPER_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, MAPPER_Bridge, MAPPER_Bus" />
+<mappedAttributes type="int" name="destinationAddress" value="123" />
+<mappedAttributes type="int" name="sourceAddress" value="123" />
+<mappedAttributes type="int" name="counter" value="123" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="7472" >
+<father id="7481" num="0" />
+<cdparam x="292" y="1303" />
+<sizeparam width="212" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="207" minY="0" maxY="45" />
+<infoparam name="TGComponent" value="Zigbee_TX::chip2octet_ch_in" />
+<TGConnectingPoint num="0" id="7464" />
+<TGConnectingPoint num="1" id="7465" />
+<TGConnectingPoint num="2" id="7466" />
+<TGConnectingPoint num="3" id="7467" />
+<TGConnectingPoint num="4" id="7468" />
+<TGConnectingPoint num="5" id="7469" />
+<TGConnectingPoint num="6" id="7470" />
+<TGConnectingPoint num="7" id="7471" />
+<extraparam>
+<info value="Zigbee_TX::chip2octet_ch_in" portName="chip2octet_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="INTL_MSS" bufferType="3" packedBinaryIn="" width="" bitInOffset="" inputOffset="" packedBinaryOut="" bitOutOffset="" outputOffset="" offsetPerm="" lengthPerm="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1108" id="7499" >
+<cdparam x="105" y="1396" />
+<sizeparam width="405" height="88" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_Chip2Octet_CWL" value="CP0" />
+<TGConnectingPoint num="0" id="7491" />
+<TGConnectingPoint num="1" id="7492" />
+<TGConnectingPoint num="2" id="7493" />
+<TGConnectingPoint num="3" id="7494" />
+<TGConnectingPoint num="4" id="7495" />
+<TGConnectingPoint num="5" id="7496" />
+<TGConnectingPoint num="6" id="7497" />
+<TGConnectingPoint num="7" id="7498" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="INTL_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="7490" >
+<father id="7499" num="0" />
+<cdparam x="327" y="1437" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="241" minY="0" maxY="48" />
+<infoparam name="TGComponent" value="Zigbee_TX::cwl_ch_in" />
+<TGConnectingPoint num="0" id="7482" />
+<TGConnectingPoint num="1" id="7483" />
+<TGConnectingPoint num="2" id="7484" />
+<TGConnectingPoint num="3" id="7485" />
+<TGConnectingPoint num="4" id="7486" />
+<TGConnectingPoint num="5" id="7487" />
+<TGConnectingPoint num="6" id="7488" />
+<TGConnectingPoint num="7" id="7489" />
+<extraparam>
+<info value="Zigbee_TX::cwl_ch_in" portName="cwl_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="FEP_MSS" bufferType="0" baseAddress="0x123" numSamples="1234" bank="0" dataType="int8" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1108" id="7517" >
+<cdparam x="627" y="1252" />
+<sizeparam width="295" height="145" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_sink" value="CP0" />
+<TGConnectingPoint num="0" id="7509" />
+<TGConnectingPoint num="1" id="7510" />
+<TGConnectingPoint num="2" id="7511" />
+<TGConnectingPoint num="3" id="7512" />
+<TGConnectingPoint num="4" id="7513" />
+<TGConnectingPoint num="5" id="7514" />
+<TGConnectingPoint num="6" id="7515" />
+<TGConnectingPoint num="7" id="7516" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_sink" cpMEC="Double DMA" transferType1="0" transferType2="0" />
+<attributes reference="Double_DMA_transfer" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_2" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_2" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_2" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_2" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_6" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_5" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_8" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_7" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="7508" >
+<father id="7517" num="0" />
+<cdparam x="701" y="1315" />
+<sizeparam width="170" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="125" minY="0" maxY="105" />
+<infoparam name="TGComponent" value="Zigbee_TX::sink_ch_in" />
+<TGConnectingPoint num="0" id="7500" />
+<TGConnectingPoint num="1" id="7501" />
+<TGConnectingPoint num="2" id="7502" />
+<TGConnectingPoint num="3" id="7503" />
+<TGConnectingPoint num="4" id="7504" />
+<TGConnectingPoint num="5" id="7505" />
+<TGConnectingPoint num="6" id="7506" />
+<TGConnectingPoint num="7" id="7507" />
+<extraparam>
+<info value="Zigbee_TX::sink_ch_in" portName="sink_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="ADAIF_MSS" bufferType="2" numSamples="" baseAddress="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1108" id="7535" >
+<cdparam x="106" y="1143" />
+<sizeparam width="421" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
+<infoparam name="CP_Source_to_Bits2Symbol" value="CP0" />
+<TGConnectingPoint num="0" id="7527" />
+<TGConnectingPoint num="1" id="7528" />
+<TGConnectingPoint num="2" id="7529" />
+<TGConnectingPoint num="3" id="7530" />
+<TGConnectingPoint num="4" id="7531" />
+<TGConnectingPoint num="5" id="7532" />
+<TGConnectingPoint num="6" id="7533" />
+<TGConnectingPoint num="7" id="7534" />
+<extraparam>
+<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="Memory Copy" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="MAPPER_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="ADAIF_MSS" />
+<mappedAttributes type="addr" name="sourceAddress" value="0x123" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1110" id="7526" >
+<father id="7535" num="0" />
+<cdparam x="280" y="1181" />
+<sizeparam width="247" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" />
+<infoparam name="TGComponent" value="Zigbee_TX::symbol2ChipSeq_ch_in" />
+<TGConnectingPoint num="0" id="7518" />
+<TGConnectingPoint num="1" id="7519" />
+<TGConnectingPoint num="2" id="7520" />
+<TGConnectingPoint num="3" id="7521" />
+<TGConnectingPoint num="4" id="7522" />
+<TGConnectingPoint num="5" id="7523" />
+<TGConnectingPoint num="6" id="7524" />
+<TGConnectingPoint num="7" id="7525" />
+<extraparam>
+<info value="Zigbee_TX::symbol2ChipSeq_ch_in" portName="symbol2ChipSeq_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="MAPPER_MSS" bufferType="1" numSamplesDataIn="" baseAddressDataIn="" bitsPerSymbolDataIn="" symmetricalValueDataIn="OFF" baseAddressDataOut="0x123" baseAddressLUT="0x123" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="125" id="7536" >
+<cdparam x="1367" y="660" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1367" y="660" id="6997" />
+<P2  x="1076" y="660" id="7023" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7537" >
+<cdparam x="1147" y="508" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1147" y="508" id="7183" />
+<P2  x="1076" y="635" id="7021" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7538" >
+<cdparam x="1298" y="875" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1249" y="850" id="7331" />
+<P2  x="1076" y="685" id="7026" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7539" >
+<cdparam x="1019" y="805" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="970" y="780" id="7356" />
+<P2  x="864" y="685" id="7034" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7540" >
+<cdparam x="1004" y="531" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="960" y="566" id="7286" />
+<P2  x="864" y="635" id="7028" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7541" >
+<cdparam x="1185" y="660" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1467" y="660" id="6998" />
+<P2  x="1527" y="660" id="6972" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7542" >
+<cdparam x="356" y="788" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="788" id="7050" />
+<P2  x="356" y="832" id="7129" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7543" >
+<cdparam x="554" y="806" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="560" y="807" id="6713" />
+<P2  x="442" y="685" id="7033" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7544" >
+<cdparam x="559" y="863" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="560" y="857" id="6716" />
+<P2  x="481" y="857" id="7132" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7545" >
+<cdparam x="586" y="970" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="541" y="949" id="7070" />
+<P2  x="418" y="882" id="7143" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7546" >
+<cdparam x="165" y="927" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="208" y="938" id="7104" />
+<P2  x="293" y="882" id="7142" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7547" >
+<cdparam x="355" y="576" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="580" id="6828" />
+<P2  x="231" y="635" id="7019" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7548" >
+<cdparam x="355" y="541" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="545" id="6823" />
+<P2  x="356" y="497" id="7159" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7549" >
+<cdparam x="543" y="522" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="543" y="522" id="6743" />
+<P2  x="442" y="635" id="7027" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7550" >
+<cdparam x="536" y="475" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="543" y="472" id="6741" />
+<P2  x="481" y="472" id="7157" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7551" >
+<cdparam x="549" y="337" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="454" y="395" id="6769" />
+<P2  x="418" y="447" id="7162" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7552" >
+<cdparam x="155" y="323" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="155" y="396" id="6803" />
+<P2  x="293" y="447" id="7161" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7553" >
+<cdparam x="357" y="778" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="356" y="737" id="7045" />
+<P2  x="231" y="685" id="7024" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7554" >
+<cdparam x="1654" y="758" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1652" y="737" id="6848" />
+<P2  x="1652" y="685" id="6975" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7555" >
+<cdparam x="1651" y="573" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1652" y="586" id="6950" />
+<P2  x="1652" y="635" id="6970" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7556" >
+<cdparam x="959" y="527" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="960" y="531" id="7281" />
+<P2  x="960" y="483" id="7311" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7557" >
+<cdparam x="1140" 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="1147" y="458" id="7181" />
+<P2  x="1085" y="458" id="7309" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7558" >
+<cdparam x="1189" y="374" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1022" y="376" id="7209" />
+<P2  x="1022" y="433" id="7314" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7559" >
+<cdparam x="795" y="360" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="738" y="384" id="7261" />
+<P2  x="897" y="433" id="7313" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7560" >
+<cdparam x="970" y="831" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="970" y="831" id="7361" />
+<P2  x="970" y="875" id="7440" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7561" >
+<cdparam x="1173" y="906" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1174" y="900" id="7333" />
+<P2  x="1095" y="900" id="7443" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7562" >
+<cdparam x="1200" y="1013" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1200" y="978" id="7381" />
+<P2  x="1032" y="925" id="7454" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="7563" >
+<cdparam x="779" y="970" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="868" y="981" id="7415" />
+<P2  x="907" y="925" id="7453" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+
+</TMLArchiDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file