From 800133b8c32461a82574abc2366f37ee044287f4 Mon Sep 17 00:00:00 2001
From: Minh Hiep Pham <minh.pham@telecom-paristech.fr>
Date: Wed, 18 Sep 2019 15:16:28 +0200
Subject: [PATCH] Created equalSpec methods to compare TML & class test to
 testing the clone of hardware nodes

---
 src/main/java/tmltranslator/HwA.java          |    8 +
 src/main/java/tmltranslator/HwBridge.java     |    9 +
 src/main/java/tmltranslator/HwBus.java        |   13 +
 src/main/java/tmltranslator/HwCPU.java        |   21 +-
 .../tmltranslator/HwCommunicationNode.java    |   10 +
 src/main/java/tmltranslator/HwDMA.java        |   12 +
 .../java/tmltranslator/HwExecutionNode.java   |   12 +
 src/main/java/tmltranslator/HwFPGA.java       |   15 +-
 src/main/java/tmltranslator/HwLink.java       |   12 +
 src/main/java/tmltranslator/HwMemory.java     |   12 +-
 src/main/java/tmltranslator/HwNode.java       |   10 +
 .../java/tmltranslator/TMLArchitecture.java   |   76 +-
 src/main/java/tmltranslator/TMLChannel.java   |   16 +
 .../TMLCommunicationElement.java              |   11 +-
 src/main/java/tmltranslator/TMLElement.java   |    9 +
 src/main/java/tmltranslator/TMLEvent.java     |   17 +-
 src/main/java/tmltranslator/TMLMapping.java   |  106 ++
 src/main/java/tmltranslator/TMLModeling.java  |  140 +-
 src/main/java/tmltranslator/TMLRequest.java   |   20 +-
 src/main/java/tmltranslator/TMLTask.java      |   12 +
 .../modelcompiler/ArchUnitMEC.java            |   19 +
 .../TDiagramPanelCloneArchitectureTest.java   |  229 ++-
 .../expected/Expected_CloneArchitecture.xml   | 1653 +++++++++++++++++
 .../input/CloneCompositeComponentTest.xml     |  632 ++++---
 24 files changed, 2767 insertions(+), 307 deletions(-)
 create mode 100644 ttool/src/test/resources/ui/diagram2tml/expected/Expected_CloneArchitecture.xml

diff --git a/src/main/java/tmltranslator/HwA.java b/src/main/java/tmltranslator/HwA.java
index 2719d81948..92a68d18ef 100755
--- a/src/main/java/tmltranslator/HwA.java
+++ b/src/main/java/tmltranslator/HwA.java
@@ -41,6 +41,8 @@
 
 package tmltranslator;
 
+import java.util.Objects;
+
 /**
  * Class HwA
  * Creation: 23/11/2007
@@ -75,5 +77,11 @@ public class HwA extends HwExecutionNode  {
 	return s;
     }
 
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof HwA)) return false;
+        if (!super.equalSpec(o)) return false;
+        HwA hwA = (HwA) o;
+        return byteDataSize == hwA.byteDataSize;
+    }
 
 }
diff --git a/src/main/java/tmltranslator/HwBridge.java b/src/main/java/tmltranslator/HwBridge.java
index 4b6b0a49c9..309062e5f6 100755
--- a/src/main/java/tmltranslator/HwBridge.java
+++ b/src/main/java/tmltranslator/HwBridge.java
@@ -42,6 +42,7 @@
 package tmltranslator;
 
 import java.util.ArrayList;
+import java.util.Objects;
 
 
 /**
@@ -68,4 +69,12 @@ public class HwBridge extends HwCommunicationNode  {
 	return s;
     }
 
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof HwBridge)) return false;
+        if (!super.equalSpec(o)) return false;
+        HwBridge hwBridge = (HwBridge) o;
+        return latency == hwBridge.latency &&
+                bufferByteSize == hwBridge.bufferByteSize;
+    }
+
 }
diff --git a/src/main/java/tmltranslator/HwBus.java b/src/main/java/tmltranslator/HwBus.java
index 2106e01127..8f824501c3 100755
--- a/src/main/java/tmltranslator/HwBus.java
+++ b/src/main/java/tmltranslator/HwBus.java
@@ -39,6 +39,8 @@
 
 package tmltranslator;
 
+import java.util.Objects;
+
 /**
  * Class HwBus
  * Creation: 05/09/2007
@@ -73,4 +75,15 @@ public class HwBus extends HwCommunicationNode {
         return s;
     }
 
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof HwBus)) return false;
+        if (!super.equalSpec(o)) return false;
+        HwBus hwBus = (HwBus) o;
+        return byteDataSize == hwBus.byteDataSize &&
+                pipelineSize == hwBus.pipelineSize &&
+                arbitration == hwBus.arbitration &&
+                sliceTime == hwBus.sliceTime;
+    }
+
+
 }
diff --git a/src/main/java/tmltranslator/HwCPU.java b/src/main/java/tmltranslator/HwCPU.java
index 70780e9516..32df7da978 100755
--- a/src/main/java/tmltranslator/HwCPU.java
+++ b/src/main/java/tmltranslator/HwCPU.java
@@ -44,6 +44,8 @@ package tmltranslator;
 import tmltranslator.modelcompiler.ArchUnitMEC;
 import tmltranslator.modelcompiler.CpuMEC;
 
+import java.util.Objects;
+
 
 /**
  * Class HwCPU
@@ -104,6 +106,23 @@ public class HwCPU extends HwExecutionNode  {
 	return s;
     }
 
-    
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof HwCPU)) return false;
+        if (!super.equalSpec(o)) return false;
+        HwCPU hwCPU = (HwCPU) o;
+        return encryption == hwCPU.encryption &&
+                nbOfCores == hwCPU.nbOfCores &&
+                byteDataSize == hwCPU.byteDataSize &&
+                pipelineSize == hwCPU.pipelineSize &&
+                goIdleTime == hwCPU.goIdleTime &&
+                maxConsecutiveIdleCycles == hwCPU.maxConsecutiveIdleCycles &&
+                taskSwitchingTime == hwCPU.taskSwitchingTime &&
+                branchingPredictionPenalty == hwCPU.branchingPredictionPenalty &&
+                cacheMiss == hwCPU.cacheMiss &&
+                schedulingPolicy == hwCPU.schedulingPolicy &&
+                sliceTime == hwCPU.sliceTime &&
+                MEC.equalSpec(hwCPU.MEC);
+    }
+
 
 }
diff --git a/src/main/java/tmltranslator/HwCommunicationNode.java b/src/main/java/tmltranslator/HwCommunicationNode.java
index d32b00d767..e5a0f0eb09 100755
--- a/src/main/java/tmltranslator/HwCommunicationNode.java
+++ b/src/main/java/tmltranslator/HwCommunicationNode.java
@@ -42,6 +42,8 @@
 package tmltranslator;
 
 
+import java.util.Objects;
+
 /**
  * Class HwCommunicationNode
  * Creation: 23/11/2007
@@ -59,4 +61,12 @@ public abstract class HwCommunicationNode extends HwNode  {
     public HwCommunicationNode(String _name) {
 		super(_name);
     }
+
+    public boolean equalSpec(Object o) {
+        if(!(o instanceof HwCommunicationNode)) return false;
+        if (!super.equalSpec(o)) return false;
+        HwCommunicationNode that = (HwCommunicationNode) o;
+        return privacy == that.privacy;
+    }
+
 }
diff --git a/src/main/java/tmltranslator/HwDMA.java b/src/main/java/tmltranslator/HwDMA.java
index ddbe5e7353..cb68f6338d 100755
--- a/src/main/java/tmltranslator/HwDMA.java
+++ b/src/main/java/tmltranslator/HwDMA.java
@@ -41,6 +41,8 @@
 
 package tmltranslator;
 
+import java.util.Objects;
+
 /**
  * Class HwDMA
  * Creation: 26/09/2011
@@ -63,4 +65,14 @@ public class HwDMA extends HwCommunicationNode  {
 	String s = "<DMA name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\"  nbOfChannels=\"" + nbOfChannels + "\" execiTime=\"" + "1" + "\" execcTime=\"" + "1"  +"\" />\n";
 	return s;
     }
+
+
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof HwDMA)) return false;
+        if (!super.equalSpec(o)) return false;
+        HwDMA hwDMA = (HwDMA) o;
+        return byteDataSize == hwDMA.byteDataSize &&
+                nbOfChannels == hwDMA.nbOfChannels;
+    }
+
 }
diff --git a/src/main/java/tmltranslator/HwExecutionNode.java b/src/main/java/tmltranslator/HwExecutionNode.java
index 2b354583e1..1674ffd361 100755
--- a/src/main/java/tmltranslator/HwExecutionNode.java
+++ b/src/main/java/tmltranslator/HwExecutionNode.java
@@ -41,6 +41,8 @@
 package tmltranslator;
 
 
+import java.util.Objects;
+
 /**
  * Class HwExecutionNode
  * Creation: 23/11/2007
@@ -97,4 +99,14 @@ public abstract class HwExecutionNode extends HwNode  {
         return false;
     }
 
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof HwExecutionNode)) return false;
+        if(!super.equalSpec(o)) return false;
+        HwExecutionNode that = (HwExecutionNode) o;
+        return maximumNbOfTasks == that.maximumNbOfTasks &&
+                execiTime == that.execiTime &&
+                execcTime == that.execcTime &&
+                operation.equals(that.operation);
+    }
+
 }
diff --git a/src/main/java/tmltranslator/HwFPGA.java b/src/main/java/tmltranslator/HwFPGA.java
index cf1833f793..a1b038fb6d 100755
--- a/src/main/java/tmltranslator/HwFPGA.java
+++ b/src/main/java/tmltranslator/HwFPGA.java
@@ -41,6 +41,8 @@ package tmltranslator;
 
 import tmltranslator.modelcompiler.ArchUnitMEC;
 
+import java.util.Objects;
+
 
 /**
  * Class HwFPGA
@@ -87,5 +89,16 @@ public class HwFPGA extends HwExecutionNode {
         return s;
     }
 
-
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof HwFPGA)) return false;
+        if(!super.equalSpec(o)) return false;
+        HwFPGA hwFPGA = (HwFPGA) o;
+        return byteDataSize == hwFPGA.byteDataSize &&
+                goIdleTime == hwFPGA.goIdleTime &&
+                maxConsecutiveIdleCycles == hwFPGA.maxConsecutiveIdleCycles &&
+                capacity == hwFPGA.capacity &&
+                mappingPenalty == hwFPGA.mappingPenalty &&
+                reconfigurationTime == hwFPGA.reconfigurationTime &&
+                scheduling.equals(hwFPGA.scheduling);
+    }
 }
diff --git a/src/main/java/tmltranslator/HwLink.java b/src/main/java/tmltranslator/HwLink.java
index a98bf3c275..51c8cc03d4 100755
--- a/src/main/java/tmltranslator/HwLink.java
+++ b/src/main/java/tmltranslator/HwLink.java
@@ -39,6 +39,8 @@
 
 package tmltranslator;
 
+import java.util.Objects;
+
 /**
  * Class HwLink
  * Creation: 05/09/2007
@@ -104,4 +106,14 @@ public class HwLink implements Comparable<HwLink> {
         return (nodeBus == bus) || (nodeBus == vgmn) || (nodeBus == crossbar);
     }
 
+    public boolean equalSpec(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        HwLink hwLink = (HwLink) o;
+        return priority == hwLink.priority &&
+                bus.getName().equals(hwLink.bus.getName()) &&
+                hwnode.getName().equals(hwLink.hwnode.getName()) &&
+                Objects.equals(getName(),hwLink.getName());
+    }
+
 }
diff --git a/src/main/java/tmltranslator/HwMemory.java b/src/main/java/tmltranslator/HwMemory.java
index e417e93a71..abf43a84df 100755
--- a/src/main/java/tmltranslator/HwMemory.java
+++ b/src/main/java/tmltranslator/HwMemory.java
@@ -41,6 +41,8 @@
 
 package tmltranslator;
 
+import java.util.Objects;
+
 /**
  * Class HwMemory
  * Creation: 23/11/2007
@@ -66,6 +68,14 @@ public class HwMemory extends HwCommunicationNode  {
 	String s = "<MEMORY name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\" memorySize=\"" + memorySize + "\"  bufferType=\"" + bufferType + "\" />\n";
 	return s;
     }
-    
+
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof HwMemory)) return false;
+        if(!super.equalSpec(o)) return false;
+        HwMemory hwMemory = (HwMemory) o;
+        return bufferType == hwMemory.bufferType &&
+                byteDataSize == hwMemory.byteDataSize &&
+                memorySize == hwMemory.memorySize;
+    }
 
 }
diff --git a/src/main/java/tmltranslator/HwNode.java b/src/main/java/tmltranslator/HwNode.java
index 5b339fb2bd..28dd620d26 100755
--- a/src/main/java/tmltranslator/HwNode.java
+++ b/src/main/java/tmltranslator/HwNode.java
@@ -43,6 +43,8 @@ package tmltranslator;
 
 import tmltranslator.modelcompiler.ArchUnitMEC;
 
+import java.util.Objects;
+
 
 /**
  * Class HwNode
@@ -77,4 +79,12 @@ public abstract class HwNode extends DIPLOElement  {
 
     public abstract String toXML();
 
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof HwNode)) return false;
+        HwNode hwNode = (HwNode) o;
+        return maximumNbOfMappedElement == hwNode.maximumNbOfMappedElement &&
+                clockRatio == hwNode.clockRatio &&
+                name.equals(hwNode.getName());
+    }
+
 }
diff --git a/src/main/java/tmltranslator/TMLArchitecture.java b/src/main/java/tmltranslator/TMLArchitecture.java
index f86193101e..e91adcd7f9 100755
--- a/src/main/java/tmltranslator/TMLArchitecture.java
+++ b/src/main/java/tmltranslator/TMLArchitecture.java
@@ -41,8 +41,7 @@ package tmltranslator;
 
 import myutil.TraceManager;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 /**
  * Class TMLArchitecture
@@ -502,4 +501,77 @@ public class TMLArchitecture {
         HwNoC noc = getHwNoC();
         return (noc == null ? -1 : noc.size);
     }
+
+    public boolean equalSpec(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TMLArchitecture that = (TMLArchitecture) o;
+
+        if (!isHwNodeListEquals(hwnodes, that.hwnodes)) return false;
+
+        if(!isHwlinkListEquals(hwlinks, that.hwlinks)) return false;
+
+        return masterClockFrequency == that.masterClockFrequency;
+    }
+
+    public  boolean isHwNodeListEquals(List<HwNode> list1, List<HwNode> list2){
+        if (list1 == null && list2 == null) {
+            return true;
+        }
+        //Only one of them is null
+        else if(list1 == null || list2 == null) {
+            return false;
+        }
+        else if(list1.size() != list2.size()) {
+            return false;
+        }
+
+        //copying to avoid rearranging original lists
+        list1 = new ArrayList<>(list1);
+        list2 = new ArrayList<>(list2);
+
+        Collections.sort(list1, Comparator.comparing(HwNode::getName));
+        Collections.sort(list2, Comparator.comparing(HwNode::getName));
+        
+        boolean test;
+
+        for (int i = 0; i < list1.size(); i++) {
+           test =  list1.get(i).equalSpec(list2.get(i));
+           if (!test) return false;
+        }
+
+        return true;
+    }
+
+
+    public  boolean isHwlinkListEquals(List<HwLink> list1, List<HwLink> list2){
+        if (list1 == null && list2 == null) {
+            return true;
+        }
+        //Only one of them is null
+        else if(list1 == null || list2 == null) {
+            return false;
+        }
+        else if(list1.size() != list2.size()) {
+            return false;
+        }
+
+        //copying to avoid rearranging original lists
+        list1 = new ArrayList<>(list1);
+        list2 = new ArrayList<>(list2);
+
+        Collections.sort(list1, Comparator.comparing(HwLink::getName));
+        Collections.sort(list2, Comparator.comparing(HwLink::getName));
+
+        boolean test;
+
+        for (int i = 0; i < list1.size(); i++) {
+            test =  list1.get(i).equalSpec(list2.get(i));
+            if (!test) return false;
+        }
+
+        return true;
+    }
+
 }
diff --git a/src/main/java/tmltranslator/TMLChannel.java b/src/main/java/tmltranslator/TMLChannel.java
index fa1fb536b9..0b9ca172ff 100755
--- a/src/main/java/tmltranslator/TMLChannel.java
+++ b/src/main/java/tmltranslator/TMLChannel.java
@@ -44,6 +44,7 @@ import ui.tmlcompd.TMLCPrimitivePort;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * Class TMLChannel
@@ -616,4 +617,19 @@ public class TMLChannel extends TMLCommunicationElement {
         s += " />\n";
         return s;
     }
+
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof TMLChannel)) return false;
+        if (!super.equalSpec(o)) return false;
+        TMLChannel channel = (TMLChannel) o;
+        return checkConf == channel.checkConf &&
+                checkAuth == channel.checkAuth &&
+                size == channel.size &&
+                type == channel.type &&
+                max == channel.max &&
+                vc == channel.vc &&
+                nbOfSamples == channel.getNumberOfSamples() &&
+                priority == channel.priority;
+    }
+
 }
diff --git a/src/main/java/tmltranslator/TMLCommunicationElement.java b/src/main/java/tmltranslator/TMLCommunicationElement.java
index 843234226f..52c8572128 100755
--- a/src/main/java/tmltranslator/TMLCommunicationElement.java
+++ b/src/main/java/tmltranslator/TMLCommunicationElement.java
@@ -43,6 +43,8 @@ package tmltranslator;
 
 import myutil.TraceManager;
 
+import java.util.Objects;
+
 /**
  * Class TMLCommunicationElement
  * Creation: 22/11/2005
@@ -85,5 +87,12 @@ public abstract class TMLCommunicationElement extends TMLElement {
         return maxNbOfLoss;
     }
 
-
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof TMLCommunicationElement)) return false;
+        if (!super.equalSpec(o)) return false;
+        TMLCommunicationElement that = (TMLCommunicationElement) o;
+        return isLossy == that.isLossy &&
+                lossPercentage == that.lossPercentage &&
+                maxNbOfLoss == that.maxNbOfLoss;
+    }
 }
diff --git a/src/main/java/tmltranslator/TMLElement.java b/src/main/java/tmltranslator/TMLElement.java
index d84afa74f9..993d09da71 100755
--- a/src/main/java/tmltranslator/TMLElement.java
+++ b/src/main/java/tmltranslator/TMLElement.java
@@ -42,6 +42,7 @@
 package tmltranslator;
 
 
+import java.util.Objects;
 
 /**
  * Class TMLElement
@@ -91,4 +92,12 @@ public class TMLElement extends DIPLOElement {
 	public void setReferenceObject( Object _referenceObject )	{
 		this.referenceObject = _referenceObject;
 	}
+
+	public boolean equalSpec(Object o) {
+		if (this == o) return true;
+		if (o == null || getClass() != o.getClass()) return false;
+		TMLElement that = (TMLElement) o;
+		return name.equals(that.getName());
+	}
+
 }
diff --git a/src/main/java/tmltranslator/TMLEvent.java b/src/main/java/tmltranslator/TMLEvent.java
index 42c2b068ea..e3e8b9131f 100755
--- a/src/main/java/tmltranslator/TMLEvent.java
+++ b/src/main/java/tmltranslator/TMLEvent.java
@@ -43,9 +43,8 @@ package tmltranslator;
 
 import ui.tmlcompd.TMLCPrimitivePort;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Vector;
+import java.util.*;
+
 import myutil.*;
 
 /**
@@ -339,4 +338,16 @@ public class TMLEvent extends TMLCommunicationElement {
 	return s;
     }
 
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof TMLEvent)) return false;
+        if (!super.equalSpec(o)) return false;
+        TMLEvent event = (TMLEvent) o;
+        if(!(new HashSet<>(params).equals(new HashSet<>(event.params))))
+            return false;
+        return maxEvt == event.maxEvt &&
+                isBlocking == event.isBlocking &&
+                checkAuth == event.checkAuth &&
+                checkConf == event.checkConf;
+    }
+
 }
diff --git a/src/main/java/tmltranslator/TMLMapping.java b/src/main/java/tmltranslator/TMLMapping.java
index 2b427cc437..66a7efe36d 100755
--- a/src/main/java/tmltranslator/TMLMapping.java
+++ b/src/main/java/tmltranslator/TMLMapping.java
@@ -1831,4 +1831,110 @@ public class TMLMapping<E> {
         }
         return cpt;
     }
+
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof  TMLMapping)) return false;
+        TMLMapping<?> that = (TMLMapping<?>) o;
+
+        if(!isOncommondesListEquals(oncommnodes, that.oncommnodes))
+            return false;
+
+        if(!isMappedcommeltsListEquals(mappedcommelts, that.mappedcommelts))
+            return false;
+
+        if(!isMappedtasksListEquals(mappedtasks, that.mappedtasks))
+            return false;
+
+
+        return tmlm.equalSpec(that.tmlm) &&
+                tmla.equalSpec(that.tmla);
+    }
+
+    public  boolean isOncommondesListEquals(List<HwCommunicationNode> list1, List<HwCommunicationNode> list2){
+        if (list1 == null && list2 == null) {
+            return true;
+        }
+        //Only one of them is null
+        else if(list1 == null || list2 == null) {
+            return false;
+        }
+        else if(list1.size() != list2.size()) {
+            return false;
+        }
+
+        //copying to avoid rearranging original lists
+        list1 = new ArrayList<>(list1);
+        list2 = new ArrayList<>(list2);
+
+        Collections.sort(list1, Comparator.comparing(HwCommunicationNode::getName));
+        Collections.sort(list2, Comparator.comparing(HwCommunicationNode::getName));
+
+        boolean test;
+
+        for (int i = 0; i < list1.size(); i++) {
+            test =  list1.get(i).equalSpec(list2.get(i));
+            if (!test) return false;
+        }
+
+        return true;
+    }
+
+    public  boolean isMappedcommeltsListEquals(List<TMLElement> list1, List<TMLElement> list2){
+        if (list1 == null && list2 == null) {
+            return true;
+        }
+        //Only one of them is null
+        else if(list1 == null || list2 == null) {
+            return false;
+        }
+        else if(list1.size() != list2.size()) {
+            return false;
+        }
+
+        //copying to avoid rearranging original lists
+        list1 = new ArrayList<>(list1);
+        list2 = new ArrayList<>(list2);
+
+        Collections.sort(list1, Comparator.comparing(TMLElement::getID));
+        Collections.sort(list2, Comparator.comparing(TMLElement::getID));
+
+        boolean test;
+
+        for (int i = 0; i < list1.size(); i++) {
+            test =  list1.get(i).equalSpec(list2.get(i));
+            if (!test) return false;
+        }
+
+        return true;
+    }
+
+    public  boolean isMappedtasksListEquals(List<TMLTask> list1, List<TMLTask> list2){
+        if (list1 == null && list2 == null) {
+            return true;
+        }
+        //Only one of them is null
+        else if(list1 == null || list2 == null) {
+            return false;
+        }
+        else if(list1.size() != list2.size()) {
+            return false;
+        }
+
+        //copying to avoid rearranging original lists
+        list1 = new ArrayList<>(list1);
+        list2 = new ArrayList<>(list2);
+
+        Collections.sort(list1, Comparator.comparing(TMLTask::getName));
+        Collections.sort(list2, Comparator.comparing(TMLTask::getName));
+
+        boolean test;
+
+        for (int i = 0; i < list1.size(); i++) {
+            test =  list1.get(i).equalSpec(list2.get(i));
+            if (!test) return false;
+        }
+
+        return true;
+    }
+
 }
diff --git a/src/main/java/tmltranslator/TMLModeling.java b/src/main/java/tmltranslator/TMLModeling.java
index 46fb125a76..8b4156397b 100755
--- a/src/main/java/tmltranslator/TMLModeling.java
+++ b/src/main/java/tmltranslator/TMLModeling.java
@@ -65,7 +65,7 @@ import java.util.*;
  * @version 1.0 21/11/2005
  * @author Ludovic APVRILLE
  */
-public class TMLModeling<E> {
+public class  TMLModeling<E> {
     public final String SEP1 = "_S_";
 
     private List<TMLTask> tasks;
@@ -2731,5 +2731,141 @@ public class TMLModeling<E> {
 	s += "</TMLMODELING>\n";
 	return s;
     }
-    
+
+    public boolean equalSpec(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        TMLModeling<?> that = (TMLModeling<?>) o;
+
+        if(!isTaskListEquals(tasks, that.tasks))
+            return false;
+
+        if(!isRequestListEquals(requests, that.requests))
+            return false;
+
+        if(!isEventListEquals(events, that.events))
+            return false;
+
+        if(!isChannelListEquals(channels, that.channels))
+            return false;
+
+        return true;
+    }
+
+    public  boolean isTaskListEquals(List<TMLTask> list1, List<TMLTask> list2){
+        if (list1 == null && list2 == null) {
+            return true;
+        }
+        //Only one of them is null
+        else if(list1 == null || list2 == null) {
+            return false;
+        }
+        else if(list1.size() != list2.size()) {
+            return false;
+        }
+
+        //copying to avoid rearranging original lists
+        list1 = new ArrayList<>(list1);
+        list2 = new ArrayList<>(list2);
+
+        Collections.sort(list1, Comparator.comparing(TMLTask::getName));
+        Collections.sort(list2, Comparator.comparing(TMLTask::getName));
+
+        boolean test;
+
+        for (int i = 0; i < list1.size(); i++) {
+            test =  list1.get(i).equalSpec(list2.get(i));
+            if (!test) return false;
+        }
+
+        return true;
+    }
+
+    public  boolean isRequestListEquals(List<TMLRequest> list1, List<TMLRequest> list2){
+        if (list1 == null && list2 == null) {
+            return true;
+        }
+        //Only one of them is null
+        else if(list1 == null || list2 == null) {
+            return false;
+        }
+        else if(list1.size() != list2.size()) {
+            return false;
+        }
+
+        //copying to avoid rearranging original lists
+        list1 = new ArrayList<>(list1);
+        list2 = new ArrayList<>(list2);
+
+        Collections.sort(list1, Comparator.comparing(TMLRequest::getName));
+        Collections.sort(list2, Comparator.comparing(TMLRequest::getName));
+
+        boolean test;
+
+        for (int i = 0; i < list1.size(); i++) {
+            test =  list1.get(i).equalSpec(list2.get(i));
+            if (!test) return false;
+        }
+
+        return true;
+    }
+
+
+    public  boolean isChannelListEquals(List<TMLChannel> list1, List<TMLChannel> list2){
+        if (list1 == null && list2 == null) {
+            return true;
+        }
+        //Only one of them is null
+        else if(list1 == null || list2 == null) {
+            return false;
+        }
+        else if(list1.size() != list2.size()) {
+            return false;
+        }
+
+        //copying to avoid rearranging original lists
+        list1 = new ArrayList<>(list1);
+        list2 = new ArrayList<>(list2);
+
+        Collections.sort(list1, Comparator.comparing(TMLChannel::getName));
+        Collections.sort(list2, Comparator.comparing(TMLChannel::getName));
+
+        boolean test;
+
+        for (int i = 0; i < list1.size(); i++) {
+            test =  list1.get(i).equalSpec(list2.get(i));
+            if (!test) return false;
+        }
+
+        return true;
+    }
+
+    public  boolean isEventListEquals(List<TMLEvent> list1, List<TMLEvent> list2) {
+        if (list1 == null && list2 == null) {
+            return true;
+        }
+        //Only one of them is null
+        else if (list1 == null || list2 == null) {
+            return false;
+        } else if (list1.size() != list2.size()) {
+            return false;
+        }
+
+        //copying to avoid rearranging original lists
+        list1 = new ArrayList<>(list1);
+        list2 = new ArrayList<>(list2);
+
+        Collections.sort(list1, Comparator.comparing(TMLEvent::getName));
+        Collections.sort(list2, Comparator.comparing(TMLEvent::getName));
+
+        boolean test;
+
+        for (int i = 0; i < list1.size(); i++) {
+            test = list1.get(i).equalSpec(list2.get(i));
+            if (!test) return false;
+        }
+
+        return true;
+    }
+
 }
diff --git a/src/main/java/tmltranslator/TMLRequest.java b/src/main/java/tmltranslator/TMLRequest.java
index 799d03fdd2..57f55eae74 100755
--- a/src/main/java/tmltranslator/TMLRequest.java
+++ b/src/main/java/tmltranslator/TMLRequest.java
@@ -43,9 +43,7 @@ package tmltranslator;
 
 import ui.tmlcompd.TMLCPrimitivePort;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Vector;
+import java.util.*;
 
 /**
  * Class TMLRequest
@@ -172,4 +170,20 @@ public class TMLRequest extends TMLCommunicationElement {
         s += "</TMLREQUEST>\n";
 	return s;
     }
+
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof TMLRequest)) return false;
+        if (!super.equalSpec(o)) return false;
+        TMLRequest request = (TMLRequest) o;
+
+        if(!(new HashSet<>(params).equals(new HashSet<>(request.params))))
+            return false;
+
+        if(!(new HashSet<>(paramNames).equals(new HashSet<>(request.paramNames))))
+            return false;
+
+        return confStatus == request.confStatus &&
+                checkConf == request.checkConf &&
+                checkAuth == request.checkAuth;
+    }
 }
diff --git a/src/main/java/tmltranslator/TMLTask.java b/src/main/java/tmltranslator/TMLTask.java
index 91e9da04a8..d0cb50ea58 100755
--- a/src/main/java/tmltranslator/TMLTask.java
+++ b/src/main/java/tmltranslator/TMLTask.java
@@ -465,4 +465,16 @@ public class TMLTask extends TMLElement {
         return activity.getWorstCaseIComplexity();
     }
 
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof TMLTask)) return false;
+        if (!super.equalSpec(o)) return false;
+        TMLTask tmlTask = (TMLTask) o;
+        if(!(new HashSet<>(attributes).equals(new HashSet<>(tmlTask.attributes))))
+            return false;
+        return operationType == tmlTask.operationType &&
+                isDaemon == tmlTask.isDaemon &&
+                isAttacker == tmlTask.isAttacker &&
+                operation.equals(tmlTask.operation) &&
+                operationMEC.equals(tmlTask.operationMEC);
+    }
 }
diff --git a/src/main/java/tmltranslator/modelcompiler/ArchUnitMEC.java b/src/main/java/tmltranslator/modelcompiler/ArchUnitMEC.java
index c85b583164..db03d9d8a5 100644
--- a/src/main/java/tmltranslator/modelcompiler/ArchUnitMEC.java
+++ b/src/main/java/tmltranslator/modelcompiler/ArchUnitMEC.java
@@ -40,6 +40,7 @@
 package tmltranslator.modelcompiler;
 
 import java.util.Arrays;
+import java.util.Objects;
 import java.util.Vector;
 
 /**
@@ -98,4 +99,22 @@ public abstract class ArchUnitMEC       {
 	return stringTypesArr[index];
     }
 
+    public boolean equalSpec(Object o) {
+        if (!(o instanceof ArchUnitMEC)) return false;
+        ArchUnitMEC that = (ArchUnitMEC) o;
+        return index == that.index;
+    }
+
+    /*@Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        ArchUnitMEC that = (ArchUnitMEC) o;
+        return index == that.index;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(index);
+    }*/
 }       //End of class
diff --git a/ttool/src/test/java/ui/TDiagramPanelCloneArchitectureTest.java b/ttool/src/test/java/ui/TDiagramPanelCloneArchitectureTest.java
index dc4895c6bb..219329d2c2 100644
--- a/ttool/src/test/java/ui/TDiagramPanelCloneArchitectureTest.java
+++ b/ttool/src/test/java/ui/TDiagramPanelCloneArchitectureTest.java
@@ -1,27 +1,82 @@
+/* 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;
 
 import myutil.TraceManager;
 import org.junit.*;
-import tmltranslator.compareTMLTest.CompareTML;
+import tmltranslator.*;
 import ui.tmldd.TMLArchiDiagramPanel;
 
 import java.io.*;
 
+
 import static org.junit.Assert.*;
-/*
+
+
+/**
  * #issue 186
+ * Testing the clone function on architecture
  * author : Minh Hiep
+ * update test : 18/10/2019
  */
 public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
     
-    static TDiagramPanel architecture;
-    static  TGComponent cpu1;
+    static TDiagramPanel architecture_clone;
+    static TDiagramPanel architecture_Exp;
 
-    static TGComponent mapChannel;
 
+    static TMLMapping tmlMapping_clone;
+    static TMLMapping tmlMapping_exp;
+
+    static TGComponent CPU_Cl;
+    static TGComponent DMA_Cl;
+    static TGComponent FPGA_Cl;
+    static TGComponent HWA_Cl;
+    static TGComponent Bus_Cl;
+    static TGComponent Bridge_Cl;
+    static TGComponent Memory_Cl;
+
+
+    static TGComponent mapChannel;
 
-    final static String EXPECTED_FILE1 = getBaseResourcesDir() + "tmltranslator/expected/expected_spec1.tmap";
-    final static String EXPECTED_FILE2 = getBaseResourcesDir() + "tmltranslator/expected/expected_spec2.tarchi";
+    final static String EXPECTED_FILE_MODEL = getBaseResourcesDir() + "/ui/diagram2tml/expected/Expected_CloneArchitecture.xml";
 
 
     @BeforeClass
@@ -31,18 +86,39 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
 
     public TDiagramPanelCloneArchitectureTest() {
         super();
+
+        // Open expected model
+        mainGUI.openProjectFromFile(new File(EXPECTED_FILE_MODEL));
+
+        for(TURTLEPanel _tab : mainGUI.getTabs()) {
+            if(_tab instanceof TMLArchiPanel) {
+                for (TDiagramPanel tdp : _tab.getPanels()) {
+                    if (tdp instanceof TMLArchiDiagramPanel) {
+                        architecture_Exp = tdp;
+                        mainGUI.selectTab(tdp);
+                        break;
+                    }
+                }
+                break;
+            }
+        }
+
+
+        mainGUI.checkModelingSyntax(true);
+        tmlMapping_exp = mainGUI.gtm.getTMLMapping();
+
+        // Open testing model
         mainGUI.openProjectFromFile(new File(RESOURCES_DIR));
     }
 
     @Before
     public void setUp() {
-        architecture = null;
         for(TURTLEPanel _tab : mainGUI.getTabs()) {
             if(_tab instanceof TMLArchiPanel) {
                 for (TDiagramPanel tdp : _tab.getPanels()) {
                     if (tdp instanceof TMLArchiDiagramPanel) {
-                        architecture = tdp;
-                        mainGUI.selectTab(architecture);
+                        architecture_clone = tdp;
+                        mainGUI.selectTab(architecture_clone);
                         break;
                     }
                 }
@@ -50,60 +126,115 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
             }
         }
 
-        if (architecture != null) {
-            //TraceManager.addDev("architecture tab is non null");
-            for (TGComponent tgc : architecture.getAllComponentList()) {
-                if (tgc.getValue().equals("Application::PrimitiveComp1")) {
-                    mapChannel = tgc;
-                }
+        assertNotNull(architecture_clone);
 
-                if (tgc.getName().equals("CPU1")) {
-                    cpu1 = tgc;
-                }
+        for (TGComponent tgc : architecture_clone.getAllComponentList()) {
+            if (tgc.getValue().equals("Application::PrimitiveComp1")) {
+                mapChannel = tgc;
             }
-        }
-    }
 
-    @Test
-    public void testCloneMapInArchitecture() throws Exception {
-        CompareTML compTML = new CompareTML();
-        TGComponent mapTaskClone = null;
-        architecture.cloneComponent(mapChannel);
-        architecture.removeComponent(mapChannel);
-        for (TGComponent tgc : architecture.getComponentList()) {
-            if (tgc.getValue().equals("Application::PrimitiveComp1")) {
-                mapTaskClone = tgc;
+            if (tgc.getName().equals("CPU1")) {
+                CPU_Cl = tgc;
+            }
+
+            if (tgc.getName().equals("FPGA0")) {
+                FPGA_Cl = tgc;
+            }
+
+            if (tgc.getName().equals("Bridge0")) {
+                Bridge_Cl = tgc;
+            }
+
+            if (tgc.getName().equals("HWA0")) {
+                HWA_Cl = tgc;
             }
-        }
 
-        if (mapTaskClone != null) {
-            //TraceManager.addDev("mapTaskClone is non null");
-            architecture.attach(mapTaskClone);
+            if (tgc.getName().equals("Bus0")) {
+                Bus_Cl = tgc;
+            }
+
+            if (tgc.getName().equals("DMA0")) {
+                DMA_Cl = tgc;
+            }
+
+            if (tgc.getName().equals("Memory0")) {
+                Memory_Cl = tgc;
+            }
         }
-        mainGUI.checkModelingSyntax(true);
-        mainGUI.generateTMLTxt();
-        File f1 = new File(EXPECTED_FILE1);
-        File f2 = new File("spec.tmap");  // Generated file after executing "TML generation"
-        //assertTrue(compTML.compareTML(f1,f2));
+
     }
 
-    @Test
-    public void testCloneNodeInArchitecture() throws Exception {
-        CompareTML compTML = new CompareTML();
-        architecture.cloneComponent(cpu1);
-        for (TGComponent tgc : architecture.getComponentList()) {
+    public void cloneHwNodesOfTestingModel(){
+        architecture_clone.cloneComponent(CPU_Cl);
+        for (TGComponent tgc : architecture_clone.getComponentList()) {
             if (tgc.getName().equals("CPU1")) {
                 tgc.setName("CPU2");
                 break;
             }
         }
 
-        mainGUI.checkModelingSyntax(true);
-        mainGUI.generateTMLTxt();
-        File f1 = new File(EXPECTED_FILE2);
-        File f2 = new File("spec.tarchi");  // Generated file after executing "TML generation"
-        //assertTrue(compTML.compareTML(f1,f2));
+        architecture_clone.cloneComponent(FPGA_Cl);
+        for (TGComponent tgc : architecture_clone.getComponentList()) {
+            if (tgc.getName().equals("FPGA0")) {
+                tgc.setName("FPGA1");
+                break;
+            }
+        }
+
+        architecture_clone.cloneComponent(Bridge_Cl);
+        for (TGComponent tgc : architecture_clone.getComponentList()) {
+            if (tgc.getName().equals("Bridge0")) {
+                tgc.setName("Bridge1");
+                break;
+            }
+        }
+
+        architecture_clone.cloneComponent(Bus_Cl);
+        for (TGComponent tgc : architecture_clone.getComponentList()) {
+            if (tgc.getName().equals("Bus0")) {
+                tgc.setName("Bus1");
+                break;
+            }
+        }
+
+        architecture_clone.cloneComponent(DMA_Cl);
+        for (TGComponent tgc : architecture_clone.getComponentList()) {
+            if (tgc.getName().equals("DMA0")) {
+                tgc.setName("DMA1");
+                break;
+            }
+        }
+
+        architecture_clone.cloneComponent(Memory_Cl);
+        for (TGComponent tgc : architecture_clone.getComponentList()) {
+            if (tgc.getName().equals("Memory0")) {
+                tgc.setName("Memory1");
+                break;
+            }
+        }
+
+        architecture_clone.cloneComponent(HWA_Cl);
+        for (TGComponent tgc : architecture_clone.getComponentList()) {
+            if (tgc.getName().equals("HWA0")) {
+                tgc.setName("HWA1");
+                break;
+            }
+        }
+
+
     }
 
 
+    @Test
+    public void testTMLMapping() {
+
+        cloneHwNodesOfTestingModel();
+
+        mainGUI.checkModelingSyntax(true);
+
+        tmlMapping_clone = mainGUI.gtm.getTMLMapping();
+
+        assertTrue(tmlMapping_clone.equalSpec(tmlMapping_exp));
+    }
+
 }
\ No newline at end of file
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/Expected_CloneArchitecture.xml b/ttool/src/test/resources/ui/diagram2tml/expected/Expected_CloneArchitecture.xml
new file mode 100644
index 0000000000..ca40f5d0ab
--- /dev/null
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/Expected_CloneArchitecture.xml
@@ -0,0 +1,1653 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0">
+
+<Modeling type="TML Component Design" nameTab="Application" tabs="TML Component Task Diagram$PrimitiveComp2$PrimitiveComp1$PrimitiveComp3$PrimitiveComp4$PrimitiveComp5$PrimitiveComp6" >
+<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="10" maxX="2500" minY="10" maxY="1500" channels="true" events="true" requests="true" zoom="1.0" >
+<CONNECTOR type="126" id="5" >
+<cdparam x="475" y="480" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="467" y="365" id="58" />
+<P2  x="514" y="364" id="69" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4" >
+<cdparam x="1021" y="460" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="564" y="164" id="19" />
+<P2  x="430" y="163" id="32" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="3" >
+<cdparam x="878" y="469" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="430" y="208" id="34" />
+<P2  x="564" y="209" id="21" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="2" >
+<cdparam x="424" y="585" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="424" y="585" id="45" />
+<P2  x="521" y="585" id="47" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="1" >
+<cdparam x="1144" y="348" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="1144" y="348" id="8" />
+<P2  x="1144" y="405" id="6" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1200" id="97" >
+<cdparam x="186" y="10" />
+<sizeparam width="672" height="618" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Composite component" value="CompositeComp1" />
+<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" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1202" id="31" >
+<father id="97" num="0" />
+<cdparam x="577" y="116" />
+<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
+<infoparam name="Primitive component" value="PrimitiveComp2" />
+<TGConnectingPoint num="0" id="23" />
+<TGConnectingPoint num="1" id="24" />
+<TGConnectingPoint num="2" id="25" />
+<TGConnectingPoint num="3" id="26" />
+<TGConnectingPoint num="4" id="27" />
+<TGConnectingPoint num="5" id="28" />
+<TGConnectingPoint num="6" id="29" />
+<TGConnectingPoint num="7" id="30" />
+<extraparam>
+<Data isAttacker="No" daemon="false" Operation="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="20" >
+<father id="31" num="0" />
+<cdparam x="564" y="151" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel" />
+<TGConnectingPoint num="0" id="19" />
+<extraparam>
+<Prop commName="channel" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="22" >
+<father id="31" num="1" />
+<cdparam x="564" y="196" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Event event" />
+<TGConnectingPoint num="0" id="21" />
+<extraparam>
+<Prop commName="event" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="44" >
+<father id="97" num="1" />
+<cdparam x="217" y="116" />
+<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
+<infoparam name="Primitive component" value="PrimitiveComp1" />
+<TGConnectingPoint num="0" id="36" />
+<TGConnectingPoint num="1" id="37" />
+<TGConnectingPoint num="2" id="38" />
+<TGConnectingPoint num="3" id="39" />
+<TGConnectingPoint num="4" id="40" />
+<TGConnectingPoint num="5" id="41" />
+<TGConnectingPoint num="6" id="42" />
+<TGConnectingPoint num="7" id="43" />
+<extraparam>
+<Data isAttacker="No" daemon="false" Operation="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="33" >
+<father id="44" num="0" />
+<cdparam x="404" y="150" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel" />
+<TGConnectingPoint num="0" id="32" />
+<extraparam>
+<Prop commName="channel" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="35" >
+<father id="44" num="1" />
+<cdparam x="404" y="195" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Event event" />
+<TGConnectingPoint num="0" id="34" />
+<extraparam>
+<Prop commName="event" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="88" >
+<father id="97" num="2" />
+<cdparam x="266" y="278" />
+<sizeparam width="471" height="329" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="201" minY="0" maxY="289" />
+<infoparam name="Composite component" value="CompositeComp2" />
+<TGConnectingPoint num="0" id="80" />
+<TGConnectingPoint num="1" id="81" />
+<TGConnectingPoint num="2" id="82" />
+<TGConnectingPoint num="3" id="83" />
+<TGConnectingPoint num="4" id="84" />
+<TGConnectingPoint num="5" id="85" />
+<TGConnectingPoint num="6" id="86" />
+<TGConnectingPoint num="7" id="87" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="57" >
+<father id="88" num="0" />
+<cdparam x="399" y="491" />
+<sizeparam width="169" height="81" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="302" minY="0" maxY="248" />
+<infoparam name="Primitive component" value="PrimitiveComp5" />
+<TGConnectingPoint num="0" id="49" />
+<TGConnectingPoint num="1" id="50" />
+<TGConnectingPoint num="2" id="51" />
+<TGConnectingPoint num="3" id="52" />
+<TGConnectingPoint num="4" id="53" />
+<TGConnectingPoint num="5" id="54" />
+<TGConnectingPoint num="6" id="55" />
+<TGConnectingPoint num="7" id="56" />
+<extraparam>
+<Data isAttacker="No" daemon="false" Operation="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="46" >
+<father id="57" num="0" />
+<cdparam x="411" y="559" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Channel channel3" />
+<TGConnectingPoint num="0" id="45" />
+<extraparam>
+<Prop commName="channel3" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="57" num="1" />
+<cdparam x="508" y="559" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Channel channel3" />
+<TGConnectingPoint num="0" id="47" />
+<extraparam>
+<Prop commName="channel3" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="68" >
+<father id="88" num="1" />
+<cdparam x="285" y="318" />
+<sizeparam width="169" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="302" minY="0" maxY="179" />
+<infoparam name="Primitive component" value="PrimitiveComp3" />
+<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" />
+<extraparam>
+<Data isAttacker="No" daemon="false" Operation="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="59" >
+<father id="68" num="0" />
+<cdparam x="441" y="352" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel2" />
+<TGConnectingPoint num="0" id="58" />
+<extraparam>
+<Prop commName="channel2" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="79" >
+<father id="88" num="2" />
+<cdparam x="527" y="316" />
+<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="179" />
+<infoparam name="Primitive component" value="PrimitiveComp4" />
+<TGConnectingPoint num="0" id="71" />
+<TGConnectingPoint num="1" id="72" />
+<TGConnectingPoint num="2" id="73" />
+<TGConnectingPoint num="3" id="74" />
+<TGConnectingPoint num="4" id="75" />
+<TGConnectingPoint num="5" id="76" />
+<TGConnectingPoint num="6" id="77" />
+<TGConnectingPoint num="7" id="78" />
+<extraparam>
+<Data isAttacker="No" daemon="false" Operation="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="70" >
+<father id="79" num="0" />
+<cdparam x="514" y="351" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel2" />
+<TGConnectingPoint num="0" id="69" />
+<extraparam>
+<Prop commName="channel2" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1202" id="18" >
+<cdparam x="931" y="292" />
+<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Primitive component" value="PrimitiveComp6" />
+<TGConnectingPoint num="0" id="10" />
+<TGConnectingPoint num="1" id="11" />
+<TGConnectingPoint num="2" id="12" />
+<TGConnectingPoint num="3" id="13" />
+<TGConnectingPoint num="4" id="14" />
+<TGConnectingPoint num="5" id="15" />
+<TGConnectingPoint num="6" id="16" />
+<TGConnectingPoint num="7" id="17" />
+<extraparam>
+<Data isAttacker="No" daemon="false" Operation="" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1203" id="7" >
+<father id="18" num="0" />
+<cdparam x="1118" y="392" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel4" />
+<TGConnectingPoint num="0" id="6" />
+<extraparam>
+<Prop commName="channel4" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="9" >
+<father id="18" num="1" />
+<cdparam x="1118" y="335" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel4" />
+<TGConnectingPoint num="0" id="8" />
+<extraparam>
+<Prop commName="channel4" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="PrimitiveComp2" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="1001" id="113" >
+<cdparam x="520" y="416" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="112" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="115" >
+<cdparam x="397" y="418" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="114" />
+</COMPONENT>
+
+<COMPONENT type="1010" id="118" >
+<cdparam x="501" y="302" />
+<sizeparam width="59" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="wait event" value="event() " />
+<TGConnectingPoint num="0" id="116" />
+<TGConnectingPoint num="1" id="117" />
+<extraparam>
+<Data eventName="event" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1009" id="121" >
+<cdparam x="366" y="296" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="read channel" value="channel(1) " />
+<TGConnectingPoint num="0" id="119" />
+<TGConnectingPoint num="1" id="120" />
+<extraparam>
+<Data channelName="channel" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1012" id="129" >
+<cdparam x="392" y="175" />
+<sizeparam width="30" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="125" />
+<TGConnectingPoint num="1" id="126" />
+<TGConnectingPoint num="2" id="127" />
+<TGConnectingPoint num="3" id="128" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="122" >
+<father id="129" num="0" />
+<cdparam x="367" y="185" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="123" >
+<father id="129" num="1" />
+<cdparam x="427" y="185" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="124" >
+<father id="129" num="2" />
+<cdparam x="412" y="220" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="131" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="130" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="133" >
+<cdparam x="447" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="447" y="190" id="127" />
+<P2  x="530" y="297" id="116" />
+<Point x="530" y="190" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="132" >
+<father id="133" num="0" />
+<cdparam x="530" y="190" />
+<sizeparam width="1" height="1" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="115" id="134" >
+<cdparam x="407" y="65" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="65" id="130" />
+<P2  x="407" y="165" id="125" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="135" >
+<cdparam x="407" y="230" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="230" id="128" />
+<P2  x="407" y="291" id="119" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="136" >
+<cdparam x="407" y="321" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="321" id="120" />
+<P2  x="407" y="413" id="114" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="137" >
+<cdparam x="530" y="327" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="530" y="327" id="117" />
+<P2  x="530" y="411" id="112" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="PrimitiveComp1" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="1001" id="139" >
+<cdparam x="397" y="440" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="138" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="141" >
+<cdparam x="302" y="444" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="140" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="144" >
+<cdparam x="285" y="326" />
+<sizeparam width="55" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="send event" value="event()" />
+<TGConnectingPoint num="0" id="142" />
+<TGConnectingPoint num="1" id="143" />
+<extraparam>
+<Data eventName="event" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="147" >
+<cdparam x="368" y="324" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="write channel" value="channel(1)" />
+<TGConnectingPoint num="0" id="145" />
+<TGConnectingPoint num="1" id="146" />
+<extraparam>
+<Data channelName="channel" nbOfSamples="1" secPattern="" isAttacker="Yes" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1012" id="155" >
+<cdparam x="392" y="183" />
+<sizeparam width="30" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="151" />
+<TGConnectingPoint num="1" id="152" />
+<TGConnectingPoint num="2" id="153" />
+<TGConnectingPoint num="3" id="154" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="148" >
+<father id="155" num="0" />
+<cdparam x="367" y="193" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="149" >
+<father id="155" num="1" />
+<cdparam x="427" y="193" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="150" >
+<father id="155" num="2" />
+<cdparam x="412" y="228" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="157" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="156" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="159" >
+<cdparam x="367" y="198" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="367" y="198" id="152" />
+<P2  x="312" y="321" id="142" />
+<Point x="312" y="198" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="158" >
+<father id="159" num="0" />
+<cdparam x="312" y="198" />
+<sizeparam width="1" height="1" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="115" id="160" >
+<cdparam x="407" y="65" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="65" id="156" />
+<P2  x="407" y="173" id="151" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="161" >
+<cdparam x="407" y="238" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="238" id="154" />
+<P2  x="407" y="319" id="145" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="162" >
+<cdparam x="312" y="351" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="312" y="351" id="143" />
+<P2  x="312" y="439" id="140" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="163" >
+<cdparam x="407" y="349" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="349" id="146" />
+<P2  x="407" y="435" id="138" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="PrimitiveComp3" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="1001" id="165" >
+<cdparam x="397" y="269" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="164" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="168" >
+<cdparam x="364" y="143" />
+<sizeparam width="86" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="write channel" value="channel2(1)" />
+<TGConnectingPoint num="0" id="166" />
+<TGConnectingPoint num="1" id="167" />
+<extraparam>
+<Data channelName="channel2" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="170" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="169" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="171" >
+<cdparam x="407" y="168" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="168" id="167" />
+<P2  x="407" y="264" id="164" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="172" >
+<cdparam x="407" y="65" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="65" id="169" />
+<P2  x="407" y="138" id="166" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="PrimitiveComp4" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="1001" id="174" >
+<cdparam x="397" y="274" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="173" />
+</COMPONENT>
+
+<COMPONENT type="1009" id="177" >
+<cdparam x="362" y="162" />
+<sizeparam width="90" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="read channel" value="channel2(1) " />
+<TGConnectingPoint num="0" id="175" />
+<TGConnectingPoint num="1" id="176" />
+<extraparam>
+<Data channelName="channel2" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="179" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="178" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="180" >
+<cdparam x="407" y="65" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="65" id="178" />
+<P2  x="407" y="157" id="175" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="181" >
+<cdparam x="407" y="187" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="187" id="176" />
+<P2  x="407" y="269" id="173" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="PrimitiveComp5" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="1001" id="183" >
+<cdparam x="397" y="342" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="182" />
+</COMPONENT>
+
+<COMPONENT type="1009" id="186" >
+<cdparam x="362" y="238" />
+<sizeparam width="90" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="read channel" value="channel3(1) " />
+<TGConnectingPoint num="0" id="184" />
+<TGConnectingPoint num="1" id="185" />
+<extraparam>
+<Data channelName="channel3" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="189" >
+<cdparam x="364" y="143" />
+<sizeparam width="86" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="write channel" value="channel3(1)" />
+<TGConnectingPoint num="0" id="187" />
+<TGConnectingPoint num="1" id="188" />
+<extraparam>
+<Data channelName="channel3" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="191" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="190" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="192" >
+<cdparam x="407" y="65" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="65" id="190" />
+<P2  x="407" y="138" id="187" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="193" >
+<cdparam x="407" y="168" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="168" id="188" />
+<P2  x="407" y="233" id="184" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="194" >
+<cdparam x="407" y="263" />
+<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="263" id="185" />
+<P2  x="407" y="337" id="182" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="PrimitiveComp6" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="1001" id="196" >
+<cdparam x="397" y="331" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="195" />
+</COMPONENT>
+
+<COMPONENT type="1009" id="199" >
+<cdparam x="362" y="233" />
+<sizeparam width="90" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="read channel" value="channel4(1) " />
+<TGConnectingPoint num="0" id="197" />
+<TGConnectingPoint num="1" id="198" />
+<extraparam>
+<Data channelName="channel4" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="202" >
+<cdparam x="364" y="133" />
+<sizeparam width="86" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="write channel" value="channel4(1)" />
+<TGConnectingPoint num="0" id="200" />
+<TGConnectingPoint num="1" id="201" />
+<extraparam>
+<Data channelName="channel4" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="204" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="203" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="205" >
+<cdparam x="407" y="65" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="65" id="203" />
+<P2  x="407" y="128" id="200" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="206" >
+<cdparam x="407" y="158" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="158" id="201" />
+<P2  x="407" y="228" id="197" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="207" >
+<cdparam x="407" y="258" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="258" id="198" />
+<P2  x="407" y="326" id="195" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Architecture" nameTab="Architecture" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1100" id="299" >
+<cdparam x="83" y="128" />
+<sizeparam width="552" height="225" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="CPU0" value="name" />
+<TGConnectingPoint num="0" id="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" />
+<TGConnectingPoint num="12" id="287" />
+<TGConnectingPoint num="13" id="288" />
+<TGConnectingPoint num="14" id="289" />
+<TGConnectingPoint num="15" id="290" />
+<TGConnectingPoint num="16" id="291" />
+<TGConnectingPoint num="17" id="292" />
+<TGConnectingPoint num="18" id="293" />
+<TGConnectingPoint num="19" id="294" />
+<TGConnectingPoint num="20" id="295" />
+<TGConnectingPoint num="21" id="296" />
+<TGConnectingPoint num="22" id="297" />
+<TGConnectingPoint num="23" id="298" />
+<extraparam>
+<info stereotype="CPU" nodeName="CPU0" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="229" >
+<father id="299" num="0" />
+<cdparam x="110" y="152" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp1" />
+<TGConnectingPoint num="0" id="221" />
+<TGConnectingPoint num="1" id="222" />
+<TGConnectingPoint num="2" id="223" />
+<TGConnectingPoint num="3" id="224" />
+<TGConnectingPoint num="4" id="225" />
+<TGConnectingPoint num="5" id="226" />
+<TGConnectingPoint num="6" id="227" />
+<TGConnectingPoint num="7" id="228" />
+<extraparam>
+<info value="Application::PrimitiveComp1" taskName="PrimitiveComp1" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="238" >
+<father id="299" num="1" />
+<cdparam x="111" y="201" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp2" />
+<TGConnectingPoint num="0" id="230" />
+<TGConnectingPoint num="1" id="231" />
+<TGConnectingPoint num="2" id="232" />
+<TGConnectingPoint num="3" id="233" />
+<TGConnectingPoint num="4" id="234" />
+<TGConnectingPoint num="5" id="235" />
+<TGConnectingPoint num="6" id="236" />
+<TGConnectingPoint num="7" id="237" />
+<extraparam>
+<info value="Application::PrimitiveComp2" taskName="PrimitiveComp2" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="247" >
+<father id="299" num="2" />
+<cdparam x="112" y="261" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp3" />
+<TGConnectingPoint num="0" id="239" />
+<TGConnectingPoint num="1" id="240" />
+<TGConnectingPoint num="2" id="241" />
+<TGConnectingPoint num="3" id="242" />
+<TGConnectingPoint num="4" id="243" />
+<TGConnectingPoint num="5" id="244" />
+<TGConnectingPoint num="6" id="245" />
+<TGConnectingPoint num="7" id="246" />
+<extraparam>
+<info value="Application::PrimitiveComp3" taskName="PrimitiveComp3" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="256" >
+<father id="299" num="3" />
+<cdparam x="393" y="144" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp4" />
+<TGConnectingPoint num="0" id="248" />
+<TGConnectingPoint num="1" id="249" />
+<TGConnectingPoint num="2" id="250" />
+<TGConnectingPoint num="3" id="251" />
+<TGConnectingPoint num="4" id="252" />
+<TGConnectingPoint num="5" id="253" />
+<TGConnectingPoint num="6" id="254" />
+<TGConnectingPoint num="7" id="255" />
+<extraparam>
+<info value="Application::PrimitiveComp4" taskName="PrimitiveComp4" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="265" >
+<father id="299" num="4" />
+<cdparam x="371" y="203" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp5" />
+<TGConnectingPoint num="0" id="257" />
+<TGConnectingPoint num="1" id="258" />
+<TGConnectingPoint num="2" id="259" />
+<TGConnectingPoint num="3" id="260" />
+<TGConnectingPoint num="4" id="261" />
+<TGConnectingPoint num="5" id="262" />
+<TGConnectingPoint num="6" id="263" />
+<TGConnectingPoint num="7" id="264" />
+<extraparam>
+<info value="Application::PrimitiveComp5" taskName="PrimitiveComp5" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp5" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="274" >
+<father id="299" num="5" />
+<cdparam x="376" y="255" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp6" />
+<TGConnectingPoint num="0" id="266" />
+<TGConnectingPoint num="1" id="267" />
+<TGConnectingPoint num="2" id="268" />
+<TGConnectingPoint num="3" id="269" />
+<TGConnectingPoint num="4" id="270" />
+<TGConnectingPoint num="5" id="271" />
+<TGConnectingPoint num="6" id="272" />
+<TGConnectingPoint num="7" id="273" />
+<extraparam>
+<info value="Application::PrimitiveComp6" taskName="PrimitiveComp6" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp6" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="1100" id="324" >
+<cdparam x="1276" y="110" />
+<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="CPU2" value="name" />
+<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" />
+<TGConnectingPoint num="16" id="316" />
+<TGConnectingPoint num="17" id="317" />
+<TGConnectingPoint num="18" id="318" />
+<TGConnectingPoint num="19" id="319" />
+<TGConnectingPoint num="20" id="320" />
+<TGConnectingPoint num="21" id="321" />
+<TGConnectingPoint num="22" id="322" />
+<TGConnectingPoint num="23" id="323" />
+<extraparam>
+<info stereotype="CPURR" nodeName="CPU2" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1100" id="349" >
+<cdparam x="991" y="100" />
+<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="CPU1" value="name" />
+<TGConnectingPoint num="0" id="325" />
+<TGConnectingPoint num="1" id="326" />
+<TGConnectingPoint num="2" id="327" />
+<TGConnectingPoint num="3" id="328" />
+<TGConnectingPoint num="4" id="329" />
+<TGConnectingPoint num="5" id="330" />
+<TGConnectingPoint num="6" id="331" />
+<TGConnectingPoint num="7" id="332" />
+<TGConnectingPoint num="8" id="333" />
+<TGConnectingPoint num="9" id="334" />
+<TGConnectingPoint num="10" id="335" />
+<TGConnectingPoint num="11" id="336" />
+<TGConnectingPoint num="12" id="337" />
+<TGConnectingPoint num="13" id="338" />
+<TGConnectingPoint num="14" id="339" />
+<TGConnectingPoint num="15" id="340" />
+<TGConnectingPoint num="16" id="341" />
+<TGConnectingPoint num="17" id="342" />
+<TGConnectingPoint num="18" id="343" />
+<TGConnectingPoint num="19" id="344" />
+<TGConnectingPoint num="20" id="345" />
+<TGConnectingPoint num="21" id="346" />
+<TGConnectingPoint num="22" id="347" />
+<TGConnectingPoint num="23" id="348" />
+<extraparam>
+<info stereotype="CPURR" nodeName="CPU1" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1107" id="374" >
+<cdparam x="699" y="398" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="DMA0" value="name" />
+<TGConnectingPoint num="0" id="350" />
+<TGConnectingPoint num="1" id="351" />
+<TGConnectingPoint num="2" id="352" />
+<TGConnectingPoint num="3" id="353" />
+<TGConnectingPoint num="4" id="354" />
+<TGConnectingPoint num="5" id="355" />
+<TGConnectingPoint num="6" id="356" />
+<TGConnectingPoint num="7" id="357" />
+<TGConnectingPoint num="8" id="358" />
+<TGConnectingPoint num="9" id="359" />
+<TGConnectingPoint num="10" id="360" />
+<TGConnectingPoint num="11" id="361" />
+<TGConnectingPoint num="12" id="362" />
+<TGConnectingPoint num="13" id="363" />
+<TGConnectingPoint num="14" id="364" />
+<TGConnectingPoint num="15" id="365" />
+<TGConnectingPoint num="16" id="366" />
+<TGConnectingPoint num="17" id="367" />
+<TGConnectingPoint num="18" id="368" />
+<TGConnectingPoint num="19" id="369" />
+<TGConnectingPoint num="20" id="370" />
+<TGConnectingPoint num="21" id="371" />
+<TGConnectingPoint num="22" id="372" />
+<TGConnectingPoint num="23" id="373" />
+<extraparam>
+<info stereotype="DMA" nodeName="DMA0" />
+<attributes byteDataSize="4" nbOfChannels="1" clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="399" >
+<cdparam x="344" y="601" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Memory0" value="name" />
+<TGConnectingPoint num="0" id="375" />
+<TGConnectingPoint num="1" id="376" />
+<TGConnectingPoint num="2" id="377" />
+<TGConnectingPoint num="3" id="378" />
+<TGConnectingPoint num="4" id="379" />
+<TGConnectingPoint num="5" id="380" />
+<TGConnectingPoint num="6" id="381" />
+<TGConnectingPoint num="7" id="382" />
+<TGConnectingPoint num="8" id="383" />
+<TGConnectingPoint num="9" id="384" />
+<TGConnectingPoint num="10" id="385" />
+<TGConnectingPoint num="11" id="386" />
+<TGConnectingPoint num="12" id="387" />
+<TGConnectingPoint num="13" id="388" />
+<TGConnectingPoint num="14" id="389" />
+<TGConnectingPoint num="15" id="390" />
+<TGConnectingPoint num="16" id="391" />
+<TGConnectingPoint num="17" id="392" />
+<TGConnectingPoint num="18" id="393" />
+<TGConnectingPoint num="19" id="394" />
+<TGConnectingPoint num="20" id="395" />
+<TGConnectingPoint num="21" id="396" />
+<TGConnectingPoint num="22" id="397" />
+<TGConnectingPoint num="23" id="398" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="Memory0" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="424" >
+<cdparam x="1363" y="461" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Bus1" value="name" />
+<TGConnectingPoint num="0" id="400" />
+<TGConnectingPoint num="1" id="401" />
+<TGConnectingPoint num="2" id="402" />
+<TGConnectingPoint num="3" id="403" />
+<TGConnectingPoint num="4" id="404" />
+<TGConnectingPoint num="5" id="405" />
+<TGConnectingPoint num="6" id="406" />
+<TGConnectingPoint num="7" id="407" />
+<TGConnectingPoint num="8" id="408" />
+<TGConnectingPoint num="9" id="409" />
+<TGConnectingPoint num="10" id="410" />
+<TGConnectingPoint num="11" id="411" />
+<TGConnectingPoint num="12" id="412" />
+<TGConnectingPoint num="13" id="413" />
+<TGConnectingPoint num="14" id="414" />
+<TGConnectingPoint num="15" id="415" />
+<TGConnectingPoint num="16" id="416" />
+<TGConnectingPoint num="17" id="417" />
+<TGConnectingPoint num="18" id="418" />
+<TGConnectingPoint num="19" id="419" />
+<TGConnectingPoint num="20" id="420" />
+<TGConnectingPoint num="21" id="421" />
+<TGConnectingPoint num="22" id="422" />
+<TGConnectingPoint num="23" id="423" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="Bus1" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="null" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1102" id="449" >
+<cdparam x="316" y="416" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Bus0" value="name" />
+<TGConnectingPoint num="0" id="425" />
+<TGConnectingPoint num="1" id="426" />
+<TGConnectingPoint num="2" id="427" />
+<TGConnectingPoint num="3" id="428" />
+<TGConnectingPoint num="4" id="429" />
+<TGConnectingPoint num="5" id="430" />
+<TGConnectingPoint num="6" id="431" />
+<TGConnectingPoint num="7" id="432" />
+<TGConnectingPoint num="8" id="433" />
+<TGConnectingPoint num="9" id="434" />
+<TGConnectingPoint num="10" id="435" />
+<TGConnectingPoint num="11" id="436" />
+<TGConnectingPoint num="12" id="437" />
+<TGConnectingPoint num="13" id="438" />
+<TGConnectingPoint num="14" id="439" />
+<TGConnectingPoint num="15" id="440" />
+<TGConnectingPoint num="16" id="441" />
+<TGConnectingPoint num="17" id="442" />
+<TGConnectingPoint num="18" id="443" />
+<TGConnectingPoint num="19" id="444" />
+<TGConnectingPoint num="20" id="445" />
+<TGConnectingPoint num="21" id="446" />
+<TGConnectingPoint num="22" id="447" />
+<TGConnectingPoint num="23" id="448" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="Bus0" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="null" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1116" id="474" >
+<cdparam x="1355" y="573" />
+<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="FPGA1" value="name" />
+<TGConnectingPoint num="0" id="450" />
+<TGConnectingPoint num="1" id="451" />
+<TGConnectingPoint num="2" id="452" />
+<TGConnectingPoint num="3" id="453" />
+<TGConnectingPoint num="4" id="454" />
+<TGConnectingPoint num="5" id="455" />
+<TGConnectingPoint num="6" id="456" />
+<TGConnectingPoint num="7" id="457" />
+<TGConnectingPoint num="8" id="458" />
+<TGConnectingPoint num="9" id="459" />
+<TGConnectingPoint num="10" id="460" />
+<TGConnectingPoint num="11" id="461" />
+<TGConnectingPoint num="12" id="462" />
+<TGConnectingPoint num="13" id="463" />
+<TGConnectingPoint num="14" id="464" />
+<TGConnectingPoint num="15" id="465" />
+<TGConnectingPoint num="16" id="466" />
+<TGConnectingPoint num="17" id="467" />
+<TGConnectingPoint num="18" id="468" />
+<TGConnectingPoint num="19" id="469" />
+<TGConnectingPoint num="20" id="470" />
+<TGConnectingPoint num="21" id="471" />
+<TGConnectingPoint num="22" id="472" />
+<TGConnectingPoint num="23" id="473" />
+<extraparam>
+<info stereotype="FPGA" nodeName="FPGA1" />
+<attributes capacity="100" byteDataSize="4"  mappingPenalty="0"  reconfigurationTime="50"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  execiTime="1" execcTime="1" clockRatio="1" operation =""  scheduling ="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1116" id="499" >
+<cdparam x="74" y="596" />
+<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="FPGA0" value="name" />
+<TGConnectingPoint num="0" id="475" />
+<TGConnectingPoint num="1" id="476" />
+<TGConnectingPoint num="2" id="477" />
+<TGConnectingPoint num="3" id="478" />
+<TGConnectingPoint num="4" id="479" />
+<TGConnectingPoint num="5" id="480" />
+<TGConnectingPoint num="6" id="481" />
+<TGConnectingPoint num="7" id="482" />
+<TGConnectingPoint num="8" id="483" />
+<TGConnectingPoint num="9" id="484" />
+<TGConnectingPoint num="10" id="485" />
+<TGConnectingPoint num="11" id="486" />
+<TGConnectingPoint num="12" id="487" />
+<TGConnectingPoint num="13" id="488" />
+<TGConnectingPoint num="14" id="489" />
+<TGConnectingPoint num="15" id="490" />
+<TGConnectingPoint num="16" id="491" />
+<TGConnectingPoint num="17" id="492" />
+<TGConnectingPoint num="18" id="493" />
+<TGConnectingPoint num="19" id="494" />
+<TGConnectingPoint num="20" id="495" />
+<TGConnectingPoint num="21" id="496" />
+<TGConnectingPoint num="22" id="497" />
+<TGConnectingPoint num="23" id="498" />
+<extraparam>
+<info stereotype="FPGA" nodeName="FPGA0" />
+<attributes capacity="100" byteDataSize="4"  mappingPenalty="0"  reconfigurationTime="50"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  execiTime="1" execcTime="1" clockRatio="1" operation =""  scheduling ="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="524" >
+<cdparam x="1108" y="814" />
+<sizeparam width="250" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Bridge1" value="name" />
+<TGConnectingPoint num="0" id="500" />
+<TGConnectingPoint num="1" id="501" />
+<TGConnectingPoint num="2" id="502" />
+<TGConnectingPoint num="3" id="503" />
+<TGConnectingPoint num="4" id="504" />
+<TGConnectingPoint num="5" id="505" />
+<TGConnectingPoint num="6" id="506" />
+<TGConnectingPoint num="7" id="507" />
+<TGConnectingPoint num="8" id="508" />
+<TGConnectingPoint num="9" id="509" />
+<TGConnectingPoint num="10" id="510" />
+<TGConnectingPoint num="11" id="511" />
+<TGConnectingPoint num="12" id="512" />
+<TGConnectingPoint num="13" id="513" />
+<TGConnectingPoint num="14" id="514" />
+<TGConnectingPoint num="15" id="515" />
+<TGConnectingPoint num="16" id="516" />
+<TGConnectingPoint num="17" id="517" />
+<TGConnectingPoint num="18" id="518" />
+<TGConnectingPoint num="19" id="519" />
+<TGConnectingPoint num="20" id="520" />
+<TGConnectingPoint num="21" id="521" />
+<TGConnectingPoint num="22" id="522" />
+<TGConnectingPoint num="23" id="523" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="Bridge1" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1106" id="549" >
+<cdparam x="13" y="416" />
+<sizeparam width="250" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Bridge0" value="name" />
+<TGConnectingPoint num="0" id="525" />
+<TGConnectingPoint num="1" id="526" />
+<TGConnectingPoint num="2" id="527" />
+<TGConnectingPoint num="3" id="528" />
+<TGConnectingPoint num="4" id="529" />
+<TGConnectingPoint num="5" id="530" />
+<TGConnectingPoint num="6" id="531" />
+<TGConnectingPoint num="7" id="532" />
+<TGConnectingPoint num="8" id="533" />
+<TGConnectingPoint num="9" id="534" />
+<TGConnectingPoint num="10" id="535" />
+<TGConnectingPoint num="11" id="536" />
+<TGConnectingPoint num="12" id="537" />
+<TGConnectingPoint num="13" id="538" />
+<TGConnectingPoint num="14" id="539" />
+<TGConnectingPoint num="15" id="540" />
+<TGConnectingPoint num="16" id="541" />
+<TGConnectingPoint num="17" id="542" />
+<TGConnectingPoint num="18" id="543" />
+<TGConnectingPoint num="19" id="544" />
+<TGConnectingPoint num="20" id="545" />
+<TGConnectingPoint num="21" id="546" />
+<TGConnectingPoint num="22" id="547" />
+<TGConnectingPoint num="23" id="548" />
+<extraparam>
+<info stereotype="BRIDGE" nodeName="Bridge0" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1104" id="574" >
+<cdparam x="1393" y="804" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="HWA1" value="name" />
+<TGConnectingPoint num="0" id="550" />
+<TGConnectingPoint num="1" id="551" />
+<TGConnectingPoint num="2" id="552" />
+<TGConnectingPoint num="3" id="553" />
+<TGConnectingPoint num="4" id="554" />
+<TGConnectingPoint num="5" id="555" />
+<TGConnectingPoint num="6" id="556" />
+<TGConnectingPoint num="7" id="557" />
+<TGConnectingPoint num="8" id="558" />
+<TGConnectingPoint num="9" id="559" />
+<TGConnectingPoint num="10" id="560" />
+<TGConnectingPoint num="11" id="561" />
+<TGConnectingPoint num="12" id="562" />
+<TGConnectingPoint num="13" id="563" />
+<TGConnectingPoint num="14" id="564" />
+<TGConnectingPoint num="15" id="565" />
+<TGConnectingPoint num="16" id="566" />
+<TGConnectingPoint num="17" id="567" />
+<TGConnectingPoint num="18" id="568" />
+<TGConnectingPoint num="19" id="569" />
+<TGConnectingPoint num="20" id="570" />
+<TGConnectingPoint num="21" id="571" />
+<TGConnectingPoint num="22" id="572" />
+<TGConnectingPoint num="23" id="573" />
+<extraparam>
+<info stereotype="HWA" nodeName="HWA1" />
+<attributes byteDataSize="4"  execiTime="1"  clockRatio="1"  operation="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1104" id="599" >
+<cdparam x="672" y="681" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="HWA0" value="name" />
+<TGConnectingPoint num="0" id="575" />
+<TGConnectingPoint num="1" id="576" />
+<TGConnectingPoint num="2" id="577" />
+<TGConnectingPoint num="3" id="578" />
+<TGConnectingPoint num="4" id="579" />
+<TGConnectingPoint num="5" id="580" />
+<TGConnectingPoint num="6" id="581" />
+<TGConnectingPoint num="7" id="582" />
+<TGConnectingPoint num="8" id="583" />
+<TGConnectingPoint num="9" id="584" />
+<TGConnectingPoint num="10" id="585" />
+<TGConnectingPoint num="11" id="586" />
+<TGConnectingPoint num="12" id="587" />
+<TGConnectingPoint num="13" id="588" />
+<TGConnectingPoint num="14" id="589" />
+<TGConnectingPoint num="15" id="590" />
+<TGConnectingPoint num="16" id="591" />
+<TGConnectingPoint num="17" id="592" />
+<TGConnectingPoint num="18" id="593" />
+<TGConnectingPoint num="19" id="594" />
+<TGConnectingPoint num="20" id="595" />
+<TGConnectingPoint num="21" id="596" />
+<TGConnectingPoint num="22" id="597" />
+<TGConnectingPoint num="23" id="598" />
+<extraparam>
+<info stereotype="HWA" nodeName="HWA0" />
+<attributes byteDataSize="4"  execiTime="1"  clockRatio="1"  operation="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1107" id="624" >
+<cdparam x="1109" y="354" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="DMA1" value="name" />
+<TGConnectingPoint num="0" id="600" />
+<TGConnectingPoint num="1" id="601" />
+<TGConnectingPoint num="2" id="602" />
+<TGConnectingPoint num="3" id="603" />
+<TGConnectingPoint num="4" id="604" />
+<TGConnectingPoint num="5" id="605" />
+<TGConnectingPoint num="6" id="606" />
+<TGConnectingPoint num="7" id="607" />
+<TGConnectingPoint num="8" id="608" />
+<TGConnectingPoint num="9" id="609" />
+<TGConnectingPoint num="10" id="610" />
+<TGConnectingPoint num="11" id="611" />
+<TGConnectingPoint num="12" id="612" />
+<TGConnectingPoint num="13" id="613" />
+<TGConnectingPoint num="14" id="614" />
+<TGConnectingPoint num="15" id="615" />
+<TGConnectingPoint num="16" id="616" />
+<TGConnectingPoint num="17" id="617" />
+<TGConnectingPoint num="18" id="618" />
+<TGConnectingPoint num="19" id="619" />
+<TGConnectingPoint num="20" id="620" />
+<TGConnectingPoint num="21" id="621" />
+<TGConnectingPoint num="22" id="622" />
+<TGConnectingPoint num="23" id="623" />
+<extraparam>
+<info stereotype="DMA" nodeName="DMA1" />
+<attributes byteDataSize="4" nbOfChannels="1" clockRatio="1" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1105" id="649" >
+<cdparam x="1115" y="579" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Memory1" value="name" />
+<TGConnectingPoint num="0" id="625" />
+<TGConnectingPoint num="1" id="626" />
+<TGConnectingPoint num="2" id="627" />
+<TGConnectingPoint num="3" id="628" />
+<TGConnectingPoint num="4" id="629" />
+<TGConnectingPoint num="5" id="630" />
+<TGConnectingPoint num="6" id="631" />
+<TGConnectingPoint num="7" id="632" />
+<TGConnectingPoint num="8" id="633" />
+<TGConnectingPoint num="9" id="634" />
+<TGConnectingPoint num="10" id="635" />
+<TGConnectingPoint num="11" id="636" />
+<TGConnectingPoint num="12" id="637" />
+<TGConnectingPoint num="13" id="638" />
+<TGConnectingPoint num="14" id="639" />
+<TGConnectingPoint num="15" id="640" />
+<TGConnectingPoint num="16" id="641" />
+<TGConnectingPoint num="17" id="642" />
+<TGConnectingPoint num="18" id="643" />
+<TGConnectingPoint num="19" id="644" />
+<TGConnectingPoint num="20" id="645" />
+<TGConnectingPoint num="21" id="646" />
+<TGConnectingPoint num="22" id="647" />
+<TGConnectingPoint num="23" id="648" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="Memory1" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="125" id="650" >
+<cdparam x="759" y="623" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="722" y="681" id="583" />
+<P2  x="503" y="466" id="440" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="651" >
+<cdparam x="444" y="328" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="359" y="353" id="281" />
+<P2  x="441" y="416" id="426" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="652" >
+<cdparam x="298" y="533" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="444" y="601" id="376" />
+<P2  x="441" y="466" id="431" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="653" >
+<cdparam x="770" y="476" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="699" y="448" id="360" />
+<P2  x="566" y="441" id="429" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="654" >
+<cdparam x="262" y="461" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="263" y="466" id="529" />
+<P2  x="316" y="441" id="428" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="655" >
+<cdparam x="199" y="596" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="199" y="596" id="476" />
+<P2  x="378" y="466" id="439" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+
+</TMLArchiDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file
diff --git a/ttool/src/test/resources/ui/diagram2tml/input/CloneCompositeComponentTest.xml b/ttool/src/test/resources/ui/diagram2tml/input/CloneCompositeComponentTest.xml
index 85151e3792..60a0086af9 100644
--- a/ttool/src/test/resources/ui/diagram2tml/input/CloneCompositeComponentTest.xml
+++ b/ttool/src/test/resources/ui/diagram2tml/input/CloneCompositeComponentTest.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false">
+<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="0" LAST_SELECTED_SUB_TAB="1">
 
 <Modeling type="TML Component Design" nameTab="Application" tabs="TML Component Task Diagram$PrimitiveComp2$PrimitiveComp1$PrimitiveComp3$PrimitiveComp4$PrimitiveComp5$PrimitiveComp6" >
 <TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="10" maxX="2500" minY="10" maxY="1500" channels="true" events="true" requests="true" zoom="1.0" >
@@ -8,40 +8,40 @@
 <cdparam x="1144" y="348" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="1131" y="335" id="87" />
-<P2  x="1131" y="392" id="85" />
+<P1  x="1100" y="256" id="87" />
+<P2  x="1100" y="313" id="85" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="2" >
 <cdparam x="424" y="585" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="424" y="559" id="32" />
-<P2  x="521" y="559" id="34" />
+<P1  x="424" y="585" id="32" />
+<P2  x="521" y="585" id="34" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="3" >
 <cdparam x="878" y="469" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="417" y="195" id="21" />
-<P2  x="577" y="196" id="8" />
+<P1  x="430" y="208" id="21" />
+<P2  x="564" y="209" id="8" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="4" >
 <cdparam x="1021" y="460" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="577" y="151" id="6" />
-<P2  x="417" y="150" id="19" />
+<P1  x="564" y="164" id="6" />
+<P2  x="430" y="163" id="19" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="5" >
 <cdparam x="475" y="480" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="454" y="352" id="45" />
-<P2  x="527" y="351" id="56" />
+<P1  x="467" y="365" id="45" />
+<P2  x="514" y="364" id="56" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <COMPONENT type="1200" id="84" >
@@ -314,7 +314,7 @@
 </SUBCOMPONENT>
 
 <COMPONENT type="1202" id="97" >
-<cdparam x="931" y="292" />
+<cdparam x="887" y="200" />
 <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" />
@@ -333,7 +333,7 @@
 </COMPONENT>
 <SUBCOMPONENT type="1203" id="86" >
 <father id="97" num="0" />
-<cdparam x="1118" y="392" />
+<cdparam x="1074" y="300" />
 <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" />
@@ -350,7 +350,7 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="88" >
 <father id="97" num="1" />
-<cdparam x="1118" y="335" />
+<cdparam x="1074" y="243" />
 <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" />
@@ -916,12 +916,48 @@
 
 <Modeling type="TML Architecture" nameTab="Architecture" >
 <TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" masterClockFrequency="200" >
-<COMPONENT type="1107" id="218" >
-<cdparam x="648" y="377" />
-<sizeparam width="200" height="200" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="272" >
+<cdparam x="83" y="128" />
+<sizeparam width="552" height="225" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="DMA0" value="name" />
+<infoparam name="CPU0" value="name" />
+<TGConnectingPoint num="0" id="248" />
+<TGConnectingPoint num="1" id="249" />
+<TGConnectingPoint num="2" id="250" />
+<TGConnectingPoint num="3" id="251" />
+<TGConnectingPoint num="4" id="252" />
+<TGConnectingPoint num="5" id="253" />
+<TGConnectingPoint num="6" id="254" />
+<TGConnectingPoint num="7" id="255" />
+<TGConnectingPoint num="8" id="256" />
+<TGConnectingPoint num="9" id="257" />
+<TGConnectingPoint num="10" id="258" />
+<TGConnectingPoint num="11" id="259" />
+<TGConnectingPoint num="12" id="260" />
+<TGConnectingPoint num="13" id="261" />
+<TGConnectingPoint num="14" id="262" />
+<TGConnectingPoint num="15" id="263" />
+<TGConnectingPoint num="16" id="264" />
+<TGConnectingPoint num="17" id="265" />
+<TGConnectingPoint num="18" id="266" />
+<TGConnectingPoint num="19" id="267" />
+<TGConnectingPoint num="20" id="268" />
+<TGConnectingPoint num="21" id="269" />
+<TGConnectingPoint num="22" id="270" />
+<TGConnectingPoint num="23" id="271" />
+<extraparam>
+<info stereotype="CPU" nodeName="CPU0" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="202" >
+<father id="272" num="0" />
+<cdparam x="110" y="152" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp1" />
 <TGConnectingPoint num="0" id="194" />
 <TGConnectingPoint num="1" id="195" />
 <TGConnectingPoint num="2" id="196" />
@@ -930,142 +966,220 @@
 <TGConnectingPoint num="5" id="199" />
 <TGConnectingPoint num="6" id="200" />
 <TGConnectingPoint num="7" id="201" />
-<TGConnectingPoint num="8" id="202" />
-<TGConnectingPoint num="9" id="203" />
-<TGConnectingPoint num="10" id="204" />
-<TGConnectingPoint num="11" id="205" />
-<TGConnectingPoint num="12" id="206" />
-<TGConnectingPoint num="13" id="207" />
-<TGConnectingPoint num="14" id="208" />
-<TGConnectingPoint num="15" id="209" />
-<TGConnectingPoint num="16" id="210" />
-<TGConnectingPoint num="17" id="211" />
-<TGConnectingPoint num="18" id="212" />
-<TGConnectingPoint num="19" id="213" />
-<TGConnectingPoint num="20" id="214" />
-<TGConnectingPoint num="21" id="215" />
-<TGConnectingPoint num="22" id="216" />
-<TGConnectingPoint num="23" id="217" />
 <extraparam>
-<info stereotype="DMA" nodeName="DMA0" />
-<attributes byteDataSize="4" nbOfChannels="1" clockRatio="1" />
+<info value="Application::PrimitiveComp1" taskName="PrimitiveComp1" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="211" >
+<father id="272" num="1" />
+<cdparam x="111" y="201" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp2" />
+<TGConnectingPoint num="0" id="203" />
+<TGConnectingPoint num="1" id="204" />
+<TGConnectingPoint num="2" id="205" />
+<TGConnectingPoint num="3" id="206" />
+<TGConnectingPoint num="4" id="207" />
+<TGConnectingPoint num="5" id="208" />
+<TGConnectingPoint num="6" id="209" />
+<TGConnectingPoint num="7" id="210" />
+<extraparam>
+<info value="Application::PrimitiveComp2" taskName="PrimitiveComp2" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="220" >
+<father id="272" num="2" />
+<cdparam x="112" y="261" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp3" />
+<TGConnectingPoint num="0" id="212" />
+<TGConnectingPoint num="1" id="213" />
+<TGConnectingPoint num="2" id="214" />
+<TGConnectingPoint num="3" id="215" />
+<TGConnectingPoint num="4" id="216" />
+<TGConnectingPoint num="5" id="217" />
+<TGConnectingPoint num="6" id="218" />
+<TGConnectingPoint num="7" id="219" />
+<extraparam>
+<info value="Application::PrimitiveComp3" taskName="PrimitiveComp3" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="229" >
+<father id="272" num="3" />
+<cdparam x="393" y="144" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp4" />
+<TGConnectingPoint num="0" id="221" />
+<TGConnectingPoint num="1" id="222" />
+<TGConnectingPoint num="2" id="223" />
+<TGConnectingPoint num="3" id="224" />
+<TGConnectingPoint num="4" id="225" />
+<TGConnectingPoint num="5" id="226" />
+<TGConnectingPoint num="6" id="227" />
+<TGConnectingPoint num="7" id="228" />
+<extraparam>
+<info value="Application::PrimitiveComp4" taskName="PrimitiveComp4" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="238" >
+<father id="272" num="4" />
+<cdparam x="371" y="203" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp5" />
+<TGConnectingPoint num="0" id="230" />
+<TGConnectingPoint num="1" id="231" />
+<TGConnectingPoint num="2" id="232" />
+<TGConnectingPoint num="3" id="233" />
+<TGConnectingPoint num="4" id="234" />
+<TGConnectingPoint num="5" id="235" />
+<TGConnectingPoint num="6" id="236" />
+<TGConnectingPoint num="7" id="237" />
+<extraparam>
+<info value="Application::PrimitiveComp5" taskName="PrimitiveComp5" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp5" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="247" >
+<father id="272" num="5" />
+<cdparam x="376" y="255" />
+<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp6" />
+<TGConnectingPoint num="0" id="239" />
+<TGConnectingPoint num="1" id="240" />
+<TGConnectingPoint num="2" id="241" />
+<TGConnectingPoint num="3" id="242" />
+<TGConnectingPoint num="4" id="243" />
+<TGConnectingPoint num="5" id="244" />
+<TGConnectingPoint num="6" id="245" />
+<TGConnectingPoint num="7" id="246" />
+<extraparam>
+<info value="Application::PrimitiveComp6" taskName="PrimitiveComp6" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp6" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
 
-<COMPONENT type="1102" id="243" >
-<cdparam x="316" y="416" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="297" >
+<cdparam x="991" y="100" />
+<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Bus0" 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" />
+<infoparam name="CPU1" value="name" />
+<TGConnectingPoint num="0" id="273" />
+<TGConnectingPoint num="1" id="274" />
+<TGConnectingPoint num="2" id="275" />
+<TGConnectingPoint num="3" id="276" />
+<TGConnectingPoint num="4" id="277" />
+<TGConnectingPoint num="5" id="278" />
+<TGConnectingPoint num="6" id="279" />
+<TGConnectingPoint num="7" id="280" />
+<TGConnectingPoint num="8" id="281" />
+<TGConnectingPoint num="9" id="282" />
+<TGConnectingPoint num="10" id="283" />
+<TGConnectingPoint num="11" id="284" />
+<TGConnectingPoint num="12" id="285" />
+<TGConnectingPoint num="13" id="286" />
+<TGConnectingPoint num="14" id="287" />
+<TGConnectingPoint num="15" id="288" />
+<TGConnectingPoint num="16" id="289" />
+<TGConnectingPoint num="17" id="290" />
+<TGConnectingPoint num="18" id="291" />
+<TGConnectingPoint num="19" id="292" />
+<TGConnectingPoint num="20" id="293" />
+<TGConnectingPoint num="21" id="294" />
+<TGConnectingPoint num="22" id="295" />
+<TGConnectingPoint num="23" id="296" />
 <extraparam>
-<info stereotype="BUS-RR" nodeName="Bus0" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="null" />
+<info stereotype="CPURR" nodeName="CPU1" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1105" id="268" >
-<cdparam x="415" y="607" />
-<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1107" id="322" >
+<cdparam x="699" y="398" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Memory0" value="name" />
-<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" />
+<infoparam name="DMA0" value="name" />
+<TGConnectingPoint num="0" id="298" />
+<TGConnectingPoint num="1" id="299" />
+<TGConnectingPoint num="2" id="300" />
+<TGConnectingPoint num="3" id="301" />
+<TGConnectingPoint num="4" id="302" />
+<TGConnectingPoint num="5" id="303" />
+<TGConnectingPoint num="6" id="304" />
+<TGConnectingPoint num="7" id="305" />
+<TGConnectingPoint num="8" id="306" />
+<TGConnectingPoint num="9" id="307" />
+<TGConnectingPoint num="10" id="308" />
+<TGConnectingPoint num="11" id="309" />
+<TGConnectingPoint num="12" id="310" />
+<TGConnectingPoint num="13" id="311" />
+<TGConnectingPoint num="14" id="312" />
+<TGConnectingPoint num="15" id="313" />
+<TGConnectingPoint num="16" id="314" />
+<TGConnectingPoint num="17" id="315" />
+<TGConnectingPoint num="18" id="316" />
+<TGConnectingPoint num="19" id="317" />
+<TGConnectingPoint num="20" id="318" />
+<TGConnectingPoint num="21" id="319" />
+<TGConnectingPoint num="22" id="320" />
+<TGConnectingPoint num="23" id="321" />
 <extraparam>
-<info stereotype="MEMORY" nodeName="Memory0" />
-<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
+<info stereotype="DMA" nodeName="DMA0" />
+<attributes byteDataSize="4" nbOfChannels="1" clockRatio="1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1100" id="293" >
-<cdparam x="792" y="120" />
-<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1105" id="347" >
+<cdparam x="344" y="601" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="CPU1" value="name" />
-<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" />
+<infoparam name="Memory0" value="name" />
+<TGConnectingPoint num="0" id="323" />
+<TGConnectingPoint num="1" id="324" />
+<TGConnectingPoint num="2" id="325" />
+<TGConnectingPoint num="3" id="326" />
+<TGConnectingPoint num="4" id="327" />
+<TGConnectingPoint num="5" id="328" />
+<TGConnectingPoint num="6" id="329" />
+<TGConnectingPoint num="7" id="330" />
+<TGConnectingPoint num="8" id="331" />
+<TGConnectingPoint num="9" id="332" />
+<TGConnectingPoint num="10" id="333" />
+<TGConnectingPoint num="11" id="334" />
+<TGConnectingPoint num="12" id="335" />
+<TGConnectingPoint num="13" id="336" />
+<TGConnectingPoint num="14" id="337" />
+<TGConnectingPoint num="15" id="338" />
+<TGConnectingPoint num="16" id="339" />
+<TGConnectingPoint num="17" id="340" />
+<TGConnectingPoint num="18" id="341" />
+<TGConnectingPoint num="19" id="342" />
+<TGConnectingPoint num="20" id="343" />
+<TGConnectingPoint num="21" id="344" />
+<TGConnectingPoint num="22" id="345" />
+<TGConnectingPoint num="23" id="346" />
 <extraparam>
-<info stereotype="CPURR" nodeName="CPU1" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
+<info stereotype="MEMORY" nodeName="Memory0" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1100" id="372" >
-<cdparam x="83" y="128" />
-<sizeparam width="552" height="225" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1102" id="372" >
+<cdparam x="316" y="416" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="CPU0" value="name" />
+<infoparam name="Bus0" value="name" />
 <TGConnectingPoint num="0" id="348" />
 <TGConnectingPoint num="1" id="349" />
 <TGConnectingPoint num="2" id="350" />
@@ -1091,155 +1205,185 @@
 <TGConnectingPoint num="22" id="370" />
 <TGConnectingPoint num="23" id="371" />
 <extraparam>
-<info stereotype="CPU" nodeName="CPU0" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
+<info stereotype="BUS-RR" nodeName="Bus0" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="null" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="302" >
-<father id="372" num="0" />
-<cdparam x="110" y="152" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1116" id="397" >
+<cdparam x="74" y="596" />
+<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp1" />
-<TGConnectingPoint num="0" id="294" />
-<TGConnectingPoint num="1" id="295" />
-<TGConnectingPoint num="2" id="296" />
-<TGConnectingPoint num="3" id="297" />
-<TGConnectingPoint num="4" id="298" />
-<TGConnectingPoint num="5" id="299" />
-<TGConnectingPoint num="6" id="300" />
-<TGConnectingPoint num="7" id="301" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="FPGA0" value="name" />
+<TGConnectingPoint num="0" id="373" />
+<TGConnectingPoint num="1" id="374" />
+<TGConnectingPoint num="2" id="375" />
+<TGConnectingPoint num="3" id="376" />
+<TGConnectingPoint num="4" id="377" />
+<TGConnectingPoint num="5" id="378" />
+<TGConnectingPoint num="6" id="379" />
+<TGConnectingPoint num="7" id="380" />
+<TGConnectingPoint num="8" id="381" />
+<TGConnectingPoint num="9" id="382" />
+<TGConnectingPoint num="10" id="383" />
+<TGConnectingPoint num="11" id="384" />
+<TGConnectingPoint num="12" id="385" />
+<TGConnectingPoint num="13" id="386" />
+<TGConnectingPoint num="14" id="387" />
+<TGConnectingPoint num="15" id="388" />
+<TGConnectingPoint num="16" id="389" />
+<TGConnectingPoint num="17" id="390" />
+<TGConnectingPoint num="18" id="391" />
+<TGConnectingPoint num="19" id="392" />
+<TGConnectingPoint num="20" id="393" />
+<TGConnectingPoint num="21" id="394" />
+<TGConnectingPoint num="22" id="395" />
+<TGConnectingPoint num="23" id="396" />
 <extraparam>
-<info value="Application::PrimitiveComp1" taskName="PrimitiveComp1" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info stereotype="FPGA" nodeName="FPGA0" />
+<attributes capacity="100" byteDataSize="4"  mappingPenalty="0"  reconfigurationTime="50"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  execiTime="1" execcTime="1" clockRatio="1" operation =""  scheduling ="" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="311" >
-<father id="372" num="1" />
-<cdparam x="111" y="201" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="1106" id="422" >
+<cdparam x="13" y="416" />
+<sizeparam width="250" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp2" />
-<TGConnectingPoint num="0" id="303" />
-<TGConnectingPoint num="1" id="304" />
-<TGConnectingPoint num="2" id="305" />
-<TGConnectingPoint num="3" id="306" />
-<TGConnectingPoint num="4" id="307" />
-<TGConnectingPoint num="5" id="308" />
-<TGConnectingPoint num="6" id="309" />
-<TGConnectingPoint num="7" id="310" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Bridge0" value="name" />
+<TGConnectingPoint num="0" id="398" />
+<TGConnectingPoint num="1" id="399" />
+<TGConnectingPoint num="2" id="400" />
+<TGConnectingPoint num="3" id="401" />
+<TGConnectingPoint num="4" id="402" />
+<TGConnectingPoint num="5" id="403" />
+<TGConnectingPoint num="6" id="404" />
+<TGConnectingPoint num="7" id="405" />
+<TGConnectingPoint num="8" id="406" />
+<TGConnectingPoint num="9" id="407" />
+<TGConnectingPoint num="10" id="408" />
+<TGConnectingPoint num="11" id="409" />
+<TGConnectingPoint num="12" id="410" />
+<TGConnectingPoint num="13" id="411" />
+<TGConnectingPoint num="14" id="412" />
+<TGConnectingPoint num="15" id="413" />
+<TGConnectingPoint num="16" id="414" />
+<TGConnectingPoint num="17" id="415" />
+<TGConnectingPoint num="18" id="416" />
+<TGConnectingPoint num="19" id="417" />
+<TGConnectingPoint num="20" id="418" />
+<TGConnectingPoint num="21" id="419" />
+<TGConnectingPoint num="22" id="420" />
+<TGConnectingPoint num="23" id="421" />
 <extraparam>
-<info value="Application::PrimitiveComp2" taskName="PrimitiveComp2" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info stereotype="BRIDGE" nodeName="Bridge0" />
+<attributes bufferByteDataSize="4"  clockRatio="1" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="320" >
-<father id="372" num="2" />
-<cdparam x="112" y="261" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="1104" id="447" >
+<cdparam x="672" y="681" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp3" />
-<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" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="HWA0" value="name" />
+<TGConnectingPoint num="0" id="423" />
+<TGConnectingPoint num="1" id="424" />
+<TGConnectingPoint num="2" id="425" />
+<TGConnectingPoint num="3" id="426" />
+<TGConnectingPoint num="4" id="427" />
+<TGConnectingPoint num="5" id="428" />
+<TGConnectingPoint num="6" id="429" />
+<TGConnectingPoint num="7" id="430" />
+<TGConnectingPoint num="8" id="431" />
+<TGConnectingPoint num="9" id="432" />
+<TGConnectingPoint num="10" id="433" />
+<TGConnectingPoint num="11" id="434" />
+<TGConnectingPoint num="12" id="435" />
+<TGConnectingPoint num="13" id="436" />
+<TGConnectingPoint num="14" id="437" />
+<TGConnectingPoint num="15" id="438" />
+<TGConnectingPoint num="16" id="439" />
+<TGConnectingPoint num="17" id="440" />
+<TGConnectingPoint num="18" id="441" />
+<TGConnectingPoint num="19" id="442" />
+<TGConnectingPoint num="20" id="443" />
+<TGConnectingPoint num="21" id="444" />
+<TGConnectingPoint num="22" id="445" />
+<TGConnectingPoint num="23" id="446" />
 <extraparam>
-<info value="Application::PrimitiveComp3" taskName="PrimitiveComp3" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info stereotype="HWA" nodeName="HWA0" />
+<attributes byteDataSize="4"  execiTime="1"  clockRatio="1"  operation="" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="329" >
-<father id="372" num="3" />
-<cdparam x="370" y="147" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp4" />
-<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" />
+</COMPONENT>
+
+<CONNECTOR type="125" id="448" >
+<cdparam x="759" y="623" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="722" y="681" id="431" />
+<P2  x="503" y="466" id="363" />
+<AutomaticDrawing  data="true" />
 <extraparam>
-<info value="Application::PrimitiveComp4" taskName="PrimitiveComp4" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="338" >
-<father id="372" num="4" />
-<cdparam x="371" y="203" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp5" />
-<TGConnectingPoint num="0" id="330" />
-<TGConnectingPoint num="1" id="331" />
-<TGConnectingPoint num="2" id="332" />
-<TGConnectingPoint num="3" id="333" />
-<TGConnectingPoint num="4" id="334" />
-<TGConnectingPoint num="5" id="335" />
-<TGConnectingPoint num="6" id="336" />
-<TGConnectingPoint num="7" id="337" />
+</CONNECTOR>
+<CONNECTOR type="125" id="449" >
+<cdparam x="444" y="328" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="359" y="353" id="254" />
+<P2  x="441" y="416" id="349" />
+<AutomaticDrawing  data="true" />
 <extraparam>
-<info value="Application::PrimitiveComp5" taskName="PrimitiveComp5" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp5" fatherComponentMECType="0" />
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="347" >
-<father id="372" num="5" />
-<cdparam x="376" y="255" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp6" />
-<TGConnectingPoint num="0" id="339" />
-<TGConnectingPoint num="1" id="340" />
-<TGConnectingPoint num="2" id="341" />
-<TGConnectingPoint num="3" id="342" />
-<TGConnectingPoint num="4" id="343" />
-<TGConnectingPoint num="5" id="344" />
-<TGConnectingPoint num="6" id="345" />
-<TGConnectingPoint num="7" id="346" />
+</CONNECTOR>
+<CONNECTOR type="125" id="450" >
+<cdparam x="298" y="533" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="444" y="601" id="324" />
+<P2  x="441" y="466" id="354" />
+<AutomaticDrawing  data="true" />
 <extraparam>
-<info value="Application::PrimitiveComp6" taskName="PrimitiveComp6" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp6" fatherComponentMECType="0" />
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="125" id="373" >
+</CONNECTOR>
+<CONNECTOR type="125" id="451" >
 <cdparam x="770" y="476" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="648" y="427" id="204" />
-<P2  x="566" y="441" id="223" />
+<P1  x="699" y="448" id="308" />
+<P2  x="566" y="441" id="352" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="374" >
-<cdparam x="298" y="533" />
+<CONNECTOR type="125" id="452" >
+<cdparam x="262" y="461" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="515" y="607" id="245" />
-<P2  x="441" y="466" id="225" />
+<P1  x="263" y="466" id="402" />
+<P2  x="316" y="441" id="351" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="375" >
-<cdparam x="444" y="328" />
+<CONNECTOR type="125" id="453" >
+<cdparam x="199" y="596" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="359" y="353" id="354" />
-<P2  x="441" y="416" id="220" />
+<P1  x="199" y="596" id="374" />
+<P2  x="378" y="466" id="362" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
-- 
GitLab