Merge branch 'neon' of https://git.eclipse.org/r/chess/chess.git into
neon

Conflicts:
	plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/labeling/FlaDslDescriptionLabelProvider.xtend
	plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/labeling/FlaDslLabelProvider.xtend
	plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/outline/FlaDslOutlineTreeProvider.xtend
	plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/quickfix/FlaDslQuickfixProvider.xtend
	plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/GenerateFlaDsl.mwe2
	plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/formatting/FlaDslFormatter.xtend
	plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/generator/FlaDslGenerator.xtend
	plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/scoping/FlaDslScopeProvider.xtend
	plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/validation/FlaDslValidator.xtend

Change-Id: I5315768ba10a0377a053fa5244c92cb75ed528bb
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7c98241..3184e37 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,6 +15,8 @@
 
   SKIP_DEPENDENCIES: "false"
   AUTO_DEPLOY_TO_PRODUCTION: "false"
+  MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_DIR: "/tmp/maven_repository"
+  MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_PRJ_DIR: "${MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_DIR}/CHESS"
 
 stages:
 - build_sde
@@ -53,12 +55,16 @@
     only:
       refs:
       - master
-  
+    variables:
+      MAVEN_LOCAL_DISTRIBUTION_PRJ_REPOSITORY_URL:  "file://$MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_PRJ_DIR"
+
     stage: test
     environment: staging
     script:
+    #- mkdir -p MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_DIR
+    #- "export DISPLAY=:0.0; cd org.polarsys.chess.parent; mvn $MAVEN_CLI_OPTS -P Neon-Java8,DevelopmentUpdateSite -Ddistribution.repository=$MAVEN_LOCAL_DISTRIBUTION_PRJ_REPOSITORY_URL clean deploy"
     - "export DISPLAY=:0.0; cd org.polarsys.chess.parent; mvn $MAVEN_CLI_OPTS -P Neon-Java8,DevelopmentUpdateSite clean install"
-  
+      
 .deploy_to_production_update_site: &deploy_to_production_update_site
     dependencies:
     - maven_build_and_test
@@ -67,6 +73,7 @@
        UPDATE_SITE_MOUNT_DIR: "/tmp/www_ci"
        UPDATE_SITE_PROD_TARGET_DIR:  "html/tools/aida_chess"
        REPOSITORY_TO_COPY: "org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.repository/target/repository"
+       MAVEN_REPOSITORY_DIR: "html/tools/maven_repository"
        
     stage: deploy
     environment: staging
@@ -77,6 +84,9 @@
     - mkdir -p $UPDATE_SITE_MOUNT_DIR/$UPDATE_SITE_PROD_TARGET_DIR
     - cp -r ${REPOSITORY_TO_COPY}/* $UPDATE_SITE_MOUNT_DIR/$UPDATE_SITE_PROD_TARGET_DIR
     - chmod -R 0777 $UPDATE_SITE_MOUNT_DIR/$UPDATE_SITE_PROD_TARGET_DIR
+    #- echo "Deploy to remote maven repository"
+    #- cp -r ${MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_DIR}/* $UPDATE_SITE_MOUNT_DIR/$MAVEN_REPOSITORY_DIR
+    #- chmod -R 0777 $UPDATE_SITE_MOUNT_DIR/$MAVEN_REPOSITORY_DIR
     - fusermount -uz $UPDATE_SITE_MOUNT_DIR
     only:
       refs:
diff --git a/org.polarsys.chess.parent/bundles/pom.xml b/org.polarsys.chess.parent/bundles/pom.xml
index 96f2dd2..0582b1c 100644
--- a/org.polarsys.chess.parent/bundles/pom.xml
+++ b/org.polarsys.chess.parent/bundles/pom.xml
@@ -9,83 +9,65 @@
         <artifactId>org.polarsys.chess.parent</artifactId>
         <version>1.0.0-SNAPSHOT</version>
     </parent>
-    <modules>
-       	<module>../../plugins/org.polarsys.chess.chessmlprofile</module>
-    	<module>../../plugins/org.polarsys.chess.core</module>
-    	<module>../../plugins/org.polarsys.chess.wizards</module>
+    <modules>    	
     	<module>../../plugins/contracts/org.polarsys.chess.contracts.profile</module>    	
-    	<module>../../plugins/org.polarsys.chess.service</module>    	
-    	<module>../../plugins/org.polarsys.chess.cleanCExporter</module>
-    	<module>../../plugins/org.polarsys.chess.OSSImporter</module>
-    	<module>../../plugins/org.polarsys.chess.cdo</module>
-    	<module>../../plugins/org.polarsys.chess.codegen.ada</module>
-    	<module>../../plugins/org.polarsys.chess.commands</module>
-    	<module>
-    		../../plugins/org.polarsys.chess.constraints.constraintEditor
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.chessextension
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.contractEditor
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.contractPropertyManager
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.integration
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.refinementView
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.safetyAnalysis
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.transformations
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.validation
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.verificationService
-    	</module>
-    	<module>
-    		../../plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime
-    	</module>
-    	<module>../../plugins/org.polarsys.chess.diagram.ui</module>
-    	<module>../../plugins/org.polarsys.chess.diagramsCreator</module>
-    	<module>../../plugins/org.polarsys.chess.discovery</module>
-    	<module>../../plugins/fla/org.polarsys.chess.fla</module>
-    	<module>
-    		../../plugins/fla/org.polarsys.chess.fla.faultTreeGenerator
-    	</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.chessextension</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.contractEditor</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.contractPropertyManager</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.integration</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.refinementView</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.safetyAnalysis</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.transformations</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.validation</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.verificationService</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime</module>
+    	<module>../../plugins/contracts/org.polarsys.chess.contracts.hierarchicalContractView</module>
+
+		<module>../../plugins/fla/org.polarsys.chess.fla</module>
+    	<module>../../plugins/fla/org.polarsys.chess.fla.faultTreeGenerator</module>
     	<module>../../plugins/fla/org.polarsys.chess.fla.flamm</module>
     	<module>../../plugins/fla/org.polarsys.chess.fla.flaxml</module>
-    	<module>
-    		../../plugins/fla/org.polarsys.chess.fla.transformations
-    	</module>
+    	<module>../../plugins/fla/org.polarsys.chess.fla.transformations</module>
+    	<!-- module>../../plugins/fla/org.polarsys.chess.fla.FPTC2FLABehavior</module-->
+    	<module>../../plugins/fla/org.polarsys.chess.xtext.fladsl</module>
+    	<module>../../plugins/fla/org.polarsys.chess.xtext.fladsl.ide</module>
+    	<module>../../plugins/fla/org.polarsys.chess.xtext.fladsl.ui</module>    	
+    	    	
+    	<module>../../plugins/org.polarsys.chess.cdo</module>
+       	<module>../../plugins/org.polarsys.chess.checkers</module>        
+       	<module>../../plugins/org.polarsys.chess.chessmlprofile</module>
+       	<module>../../plugins/org.polarsys.chess.cleanCExporter</module>
+       	<module>../../plugins/org.polarsys.chess.codegen.ada</module>
+       	<module>../../plugins/org.polarsys.chess.commands</module>   	       	
+       	<module>../../plugins/org.polarsys.chess.constraints.constraintEditor</module>
+       	<module>../../plugins/org.polarsys.chess.core</module>
+       	<module>../../plugins/org.polarsys.chess.diagram.ui</module>
+    	<module>../../plugins/org.polarsys.chess.diagramsCreator</module>
+    	<module>../../plugins/org.polarsys.chess.discovery</module>
     	<module>../../plugins/org.polarsys.chess.functionBehaviors.functionBehaviorEditor</module>
+    	<!-- module>../../plugins/org.polarsys.chess.instance.view</module-->
     	<module>../../plugins/org.polarsys.chess.m2m</module>
     	<module>../../plugins/org.polarsys.chess.monitoring</module>
     	<module>../../plugins/org.polarsys.chess.monitoring.edit</module>
     	<module>../../plugins/org.polarsys.chess.monitoring.editor</module>
     	<module>../../plugins/org.polarsys.chess.monitoring.tests</module>
     	<module>../../plugins/org.polarsys.chess.multicore</module>
+    	<module>../../plugins/org.polarsys.chess.OSSImporter</module>
     	<module>../../plugins/org.polarsys.chess.paramArchConfigurator</module>
     	<module>../../plugins/org.polarsys.chess.patterns</module>
     	<module>../../plugins/org.polarsys.chess.patterns.library</module>
     	<module>../../plugins/org.polarsys.chess.patterns.profile</module>
     	<module>../../plugins/org.polarsys.chess.properties.propertyEditor</module>
-    	<module>../../plugins/org.polarsys.chess.validator</module>
-    	<module>../../plugins/contracts/org.polarsys.chess.contracts.hierarchicalContractView</module>
+    	<module>../../plugins/org.polarsys.chess.service</module>    	
     	<module>../../plugins/org.polarsys.chess.smvExporter</module>
-    	<module>../../plugins/sba/org.polarsys.chess.statebased</module>
-    	<module>../../plugins/org.polarsys.chess.xtext.global</module>
+    	<module>../../plugins/org.polarsys.chess.tabbedproperties</module>
+    	<module>../../plugins/org.polarsys.chess.test.runtime</module>
     	<module>../../plugins/org.polarsys.chess.tradeoffAnalysis</module>
+    	<module>../../plugins/org.polarsys.chess.validator</module>
+    	<module>../../plugins/org.polarsys.chess.wizards</module>
+    	<module>../../plugins/org.polarsys.chess.xtext.global</module>
+    	    	    	
+    	<module>../../plugins/sba/org.polarsys.chess.statebased</module>
     	
-    	<!-- module>../../plugins/org.polarsys.chess.tabbedproperties</module>
-    	<module>../../plugins/fla/org.polarsys.chess.xtext.fladsl</module>
-    	<module>../../plugins/fla/org.polarsys.chess.xtext.fladsl.ui</module-->
     </modules>
 </project>
diff --git a/org.polarsys.chess.parent/features/eu.fbk.tools.aida.chess.feature/feature.xml b/org.polarsys.chess.parent/features/eu.fbk.tools.aida.chess.feature/feature.xml
index 5a13c24..1c2707a 100644
--- a/org.polarsys.chess.parent/features/eu.fbk.tools.aida.chess.feature/feature.xml
+++ b/org.polarsys.chess.parent/features/eu.fbk.tools.aida.chess.feature/feature.xml
@@ -80,4 +80,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.polarsys.chess.checkers"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/plugins/org.polarsys.chess.feature/.project b/org.polarsys.chess.parent/features/org.polarsys.chess.feature/.project
similarity index 100%
rename from plugins/org.polarsys.chess.feature/.project
rename to org.polarsys.chess.parent/features/org.polarsys.chess.feature/.project
diff --git a/plugins/org.polarsys.chess.feature/build.properties b/org.polarsys.chess.parent/features/org.polarsys.chess.feature/build.properties
similarity index 100%
rename from plugins/org.polarsys.chess.feature/build.properties
rename to org.polarsys.chess.parent/features/org.polarsys.chess.feature/build.properties
diff --git a/org.polarsys.chess.parent/features/org.polarsys.chess.feature/feature.xml b/org.polarsys.chess.parent/features/org.polarsys.chess.feature/feature.xml
new file mode 100644
index 0000000..26e0fba
--- /dev/null
+++ b/org.polarsys.chess.parent/features/org.polarsys.chess.feature/feature.xml
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.polarsys.chess.feature"
+      label="CHESS"
+      version="1.0.0.qualifier"
+      provider-name="Fondazione Bruno Kessler">
+
+   <description url="http://www.example.com/description">
+      [Enter Feature Description here.]
+   </description>
+
+   <copyright url="http://www.example.com/copyright">
+      [Enter Copyright Description here.]
+   </copyright>
+
+   <license url="http://www.example.com/license">
+      [Enter License Description here.]
+   </license>
+
+   <plugin
+         id="org.polarsys.chess.chessmlprofile"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.profile"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.diagram.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.diagramsCreator"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.functionBehaviors.functionBehaviorEditor"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.service"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.validator"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.wizards"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.checkers"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.OSSImporter"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.cleanCExporter"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.codegen.ada"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.commands"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.constraints.constraintEditor"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.chessextension"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.contractEditor"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.contractPropertyManager"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.hierarchicalContractView"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.integration"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.refinementView"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.safetyAnalysis"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.transformations"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.validation"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.contracts.verificationService"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.discovery"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.fla"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.fla.flamm"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.fla.flaxml"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.m2m"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.monitoring"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.multicore"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.paramArchConfigurator"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.patterns"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.patterns.library"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.patterns.profile"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.properties.propertyEditor"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.smvExporter"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.statebased"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.tradeoffAnalysis"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.xtext.fladsl"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.xtext.fladsl.ide"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.xtext.fladsl.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.xtext.global"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/plugins/org.polarsys.chess.feature/pom.xml b/org.polarsys.chess.parent/features/org.polarsys.chess.feature/pom.xml
similarity index 70%
rename from plugins/org.polarsys.chess.feature/pom.xml
rename to org.polarsys.chess.parent/features/org.polarsys.chess.feature/pom.xml
index 8d85446..2310ac1 100644
--- a/plugins/org.polarsys.chess.feature/pom.xml
+++ b/org.polarsys.chess.parent/features/org.polarsys.chess.feature/pom.xml
@@ -4,12 +4,9 @@
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.polarsys.chess</groupId>
-    <artifactId>CHESS</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <relativePath>../../</relativePath>
+    <artifactId>org.polarsys.chess.features</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
   </parent>
-  <groupId>org.polarsys.chess</groupId>
   <artifactId>org.polarsys.chess.feature</artifactId>
-  <version>0.10.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/org.polarsys.chess.parent/features/pom.xml b/org.polarsys.chess.parent/features/pom.xml
index 891ccc5..3c6b71d 100644
--- a/org.polarsys.chess.parent/features/pom.xml
+++ b/org.polarsys.chess.parent/features/pom.xml
@@ -14,5 +14,8 @@
     	<module>
     		eu.fbk.tools.aida.chess.feature
     	</module>
+		<module>
+    		org.polarsys.chess.feature
+    	</module>
     </modules>
 </project>
diff --git a/org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.target.neon/.project b/org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.target.neon/.project
new file mode 100644
index 0000000..ecbd97a
--- /dev/null
+++ b/org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.target.neon/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>eu.fbk.tools.aida.chess.target.neon</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.m2e.core.maven2Builder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.m2e.core.maven2Nature</nature>

+	</natures>

+</projectDescription>

diff --git a/org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.target.neon/eu.fbk.tools.aida.chess.target.neon.target b/org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.target.neon/eu.fbk.tools.aida.chess.target.neon.target
new file mode 100644
index 0000000..6c82e7d
--- /dev/null
+++ b/org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.target.neon/eu.fbk.tools.aida.chess.target.neon.target
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target name="eu.fbk.tools.aida.chess.target.neon.target" sequenceNumber="59">
+<locations>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.nebula.widgets.grid.feature.feature.group" version="0.0.0"/>
+<repository location="https://download.eclipse.org/nebula/releases/2.2.0/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.xtext.sdk.feature.group" version="2.12.0.v20170519-1412"/>
+<repository location="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.12.0/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.mwe2.language.sdk.feature.group" version="2.9.0.v201605261103"/>
+<unit id="org.eclipse.emf.mwe.sdk.feature.group" version="1.3.20.v201605261103"/>
+<repository location="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.0/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.elk.gmf.feature.feature.group" version="0.4.0"/>
+<unit id="org.eclipse.elk.sdk.feature.feature.group" version="0.4.0"/>
+<unit id="org.eclipse.elk.algorithms.feature.feature.group" version="0.4.0"/>
+<unit id="org.eclipse.elk.graphiti.feature.feature.group" version="0.4.0"/>
+<unit id="org.eclipse.elk.feature.feature.group" version="0.4.0"/>
+<unit id="org.eclipse.elk.ui.feature.feature.group" version="0.4.0"/>
+<unit id="org.eclipse.elk.graphviz.feature.feature.group" version="0.4.0"/>
+<repository location="http://build.eclipse.org/modeling/elk/updates/0.4.0/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.papyrus.sysml.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.sysml.modelexplorer.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.sysml.nattable.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.sysml.properties.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.sysml.diagram.feature.feature.group" version="2.0.0.201703081153"/>
+<unit id="org.eclipse.papyrus.sdk.feature.feature.group" version="2.0.3.201703080851"/>
+<unit id="org.eclipse.papyrus.extra.cdo.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.extra.marte.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.extra.marte.properties.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.extra.marte.textedit.feature.feature.group" version="1.2.0.201703081153"/>
+<repository location="https://download.eclipse.org/modeling/mdt/papyrus/updates/releases/neon/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.uml2.sdk.feature.group" version="5.2.3.v20170227-0935"/>
+<unit id="org.eclipse.ocl.all.sdk.feature.group" version="5.2.0.v20160523-1914"/>
+<unit id="org.eclipse.equinox.sdk.feature.group" version="3.12.0.v20170209-1843"/>
+<unit id="org.eclipse.platform.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gef.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gmf.sdk.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/releases/neon/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.sirius.specifier.ide.ui.aql.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.specifier.ide.ui.acceleo.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.aql.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ide.eef.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.specifier.ide.ui.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.properties.feature.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.doc.feature.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.properties.feature.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ide.ui.acceleo.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ide.ui.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.acceleo.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.tests.support.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ocl.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.interpreter.feature.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.specifier.properties.feature.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.interpreter.feature.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.specifier.ide.ui.acceleo.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.aql.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ide.xtext.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ide.ui.acceleo.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.specifier.properties.feature.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.acceleo.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ocl.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ide.eef.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.samples.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ide.ui.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.tests.support.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.doc.feature.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.aql.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.samples.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.runtime.ide.xtext.source.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.specifier.ide.ui.aql.feature.group" version="4.1.9.201802221507"/>
+<unit id="org.eclipse.sirius.specifier.ide.ui.feature.group" version="4.1.9.201802221507"/>
+<repository location="http://download.eclipse.org/sirius/updates/releases/4.1.9/neon/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.m2m.atl.feature.group" version="4.1.0.v201909021645"/>
+<repository location="https://download.eclipse.org/mmt/atl/updates/releases/4.1/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.m2m.qvt.oml.sdk.feature.group" version="3.8.0.v20180612-0940"/>
+<repository location="https://download.eclipse.org/mmt/qvto/updates/releases/3.8.0/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.viatra.query.sdk.feature.source.feature.group" version="1.7.2.201803211255"/>
+<unit id="org.eclipse.viatra.addon.viewers.runtime.feature.source.feature.group" version="0.17.2.201803211255"/>
+<repository location="https://download.eclipse.org/viatra/updates/release/1.7.2"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.epsilon.core.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.epsilon.emf.feature.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/epsilon/updates/1.4"/>
+</location>
+</locations>
+</target>
diff --git a/org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.target.neon/pom.xml b/org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.target.neon/pom.xml
new file mode 100644
index 0000000..35a22d0
--- /dev/null
+++ b/org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.target.neon/pom.xml
@@ -0,0 +1,14 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.polarsys.chess</groupId>
+		<artifactId>org.polarsys.chess.releng</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	<groupId>eu.fbk.tools.aida.chess.target</groupId>	
+	<artifactId>eu.fbk.tools.aida.chess.target.neon</artifactId>
+	<packaging>eclipse-target-definition</packaging>
+	<dependencies>
+	</dependencies>
+</project>
diff --git a/org.polarsys.chess.parent/releng/org.polarsys.chess.configuration/pom.xml b/org.polarsys.chess.parent/releng/org.polarsys.chess.configuration/pom.xml
index 93263ed..aae4190 100644
--- a/org.polarsys.chess.parent/releng/org.polarsys.chess.configuration/pom.xml
+++ b/org.polarsys.chess.parent/releng/org.polarsys.chess.configuration/pom.xml
@@ -11,6 +11,7 @@
 	</prerequisites>
 
 	<properties>
+		<distribution.repository>file:///tmp/maven_repository/</distribution.repository>	
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 		
@@ -23,9 +24,28 @@
 		<systemProperties></systemProperties>
 		<tycho.testArgLine></tycho.testArgLine>
 		<tycho.test.platformArgs />
-		<tycho.test.jvmArgs>-Xmx512m ${tycho.test.platformArgs}</tycho.test.jvmArgs>
-		
+		<tycho.test.jvmArgs>-Xmx512m ${tycho.test.platformArgs}</tycho.test.jvmArgs>		
 	</properties>
+	
+	<distributionManagement>
+		<repository>
+	   	      <id>CHESS</id>
+	   	      <name>CHESS</name>
+		      <url>${distribution.repository}</url>
+	    </repository>
+    </distributionManagement>
+    
+    <repositories>
+		<repository>
+   			<id>SDE</id>
+   			<url>http://es-static.fbk.eu/tools/maven_repository/SDE</url>
+		</repository>
+		
+		<repository>
+   			<id>EST</id>
+   			<url>http://es-static.fbk.eu/tools/maven_repository/EST</url>
+		</repository>
+	</repositories>
 
 	<build>
 		<plugins>
@@ -41,13 +61,6 @@
 				<artifactId>target-platform-configuration</artifactId>
 				<version>${tycho.version}</version>
 				<configuration>
-					<target>
-						<artifact>
-							<groupId>org.polarsys.chess.target</groupId>
-							<artifactId>org.polarsys.chess.target.neon</artifactId>
-							<version>1.0.0-SNAPSHOT</version>
-						</artifact>
-					</target>
 					<environments>
 						<environment>
 							<os>linux</os>
@@ -276,6 +289,74 @@
 						<configuration>
 							<target>
 								<artifact>
+									<groupId>eu.fbk.tools.aida.chess.target</groupId>
+									<artifactId>eu.fbk.tools.aida.chess.target.neon</artifactId>
+									<version>${project.version}</version>
+								</artifact>
+							</target>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.eclipse.xtend</groupId>
+						<artifactId>xtend-maven-plugin</artifactId>
+						<dependencies>
+							<dependency>
+								<groupId>org.eclipse.platform</groupId>
+								<artifactId>org.eclipse.equinox.common</artifactId>
+								<version>[3.8.0,4.0.0)</version>
+							</dependency>
+							<dependency>
+								<groupId>org.eclipse.jdt</groupId>
+								<artifactId>org.eclipse.jdt.core</artifactId>
+								<version>3.13.102</version>
+							</dependency>
+							<dependency>
+								<groupId>org.eclipse.jdt</groupId>
+								<artifactId>org.eclipse.jdt.compiler.apt</artifactId>
+								<version>1.3.110</version>
+							</dependency>
+							<dependency>
+								<groupId>org.eclipse.jdt</groupId>
+								<artifactId>org.eclipse.jdt.compiler.tool</artifactId>
+								<version>1.2.101</version>
+							</dependency>
+							<dependency>
+								<groupId>org.eclipse.emf</groupId>
+								<artifactId>org.eclipse.emf.codegen</artifactId>
+								<version>2.11.0</version>
+							</dependency>
+						</dependencies>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+		<profile>
+			<id>Eclipse-Neon-Java8</id>
+			<properties>
+				<!-- Tycho settings -->
+				<tycho.version>1.0.0</tycho.version>
+				<tycho.extras.version>1.0.0</tycho.extras.version>
+				<maven.compiler.source>1.8</maven.compiler.source>
+				<maven.compiler.target>1.8</maven.compiler.target>
+				<xtextVersion>2.12.0</xtextVersion>
+				<ecore-xcore-version>1.3.1</ecore-xcore-version>
+				<ecore-xcore-codegen-version>1.2.0</ecore-xcore-codegen-version>
+				<ecore-xcore-lib-version>1.1.100</ecore-xcore-lib-version>
+				<mwe2Version>[2.9.0,2.9.1)</mwe2Version>
+				<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+				<maven.compiler.source>1.8</maven.compiler.source>
+				<maven.compiler.target>1.8</maven.compiler.target>
+				<emfRuntimeVersion>2.12</emfRuntimeVersion>
+			</properties>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>target-platform-configuration</artifactId>
+						<version>${tycho.version}</version>
+						<configuration>
+							<target>
+								<artifact>
 									<groupId>org.polarsys.chess.target</groupId>
 									<artifactId>org.polarsys.chess.target.neon</artifactId>
 									<version>${project.version}</version>
diff --git a/org.polarsys.chess.parent/releng/org.polarsys.chess.product/.project b/org.polarsys.chess.parent/releng/org.polarsys.chess.product/.project
new file mode 100644
index 0000000..afd8fce
--- /dev/null
+++ b/org.polarsys.chess.parent/releng/org.polarsys.chess.product/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.polarsys.chess.product</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.polarsys.chess.parent/releng/org.polarsys.chess.product/CHESS.product b/org.polarsys.chess.parent/releng/org.polarsys.chess.product/CHESS.product
new file mode 100644
index 0000000..776da3e
--- /dev/null
+++ b/org.polarsys.chess.parent/releng/org.polarsys.chess.product/CHESS.product
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?pde version="3.5"?>

+

+<product name="CHESS Product" uid="org.polarsys.chess.product" id="org.eclipse.platform.ide" application="org.eclipse.ui.ide.workbench" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">

+

+   <configIni use="default">

+   </configIni>

+

+   <launcherArgs>

+      <programArgs>-clearPersistedState

+      </programArgs>

+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts

+      </vmArgsMac>

+   </launcherArgs>

+

+   <windowImages/>

+

+   <launcher name="CHESS">

+      <solaris/>

+      <win useIco="false">

+         <bmp/>

+      </win>

+   </launcher>

+

+   <vm>

+   </vm>

+

+   <plugins>

+   </plugins>

+

+   <features>

+      <feature id="org.eclipse.platform"/>

+      <feature id="org.eclipse.equinox.p2.user.ui"/>

+      <feature id="org.eclipse.ecf.filetransfer.httpclient4.feature"/>

+      <feature id="org.eclipse.help"/>

+      <feature id="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature"/>

+      <feature id="org.eclipse.equinox.p2.extras.feature"/>

+      <feature id="org.eclipse.rcp"/>

+      <feature id="org.eclipse.equinox.p2.core.feature"/>

+      <feature id="org.eclipse.ecf.core.feature"/>

+      <feature id="org.eclipse.equinox.p2.rcp.feature"/>

+      <feature id="org.eclipse.ecf.filetransfer.feature"/>

+      <feature id="org.eclipse.ecf.core.ssl.feature"/>

+      <feature id="org.eclipse.ecf.filetransfer.ssl.feature"/>

+      <feature id="org.eclipse.emf.ecore"/>

+      <feature id="org.eclipse.emf.common"/>

+      <feature id="org.eclipse.e4.rcp"/>

+      <feature id="org.eclipse.papyrus.sysml.diagram.feature"/>

+      <feature id="org.eclipse.papyrus.sysml.feature"/>

+      <feature id="org.eclipse.papyrus.sysml.modelexplorer.feature"/>

+      <feature id="org.eclipse.papyrus.sysml.nattable.feature"/>

+      <feature id="org.eclipse.papyrus.sysml.properties.feature"/>

+      <feature id="org.eclipse.papyrus.sdk.feature"/>

+      <feature id="org.eclipse.papyrus.extra.marte.feature"/>

+      <feature id="org.eclipse.papyrus.extra.marte.properties.feature"/>

+      <feature id="org.eclipse.papyrus.extra.marte.textedit.feature"/>

+      <feature id="org.eclipse.papyrus.uml.ui.feature"/>

+      <feature id="org.eclipse.papyrus.infra.gmfdiag.css.feature"/>

+      <feature id="org.eclipse.papyrus.uml.tools.feature"/>

+      <feature id="org.eclipse.papyrus.uml.search.feature"/>

+      <feature id="org.eclipse.papyrus.views.references.feature"/>

+      <feature id="org.eclipse.papyrus.infra.services.feature"/>

+      <feature id="org.eclipse.papyrus.uml.modelexplorer.feature"/>

+      <feature id="org.eclipse.papyrus.uml.feature"/>

+      <feature id="org.eclipse.papyrus.emf.facet.feature"/>

+      <feature id="org.eclipse.papyrus.infra.viewpoints.feature"/>

+      <feature id="org.eclipse.papyrus.infra.emf.feature"/>

+      <feature id="org.eclipse.papyrus.infra.feature"/>

+      <feature id="org.eclipse.papyrus.uml.properties.feature"/>

+      <feature id="org.eclipse.papyrus.views.modelexplorer.feature"/>

+      <feature id="org.eclipse.papyrus.doc.feature"/>

+      <feature id="org.eclipse.papyrus.uml.assistants.feature"/>

+      <feature id="org.eclipse.papyrus.infra.ui.feature"/>

+      <feature id="org.eclipse.papyrus.infra.nattable.feature"/>

+      <feature id="org.eclipse.papyrus.views.search.feature"/>

+      <feature id="org.eclipse.papyrus.uml.diagram.css.feature"/>

+      <feature id="org.eclipse.papyrus.uml.diagram.feature"/>

+      <feature id="org.eclipse.papyrus.uml.alf.feature"/>

+      <feature id="org.eclipse.papyrus.uml.textedit.feature"/>

+      <feature id="org.eclipse.papyrus.uml.nattable.feature"/>

+      <feature id="org.eclipse.papyrus.editor.feature"/>

+      <feature id="org.eclipse.papyrus.views.validation.feature"/>

+      <feature id="org.eclipse.papyrus.infra.discovery.feature"/>

+      <feature id="org.eclipse.papyrus.customization.feature"/>

+      <feature id="org.eclipse.papyrus.uml.decoratormodel.feature"/>

+      <feature id="org.eclipse.papyrus.views.properties.feature"/>

+      <feature id="org.eclipse.papyrus.uml.xtext.integration.feature"/>

+      <feature id="org.eclipse.papyrus.infra.widget.feature"/>

+      <feature id="org.eclipse.papyrus.infra.core.feature"/>

+      <feature id="org.eclipse.papyrus.infra.gmfdiag.feature"/>

+      <feature id="org.eclipse.xtext.redist"/>

+      <feature id="org.eclipse.nebula.widgets.grid.feature"/>

+      <feature id="org.eclipse.jdt"/>

+      <feature id="org.eclipse.pde"/>

+      <feature id="org.eclipse.draw2d"/>

+      <feature id="org.eclipse.emf.sdk"/>

+      <feature id="org.eclipse.gef.sdk"/>

+      <feature id="org.eclipse.gmf.sdk"/>

+      <feature id="org.eclipse.xtext.sdk"/>

+      <feature id="org.eclipse.elk.gmf.feature"/>

+      <feature id="org.eclipse.elk.algorithms.feature"/>

+      <feature id="org.eclipse.elk.feature"/>

+      <feature id="org.eclipse.elk.sdk.feature"/>

+      <feature id="org.eclipse.elk.ui.feature"/>

+      <feature id="org.eclipse.emf.mwe2.language.sdk"/>

+      <feature id="org.eclipse.emf.mwe.sdk"/>

+      <feature id="org.eclipse.epsilon.emf.feature"/>

+      <feature id="org.eclipse.epsilon.core.feature"/>

+      <feature id="org.eclipse.uml2.sdk"/>

+      <feature id="org.eclipse.ocl.all.sdk"/>

+      <feature id="org.eclipse.m2m.atl"/>

+      <feature id="org.eclipse.m2m.qvt.oml.sdk"/>

+      <feature id="org.eclipse.sirius.runtime.aql"/>

+      <feature id="org.eclipse.sirius.properties.feature"/>

+      <feature id="org.eclipse.sirius.doc.feature"/>

+      <feature id="org.eclipse.sirius.runtime.ide.ui.acceleo"/>

+      <feature id="org.eclipse.sirius.tests.support"/>

+      <feature id="org.eclipse.sirius.runtime.ocl"/>

+      <feature id="org.eclipse.sirius.runtime"/>

+      <feature id="org.eclipse.sirius.specifier.properties.feature"/>

+      <feature id="org.eclipse.sirius.interpreter.feature"/>

+      <feature id="org.eclipse.sirius.specifier.ide.ui.acceleo"/>

+      <feature id="org.eclipse.sirius.aql"/>

+      <feature id="org.eclipse.sirius.runtime.ide.xtext"/>

+      <feature id="org.eclipse.sirius.runtime.acceleo"/>

+      <feature id="org.eclipse.sirius.runtime.ide.eef"/>

+      <feature id="org.eclipse.sirius.runtime.ide.ui"/>

+      <feature id="org.eclipse.sirius.samples"/>

+      <feature id="org.eclipse.sirius.specifier.ide.ui.aql"/>

+      <feature id="org.eclipse.sirius.specifier.ide.ui"/>

+      <feature id="eu.fbk.eclipse.standardtools.feature" installMode="root"/>

+      <feature id="org.polarsys.chess.feature" installMode="root"/>

+      <feature id="eu.fbk.tools.sde.feature" installMode="root"/>

+   </features>

+

+   <configurations>

+      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />

+      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />

+      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />

+      <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />

+      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />

+   </configurations>

+

+   <repositories>

+      <repository location="http://es-static.fbk.eu/tools/eclipse_est_devel" enabled="true" />

+      <repository location="http://es-static.fbk.eu/tools/eclipse_sde_devel" enabled="true" />

+      <repository location="http://es-static.fbk.eu/tools/eclipse_chess" enabled="true" />

+   </repositories>

+

+   <preferencesInfo>

+      <targetfile overwrite="false"/>

+   </preferencesInfo>

+

+   <cssInfo>

+   </cssInfo>

+

+</product>

diff --git a/org.polarsys.chess.parent/releng/org.polarsys.chess.product/pom.xml b/org.polarsys.chess.parent/releng/org.polarsys.chess.product/pom.xml
new file mode 100644
index 0000000..ecb9140
--- /dev/null
+++ b/org.polarsys.chess.parent/releng/org.polarsys.chess.product/pom.xml
@@ -0,0 +1,117 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
+	<parent>
+		<groupId>org.polarsys.chess</groupId>
+		<artifactId>org.polarsys.chess.releng</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.polarsys.chess.product</artifactId>
+	<packaging>eclipse-repository</packaging>
+
+	<profiles>
+		<profile>
+			<id>ProductionUpdateSite</id>
+		</profile>
+		<profile>
+			<id>DevelopmentUpdateSite</id>
+			<activation>
+				<activeByDefault>true</activeByDefault>
+			</activation>
+		</profile>
+	</profiles>
+
+
+	<build>
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>org.apache.maven.plugins</groupId>
+										<artifactId>maven-clean-plugin</artifactId>
+										<versionRange>[2.5,)</versionRange>
+										<goals>
+											<goal>clean</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>	
+		
+		<plugins>
+			<plugin> 
+				<groupId>com.google.code.maven-replacer-plugin</groupId> 
+				<artifactId>replacer</artifactId> 
+				<version>1.5.3</version> 
+				<executions> 
+					<execution> 
+						<phase>prepare-package</phase> 
+						<goals> 
+							<goal>replace</goal> 
+						</goals>
+					</execution>
+				 </executions> 
+				 <configuration> 
+					 <file>${project.basedir}/CHESS.product</file> 
+					 <replacements> 
+						 <replacement> 
+							 <token>SOME</token> 
+							 <value>SOMEVALUE</value> 
+						 </replacement>
+					</replacements> 
+				</configuration> 
+			</plugin> 
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-p2-repository-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<configuration>
+					<includeAllDependencies>true</includeAllDependencies>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-p2-director-plugin</artifactId>
+				<version>${tycho.version}</version>
+				<executions>
+					<execution>
+						<id>materialize-products</id>
+						<goals>
+							<goal>materialize-products</goal>
+						</goals>
+					</execution>
+					<execution>
+						<id>archive-products</id>
+						<goals>
+							<goal>archive-products</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<products>
+						<product>
+							<id>org.polarsys.chess.product</id>
+							<archiveFileName>CHESS-${buildNumber}</archiveFileName>
+						</product>
+					</products>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/org.polarsys.chess.parent/releng/org.polarsys.chess.repository/.project b/org.polarsys.chess.parent/releng/org.polarsys.chess.repository/.project
new file mode 100755
index 0000000..f6198cc
--- /dev/null
+++ b/org.polarsys.chess.parent/releng/org.polarsys.chess.repository/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.polarsys.chess.repository</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.polarsys.chess.parent/releng/org.polarsys.chess.repository/category.xml b/org.polarsys.chess.parent/releng/org.polarsys.chess.repository/category.xml
new file mode 100755
index 0000000..5b5ee08
--- /dev/null
+++ b/org.polarsys.chess.parent/releng/org.polarsys.chess.repository/category.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+   <feature url="features/org.polarsys.chess.feature_1.0.0.qualifier.jar" id="org.polarsys.chess.feature" version="1.0.0.qualifier">
+      <category name="org.polarsys.chess"/>
+   </feature>
+   <category-def name="org.polarsys.chess" label="CHESS"/>
+</site>
diff --git a/org.polarsys.chess.parent/releng/org.polarsys.chess.repository/pom.xml b/org.polarsys.chess.parent/releng/org.polarsys.chess.repository/pom.xml
new file mode 100755
index 0000000..0dcd995
--- /dev/null
+++ b/org.polarsys.chess.parent/releng/org.polarsys.chess.repository/pom.xml
@@ -0,0 +1,181 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
+	<parent>
+		<groupId>org.polarsys.chess</groupId>
+		<artifactId>org.polarsys.chess.releng</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.polarsys.chess.repository</artifactId>
+	<packaging>eclipse-repository</packaging>
+	
+	<properties>
+		<updateSite.mount.dir.root>/tmp</updateSite.mount.dir.root>
+		<updateSite.mount.dir>www_ci</updateSite.mount.dir>
+		<updateSite.root>${updateSite.mount.dir.root}/${updateSite.mount.dir}/html/tools</updateSite.root>
+		<updateSite.url.root>es@es-static.fbk.eu:/</updateSite.url.root>
+		<updateSite.skip>true</updateSite.skip>
+	</properties>
+
+	<profiles>
+		<profile>
+			<id>DevelopmentUpdateSite</id>
+			<properties>
+				<updateSite.dir>${updateSite.root}/eclipse_chess_devel</updateSite.dir>
+				<updateSite.skip>false</updateSite.skip>								
+			</properties>
+		</profile>
+		<profile>
+			<id>ProductionUpdateSite</id>
+			<properties>
+				<updateSite.dir>${updateSite.root}/eclipse_chess</updateSite.dir>
+				<updateSite.skip>false</updateSite.skip>								
+			</properties>
+		</profile>
+	</profiles>
+
+	<build>
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>org.apache.maven.plugins</groupId>
+										<artifactId>maven-clean-plugin</artifactId>
+										<versionRange>[2.5,)</versionRange>
+										<goals>
+											<goal>clean</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+
+		<plugins>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>exec-maven-plugin</artifactId>
+				<version>1.6.0</version>
+				<executions>
+					<execution>
+						<id>create_mount_dir</id>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<phase>install</phase>								
+						<configuration>
+							<skip>${updateSite.skip}</skip>
+							<executable>mkdir</executable>
+							<workingDirectory>${updateSite.mount.dir.root}</workingDirectory>
+							<longModulepath>false</longModulepath>
+							<arguments>
+								<argument>-p</argument>
+								<argument>${updateSite.mount.dir}</argument>
+							</arguments>
+						</configuration>
+					</execution>
+					<execution>
+						<id>change_dir_permissions</id>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<phase>install</phase>
+						<configuration>
+							<skip>${updateSite.skip}</skip>
+							<executable>chmod</executable>
+							<workingDirectory>${updateSite.mount.dir.root}</workingDirectory>
+							<arguments>
+								<argument>0777</argument>
+								<argument>${updateSite.mount.dir}</argument>
+							</arguments>
+						</configuration>
+					</execution>
+					<execution>
+						<id>mount_sshfs</id>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<phase>install</phase>
+						<configuration>
+							<skip>${updateSite.skip}</skip>
+							<executable>sshfs</executable>
+							<workingDirectory>${updateSite.mount.dir.root}</workingDirectory>
+							<arguments>
+								<argument>-o</argument>
+								<argument>nonempty</argument>
+								<argument>-o</argument>
+								<argument>umask=0777</argument>
+								<argument>${updateSite.url.root}</argument>
+								<argument>${updateSite.mount.dir}</argument>
+							</arguments>
+						</configuration>
+					</execution>
+					<execution>
+						<id>update_development_site</id>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<phase>install</phase>
+						<configuration>
+							<skip>${updateSite.skip}</skip>
+							<executable>cp</executable>
+							<workingDirectory>${basedir}/target/repository</workingDirectory>
+							<arguments>
+								<argument>-r</argument>
+								<argument>.</argument>
+								<argument>${updateSite.dir}</argument>
+							</arguments>
+						</configuration>
+					</execution>
+					<execution>
+						<id>change_site_permissions</id>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<phase>install</phase>
+						<configuration>
+							<executable>chmod</executable>
+							<workingDirectory>${updateSite.dir}</workingDirectory>
+							<arguments>
+								<argument>-R</argument>
+								<argument>0777</argument>
+								<argument>.</argument>
+							</arguments>
+						</configuration>
+					</execution>
+					<execution>
+						<id>umount_sshfs</id>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<phase>install</phase>
+						<configuration>
+							<skip>${updateSite.skip}</skip>
+							<executable>fusermount</executable>
+							<workingDirectory>${updateSite.mount.dir.root}</workingDirectory>
+							<arguments>
+								<argument>-u</argument>
+								<argument>${updateSite.mount.dir}</argument>
+							</arguments>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/org.polarsys.chess.parent/releng/org.polarsys.chess.target.neon/org.polarsys.chess.target.neon.target b/org.polarsys.chess.parent/releng/org.polarsys.chess.target.neon/org.polarsys.chess.target.neon.target
index 0d734b2..f12063a 100644
--- a/org.polarsys.chess.parent/releng/org.polarsys.chess.target.neon/org.polarsys.chess.target.neon.target
+++ b/org.polarsys.chess.parent/releng/org.polarsys.chess.target.neon/org.polarsys.chess.target.neon.target
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="org.polarsys.chess.target.neon.target" sequenceNumber="59">
+<?pde version="3.8"?><target name="org.polarsys.chess.target.neon.target" sequenceNumber="69">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.nebula.widgets.grid.feature.feature.group" version="0.0.0"/>
@@ -26,20 +26,25 @@
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.papyrus.sysml.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.sysml.modelexplorer.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.sysml.nattable.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.sysml.properties.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.sysml.diagram.feature.feature.group" version="2.0.0.201703081153"/>
 <unit id="org.eclipse.papyrus.sdk.feature.feature.group" version="2.0.3.201703080851"/>
 <unit id="org.eclipse.papyrus.extra.cdo.feature.feature.group" version="1.2.0.201703081153"/>
-<unit id="org.eclipse.papyrus.sysml.diagram.feature.feature.group" version="2.0.0.201703081153"/>
 <unit id="org.eclipse.papyrus.extra.marte.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.extra.marte.properties.feature.feature.group" version="1.2.0.201703081153"/>
+<unit id="org.eclipse.papyrus.extra.marte.textedit.feature.feature.group" version="1.2.0.201703081153"/>
 <repository location="https://download.eclipse.org/modeling/mdt/papyrus/updates/releases/neon/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.epsilon.emf.feature.feature.group" version="1.5.1.201809302027"/>
-<unit id="org.eclipse.epsilon.core.feature.feature.group" version="1.5.1.201809302027"/>
-<repository location="http://download.eclipse.org/epsilon/updates/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.uml2.sdk.feature.group" version="5.2.3.v20170227-0935"/>
 <unit id="org.eclipse.ocl.all.sdk.feature.group" version="5.2.0.v20160523-1914"/>
+<unit id="org.eclipse.equinox.sdk.feature.group" version="3.12.0.v20170209-1843"/>
+<unit id="org.eclipse.platform.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gef.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gmf.sdk.feature.group" version="0.0.0"/>
 <repository location="http://download.eclipse.org/releases/neon/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
@@ -93,5 +98,10 @@
 <unit id="org.eclipse.viatra.addon.viewers.runtime.feature.source.feature.group" version="0.17.2.201803211255"/>
 <repository location="https://download.eclipse.org/viatra/updates/release/1.7.2"/>
 </location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.epsilon.core.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.epsilon.emf.feature.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/epsilon/updates/1.4"/>
+</location>
 </locations>
 </target>
diff --git a/org.polarsys.chess.parent/releng/pom.xml b/org.polarsys.chess.parent/releng/pom.xml
index dccc0e5..0d97847 100644
--- a/org.polarsys.chess.parent/releng/pom.xml
+++ b/org.polarsys.chess.parent/releng/pom.xml
@@ -9,10 +9,22 @@
         <artifactId>org.polarsys.chess.parent</artifactId>
         <version>1.0.0-SNAPSHOT</version>
     </parent>
-
-    <modules>
+    
+	 <profiles>
+		<profile>
+			<id>bundle</id>
+		    <modules>
+		    	<module>org.polarsys.chess.product</module>
+	    	</modules>
+		</profile>
+	</profiles>
+    
+	
+	<modules>
     	<module>org.polarsys.chess.configuration</module>
-    	<module>org.polarsys.chess.target.neon</module>
+    	<module>eu.fbk.tools.aida.chess.target.neon</module>
+    	<module>org.polarsys.chess.target.neon</module>    	    	
     	<module>eu.fbk.tools.aida.chess.repository</module>
-    </modules>
+		<module>org.polarsys.chess.repository</module>		
+	</modules>
 </project>
diff --git a/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generate.emtl b/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generate.emtl
new file mode 100644
index 0000000..581d566
--- /dev/null
+++ b/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generate.emtl
@@ -0,0 +1,10948 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:mtl="http://www.eclipse.org/acceleo/mtl/3.0" xmlns:ocl.ecore="http://www.eclipse.org/ocl/1.1.0/Ecore">

+  <mtl:Module name="generate" nsURI="org::polarsys::chess::contracts::transformations::main::generate" startHeaderPosition="754" endHeaderPosition="901">

+    <input>

+      <takesTypesFrom href="http://www.eclipse.org/uml2/5.0.0/UML#/"/>

+    </input>

+    <imports href="generateImplementation.emtl#/0"/>

+    <ownedModuleElement xsi:type="mtl:Template" name="mainTemplate" visibility="Public" main="true">

+      <init>

+        <variable name="SystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::System">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="SubSystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::SubSystem">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="SystemViewQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Core::CHESSViews::SystemView">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="CompViewQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Core::CHESSViews::ComponentView">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="DeplViewQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Core::CHESSViews::DeploymentView">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="CompImplQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::ComponentModel::ComponentImplementation">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="PlatformQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::Platform">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="BlockQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="SysML::Blocks::Block">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="SRACompQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::SRAComponent">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+      </init>

+      <body xsi:type="mtl:FileBlock" openMode="OverWrite">

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:LetBlock">

+            <body xsi:type="mtl:LetBlock">

+              <body xsi:type="mtl:LetBlock">

+                <body xsi:type="mtl:LetBlock">

+                  <body xsi:type="mtl:LetBlock">

+                    <body xsi:type="mtl:LetBlock">

+                      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateComponent">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="system" referredVariable="/0/mainTemplate/%/%/%/%/%/%/%/%/system">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                        <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        </argument>

+                        <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="allBlocks" eType="/3/Set(Class)" referredVariable="/0/mainTemplate/%/%/%/%/%/allBlocks"/>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="allComps" eType="/3/Set(Component)" referredVariable="/0/mainTemplate/%/%/%/%/%/%/allComps"/>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/union.1"/>

+                        </argument>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/mainTemplate/%/%/%/%/%/%/%/generated"/>

+                        <argument xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/equalsIgnoreCase">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="checkWeakContracts" referredVariable="/0/mainTemplate/checkWeakContracts">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="true">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                        </argument>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+                      <letVariable name="system">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        <initExpression xsi:type="mtl:QueryInvocation" definition="/0/getSystem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="allBlocks" eType="/3/Set(Class)" referredVariable="/0/mainTemplate/%/%/%/%/%/allBlocks"/>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="sysQN" referredVariable="/0/mainTemplate/sysQN">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                        </initExpression>

+                      </letVariable>

+                    </body>

+                    <letVariable name="generated" eType="/3/Set(String)">

+                      <initExpression xsi:type="mtl:QueryInvocation" eType="/3/Set(String)" definition="/0/getEmptyStringSet">

+                        <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/24">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                        </argument>

+                      </initExpression>

+                    </letVariable>

+                  </body>

+                  <letVariable name="allComps" eType="/3/Set(Component)">

+                    <initExpression xsi:type="mtl:QueryInvocation" eType="/3/Set(Component)" definition="/0/getAllComponents">

+                      <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Component)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Element)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="deploymentView" referredVariable="/0/mainTemplate/%/%/%/%/deploymentView">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Component">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+                        </argument>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Component)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Element)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="componentView" referredVariable="/0/mainTemplate/%/%/componentView">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Component">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+                        </argument>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="CompImplQN" referredVariable="/0/mainTemplate/@init/@variable.5">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="SRACompQN" referredVariable="/0/mainTemplate/@init/@variable.8">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                    </initExpression>

+                  </letVariable>

+                </body>

+                <letVariable name="allBlocks" eType="/3/Set(Class)">

+                  <initExpression xsi:type="mtl:QueryInvocation" eType="/3/Set(Class)" definition="/0/getAllBlocks">

+                    <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)">

+                      <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Element)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="componentView" referredVariable="/0/mainTemplate/%/%/componentView">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                      </source>

+                      <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Element)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="systemView" referredVariable="/0/mainTemplate/%/%/%/systemView">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/union.1"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="BlockQN" referredVariable="/0/mainTemplate/@init/@variable.7">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="SubSystemQN" referredVariable="/0/mainTemplate/@init/@variable.1">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="SystemQN" referredVariable="/0/mainTemplate/@init/@variable.0">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                  </initExpression>

+                </letVariable>

+              </body>

+              <letVariable name="deploymentView">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Package)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/mainTemplate/model">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestedPackage"/>

+                  </source>

+                  <body xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/mainTemplate/%/%/%/%/deploymentView/any/p">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="DeplViewQN" referredVariable="/0/mainTemplate/@init/@variable.4">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                  </body>

+                  <iterator xsi:type="ocl.ecore:Variable" name="p">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                  </iterator>

+                </initExpression>

+              </letVariable>

+            </body>

+            <letVariable name="systemView">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+              <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Package)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/mainTemplate/model">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestedPackage"/>

+                </source>

+                <body xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/mainTemplate/%/%/%/systemView/any/p">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="SystemViewQN" referredVariable="/0/mainTemplate/@init/@variable.2">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                </body>

+                <iterator xsi:type="ocl.ecore:Variable" name="p">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                </iterator>

+              </initExpression>

+            </letVariable>

+          </body>

+          <letVariable name="componentView">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+            <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Package)">

+                <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/mainTemplate/model">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestedPackage"/>

+              </source>

+              <body xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                  <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                    <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                  </eAnnotations>

+                  <part xsi:type="ocl.ecore:CollectionItem">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <item xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/mainTemplate/%/%/componentView/any/p">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="CompViewQN" referredVariable="/0/mainTemplate/@init/@variable.3">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                    </item>

+                  </part>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+              </body>

+              <iterator xsi:type="ocl.ecore:Variable" name="p">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+              </iterator>

+            </initExpression>

+          </letVariable>

+        </body>

+        <fileUrl xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <source xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <source xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <source xsi:type="ocl.ecore:VariableExp" name="filename" referredVariable="/0/mainTemplate/filename">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              </source>

+              <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+            </source>

+            <argument xsi:type="ocl.ecore:VariableExp" name="sysName" referredVariable="/0/mainTemplate/sysName">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </argument>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+          </source>

+          <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".oss">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </argument>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+        </fileUrl>

+        <charset xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="UTF-8">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </charset>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+      <body xsi:type="mtl:ForBlock">

+        <body xsi:type="mtl:IfBlock">

+          <body xsi:type="mtl:IfBlock">

+            <body xsi:type="mtl:TemplateInvocation">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <definition href="generateImplementation.emtl#/0/generateImplementation"/>

+              <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/31">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+              </argument>

+              <argument xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/mainTemplate/%.2/sm">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>

+                </source>

+                <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                  <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+              </argument>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+            <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/mainTemplate/%.2/sm">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>

+                </source>

+                <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                  <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+              </source>

+              <argument xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/mainTemplate/%.2/sm">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>

+                </source>

+                <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Component">

+                  <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+            </ifExpr>

+          </body>

+          <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            <source xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                </eAnnotations>

+                <part xsi:type="ocl.ecore:CollectionItem">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <item xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/mainTemplate/%.2/sm">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="BlockQN" referredVariable="/0/mainTemplate/@init/@variable.7">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                  </item>

+                </part>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+            </source>

+            <argument xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                </eAnnotations>

+                <part xsi:type="ocl.ecore:CollectionItem">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <item xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/mainTemplate/%.2/sm">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="CompImplQN" referredVariable="/0/mainTemplate/@init/@variable.5">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                  </item>

+                </part>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+            </argument>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+          </ifExpr>

+        </body>

+        <loopVariable name="sm">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+        </loopVariable>

+        <iterSet xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(StateMachine)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+          <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Element)">

+            <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/mainTemplate/model">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+            </source>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+          </source>

+          <argument xsi:type="ocl.ecore:TypeExp" eType="/21/StateMachine">

+            <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+          </argument>

+        </iterSet>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+      <parameter name="model">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+      </parameter>

+      <parameter name="sysQN">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="sysName">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="filename">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="checkWeakContracts">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Template" name="generateComponent" visibility="Public">

+      <init>

+        <variable name="SystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::System">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="FlowPortQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="SysML::PortAndFlows::FlowPort">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="FlowPortMarteQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="MARTE::MARTE_DesignModel::GCM::FlowPort">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="ContractPropQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::ContractProperty">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="DelegConstrQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::DelegationConstraint">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="CSPortQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="MARTE::MARTE_DesignModel::GCM::ClientServerPort">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+      </init>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>

+      <body xsi:type="mtl:QueryInvocation" definition="/0/addToGenerated">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <argument xsi:type="ocl.ecore:PropertyCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+          </source>

+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/generateComponent/generated"/>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+      <body xsi:type="mtl:IfBlock">

+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;COMPONENT system&#xD;&#xA;"/>

+        <ifExpr xsi:type="ocl.ecore:VariableExp" name="isSystem" referredVariable="/0/generateComponent/isSystem">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </ifExpr>

+        <else>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;COMPONENT "/>

+          <body xsi:type="ocl.ecore:PropertyCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            </source>

+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+        </else>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;&#x9;INTERFACE&#xD;&#xA;&#xD;&#xA;"/>

+      <body xsi:type="mtl:LetBlock">

+        <body xsi:type="mtl:ForBlock">

+          <body xsi:type="mtl:IfBlock">

+            <body xsi:type="mtl:LetBlock">

+              <body xsi:type="mtl:IfBlock">

+                <body xsi:type="mtl:LetBlock">

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>

+                  <body xsi:type="mtl:QueryInvocation" definition="/0/getDirection">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/toString">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="direction" referredVariable="/0/generateComponent/%.5/%/%/%/%/%/direction">

+                        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                      </source>

+                    </argument>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="PORT "/>

+                  <body xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : "/>

+                  <body xsi:type="mtl:IfBlock">

+                    <body xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <argument xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </argument>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";"/>

+                    <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </ifExpr>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+                  <letVariable name="direction">

+                    <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                    <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="FlowPortQN" referredVariable="/0/generateComponent/@init/@variable.1">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="direction">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                    </initExpression>

+                  </letVariable>

+                </body>

+                <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="FlowPortQN" referredVariable="/0/generateComponent/@init/@variable.1">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                </ifExpr>

+                <elseIf>

+                  <body xsi:type="mtl:LetBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>

+                    <body xsi:type="mtl:QueryInvocation" definition="/0/getDirection">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <argument xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/toString">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="direction" referredVariable="/0/generateComponent/%.5/%/%/%/%/%.2/%/direction">

+                          <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                        </source>

+                      </argument>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="PORT "/>

+                    <body xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : "/>

+                    <body xsi:type="mtl:IfBlock">

+                      <body xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <argument xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                        </argument>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";"/>

+                      <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                      </ifExpr>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+                    <letVariable name="direction">

+                      <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                      <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="FlowPortMarteQN" referredVariable="/0/generateComponent/@init/@variable.2">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </argument>

+                        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="direction">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                      </initExpression>

+                    </letVariable>

+                  </body>

+                  <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="FlowPortMarteQN" referredVariable="/0/generateComponent/@init/@variable.2">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                  </ifExpr>

+                </elseIf>

+              </body>

+              <body xsi:type="mtl:IfBlock">

+                <body xsi:type="mtl:LetBlock">

+                  <body xsi:type="mtl:LetBlock">

+                    <body xsi:type="mtl:IfBlock">

+                      <body xsi:type="mtl:ForBlock">

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>

+                        <body xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/toString">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="proreq" referredVariable="/0/generateComponent/%.5/%/%/%/%.1/%/proreq">

+                              <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                            </source>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/toUpper"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" OPERATION PORT "/>

+                        <body xsi:type="mtl:QueryInvocation" definition="/0/getOperationName">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/op">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+                          </argument>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                          </argument>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" ("/>

+                        <body xsi:type="mtl:QueryInvocation" definition="/0/getParamList">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/op">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+                          </argument>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=") : "/>

+                        <body xsi:type="mtl:QueryInvocation" definition="/0/getReturn">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/op">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+                          </argument>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+                        <loopVariable name="op">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+                        </loopVariable>

+                        <iterSet xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Operation)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="interface" referredVariable="/0/generateComponent/%.5/%/%/%/%.1/%/%/interface">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier/getOperations"/>

+                        </iterSet>

+                      </body>

+                      <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="interface" referredVariable="/0/generateComponent/%.5/%/%/%/%.1/%/%/interface">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/67">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/%3C%3E"/>

+                      </ifExpr>

+                    </body>

+                    <letVariable name="interface">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>

+                      <initExpression xsi:type="mtl:QueryInvocation" definition="/0/getInterface">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                        </argument>

+                      </initExpression>

+                    </letVariable>

+                  </body>

+                  <letVariable name="proreq">

+                    <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                    <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="CSPortQN" referredVariable="/0/generateComponent/@init/@variable.5">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="kind">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                    </initExpression>

+                  </letVariable>

+                </body>

+                <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/generateComponent/%.5/%/%/%/port">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="CSPortQN" referredVariable="/0/generateComponent/@init/@variable.5">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                </ifExpr>

+              </body>

+              <letVariable name="port">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateComponent/%.5/%/prop">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Port">

+                    <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                </initExpression>

+              </letVariable>

+            </body>

+            <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateComponent/%.5/%/prop">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </source>

+              <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Port">

+                <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+            </ifExpr>

+            <elseIf>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;PARAMETER "/>

+              <body xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateComponent/%.5/%/prop">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </source>

+                <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : "/>

+              <body xsi:type="mtl:IfBlock">

+                <body xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  <argument xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateComponent/%.5/%/prop">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                  </argument>

+                </body>

+                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";"/>

+                <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateComponent/%.5/%/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                </ifExpr>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateComponent/%.5/%/prop">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateComponent/%.5/%/prop">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                        <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateComponent/%.5/%/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Component">

+                      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+              </ifExpr>

+            </elseIf>

+          </body>

+          <loopVariable name="prop">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+          </loopVariable>

+          <iterSet xsi:type="ocl.ecore:VariableExp" name="props" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/props"/>

+        </body>

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="mtl:LetBlock">

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#xD;&#xA;&#x9;CONTRACT "/>

+              <body xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.1/%/contrProp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </source>

+                <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;&#x9;assume:&#xD;&#xA;&#x9;&#x9;"/>

+              <body xsi:type="mtl:QueryInvocation" definition="/0/getAssume">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <argument xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/generateComponent/%.5/%.1/%/%/contract">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </argument>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;&#x9;guarantee:&#xD;&#xA;&#x9;&#x9;"/>

+              <body xsi:type="mtl:QueryInvocation" definition="/0/getGuarantee">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <argument xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/generateComponent/%.5/%.1/%/%/contract">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </argument>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+              <letVariable name="contract">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.1/%/contrProp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                    <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                </initExpression>

+              </letVariable>

+            </body>

+            <loopVariable name="contrProp">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="contrProps" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.1/contrProps"/>

+          </body>

+          <letVariable name="contrProps" eType="/3/OrderedSet(Property)">

+            <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+              </source>

+              <body xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                  <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                    <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                  </eAnnotations>

+                  <part xsi:type="ocl.ecore:CollectionItem">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <item xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateComponent/%.5/%.1/contrProps/select/p">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateComponent/@init/@variable.3">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                    </item>

+                  </part>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+              </body>

+              <iterator xsi:type="ocl.ecore:Variable" name="p">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </iterator>

+            </initExpression>

+          </letVariable>

+        </body>

+        <body xsi:type="mtl:IfBlock">

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+          <body xsi:type="mtl:LetBlock">

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONTRACT "/>

+              <body xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </source>

+                <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_allWeak&#xD;&#xA;&#x9;assume:&#xD;&#xA;&#x9;&#x9;TRUE;&#xD;&#xA;&#x9;guarantee:&#xD;&#xA;&#x9;"/>

+              <body xsi:type="mtl:ForBlock">

+                <body xsi:type="mtl:LetBlock">

+                  <body xsi:type="mtl:IfBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="(("/>

+                    <body xsi:type="mtl:QueryInvocation" definition="/0/getAssume">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/contract">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      </argument>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=") implies "/>

+                    <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="mtl:QueryInvocation" definition="/0/isAssumptionTrue">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/contract">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </ifExpr>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="("/>

+                  <body xsi:type="mtl:QueryInvocation" definition="/0/getGuarantee">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/contract">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </argument>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=")"/>

+                  <body xsi:type="mtl:IfBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=")"/>

+                    <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="mtl:QueryInvocation" definition="/0/isAssumptionTrue">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/contract">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </ifExpr>

+                  </body>

+                  <letVariable name="contract">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.2/%.1/%/%.3/contrProp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                        <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                    </initExpression>

+                  </letVariable>

+                </body>

+                <loopVariable name="contrProp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </loopVariable>

+                <iterSet xsi:type="ocl.ecore:VariableExp" name="contrProps" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.2/%.1/contrProps"/>

+                <each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" and ">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                </each>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="contrProps" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.2/%.1/contrProps"/>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/size"/>

+                </source>

+                <argument xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="0">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/%3E"/>

+              </ifExpr>

+            </body>

+            <letVariable name="contrProps" eType="/3/OrderedSet(Property)">

+              <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+                <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+                </source>

+                <body xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateComponent/%.5/%.2/%.1/contrProps/select/p">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateComponent/@init/@variable.3">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                  </source>

+                  <argument xsi:type="mtl:QueryInvocation" definition="/0/isWeakContract">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateComponent/%.5/%.2/%.1/contrProps/select/p">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </argument>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                </body>

+                <iterator xsi:type="ocl.ecore:Variable" name="p">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </iterator>

+              </initExpression>

+            </letVariable>

+          </body>

+          <ifExpr xsi:type="ocl.ecore:VariableExp" name="checkWeak" referredVariable="/0/generateComponent/checkWeak">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+          </ifExpr>

+        </body>

+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;&#x9;REFINEMENT&#xD;&#xA;&#xD;&#xA;"/>

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;SUB&#x9;"/>

+              <body xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateComponent/%.5/%.4/%/part">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </source>

+                <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : "/>

+              <body xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateComponent/%.5/%.4/%/part">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                </source>

+                <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+              <ifExpr xsi:type="mtl:QueryInvocation" definition="/0/isPart">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <argument xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateComponent/%.5/%.4/%/part">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </argument>

+              </ifExpr>

+            </body>

+            <loopVariable name="part">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/parts"/>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+          <body xsi:type="mtl:LetBlock">

+            <body xsi:type="mtl:ForBlock">

+              <body xsi:type="mtl:IfBlock">

+                <body xsi:type="mtl:IfBlock">

+                  <body xsi:type="mtl:IfBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONNECTION "/>

+                    <body xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                        <source xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                            <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" := "/>

+                    <body xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        <source xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                            <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>

+                    <body xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                        <source xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                            <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+                    <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        <source xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                            <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                    </ifExpr>

+                    <else>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONNECTION "/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" := "/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+                    </else>

+                    <elseIf>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONNECTION "/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" := "/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+                      <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                      </ifExpr>

+                    </elseIf>

+                  </body>

+                  <ifExpr xsi:type="mtl:QueryInvocation" definition="/0/checkRules">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                    </argument>

+                  </ifExpr>

+                  <else>

+                    <body xsi:type="mtl:IfBlock">

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONNECTION "/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" := "/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+                      <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                      </ifExpr>

+                      <else>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONNECTION "/>

+                        <body xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            <source xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                                <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>

+                        <body xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                            <source xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                                <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" := "/>

+                        <body xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            <source xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                                <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>

+                        <body xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                            <source xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                                <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+                      </else>

+                      <elseIf>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONNECTION "/>

+                        <body xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            <source xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                                <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>

+                        <body xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                            <source xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                                <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" := "/>

+                        <body xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectableElement"/>

+                            <source xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                                <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/role"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xD;&#xA;"/>

+                        <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            <source xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                                <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                        </ifExpr>

+                      </elseIf>

+                    </body>

+                  </else>

+                </body>

+                <ifExpr xsi:type="mtl:QueryInvocation" definition="/0/checkConnectedPorts">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                  </argument>

+                </ifExpr>

+                <else>

+                  <body xsi:type="mtl:IfBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>

+                    <body xsi:type="mtl:QueryInvocation" definition="/0/getOperationConnections">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                      </argument>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+                    <ifExpr xsi:type="mtl:QueryInvocation" definition="/0/checkOperationPorts">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/generateComponent/%.5/%.4/%.2/%/conn">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                      </argument>

+                    </ifExpr>

+                  </body>

+                </else>

+              </body>

+              <loopVariable name="conn">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+              </loopVariable>

+              <iterSet xsi:type="ocl.ecore:VariableExp" name="connections" eType="/3/Set(Connector)" referredVariable="/0/generateComponent/%.5/%.4/%.2/connections"/>

+            </body>

+            <letVariable name="connections" eType="/3/Set(Connector)">

+              <initExpression xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Connector)">

+                <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedConnector"/>

+              </initExpression>

+            </letVariable>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+          <body xsi:type="mtl:LetBlock">

+            <body xsi:type="mtl:ForBlock">

+              <body xsi:type="mtl:IfBlock">

+                <body xsi:type="mtl:LetBlock">

+                  <body xsi:type="mtl:LetBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="  &#x9;CONNECTION "/>

+                    <body xsi:type="ocl.ecore:VariableExp" name="spec" referredVariable="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </body>

+                    <body xsi:type="mtl:IfBlock">

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";"/>

+                      <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/endsWith">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="spec" referredVariable="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                      </ifExpr>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" &#xD;&#xA;"/>

+                    <letVariable name="spec">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Sequence(String)">

+                          <source xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                              <source xsi:type="ocl.ecore:VariableExp" name="rule" referredVariable="/0/generateComponent/%.5/%.4/%.4/%/rule">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint/specification"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:TypeExp" eType="/21/OpaqueExpression">

+                              <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression/body"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="index" referredVariable="/0/generateComponent/%.5/%.4/%.4/%/%/%/index">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/at"/>

+                      </initExpression>

+                    </letVariable>

+                  </body>

+                  <letVariable name="index">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                    <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(String)">

+                        <source xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="rule" referredVariable="/0/generateComponent/%.5/%.4/%.4/%/rule">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint/specification"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:TypeExp" eType="/21/OpaqueExpression">

+                            <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression/language"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="OCRA">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/indexOf"/>

+                    </initExpression>

+                  </letVariable>

+                </body>

+                <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="rule" referredVariable="/0/generateComponent/%.5/%.4/%.4/%/rule">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint/specification"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:TypeExp" eType="/21/OpaqueExpression">

+                      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/3/Sequence(Boolean)">

+                      <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(String)">

+                        <source xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="rule" referredVariable="/0/generateComponent/%.5/%.4/%.4/%/rule">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint/specification"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:TypeExp" eType="/21/OpaqueExpression">

+                            <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression/language"/>

+                      </source>

+                      <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/contains">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/temp1">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="OCRA">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                      </body>

+                      <iterator xsi:type="ocl.ecore:Variable" name="temp1">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </iterator>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/notEmpty"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                </ifExpr>

+              </body>

+              <loopVariable name="rule">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+              </loopVariable>

+              <iterSet xsi:type="ocl.ecore:VariableExp" name="rules" eType="/3/Set(Constraint)" referredVariable="/0/generateComponent/%.5/%.4/%.4/rules"/>

+            </body>

+            <letVariable name="rules" eType="/3/Set(Constraint)">

+              <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/Set(Constraint)">

+                <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Constraint)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedRule"/>

+                </source>

+                <body xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="/0/generateComponent/%.5/%.4/%.4/rules/select/c">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="DelegConstrQN" referredVariable="/0/generateComponent/@init/@variable.4">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                </body>

+                <iterator xsi:type="ocl.ecore:Variable" name="c">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                </iterator>

+              </initExpression>

+            </letVariable>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+          <body xsi:type="mtl:IfBlock">

+            <body xsi:type="mtl:LetBlock">

+              <body xsi:type="mtl:ForBlock">

+                <body xsi:type="mtl:IfBlock">

+                  <body xsi:type="mtl:LetBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONTRACT "/>

+                    <body xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.6/%/%/contrProp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" REFINEDBY "/>

+                    <body xsi:type="mtl:QueryInvocation" definition="/0/getRefinedByStrongWeak">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.6/%/%/contrProp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/parts"/>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+                    <letVariable name="contract">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.6/%/%/contrProp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                      </initExpression>

+                    </letVariable>

+                  </body>

+                  <ifExpr xsi:type="mtl:QueryInvocation" definition="/0/isRefined">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.6/%/%/contrProp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </argument>

+                  </ifExpr>

+                </body>

+                <loopVariable name="contrProp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </loopVariable>

+                <iterSet xsi:type="ocl.ecore:VariableExp" name="contrProps" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/%.6/%/contrProps"/>

+              </body>

+              <letVariable name="contrProps" eType="/3/OrderedSet(Property)">

+                <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+                  <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+                  </source>

+                  <body xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                          <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                        </eAnnotations>

+                        <part xsi:type="ocl.ecore:CollectionItem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <item xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/p">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateComponent/@init/@variable.3">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                          </item>

+                        </part>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="mtl:QueryInvocation" definition="/0/isWeakContract">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/p">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </argument>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                  </body>

+                  <iterator xsi:type="ocl.ecore:Variable" name="p">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </iterator>

+                </initExpression>

+              </letVariable>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+            <body xsi:type="mtl:LetBlock">

+              <body xsi:type="mtl:LetBlock">

+                <body xsi:type="mtl:IfBlock">

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONTRACT "/>

+                  <body xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_allWeak REFINEDBY "/>

+                  <body xsi:type="ocl.ecore:VariableExp" name="refinedByAllWeak" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.2/%/refinedByAllWeak">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;&#xD;&#xA;"/>

+                  <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="contrProps" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps"/>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/size"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="0">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/%3E"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/startsWith">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="refinedByAllWeak" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.2/%/refinedByAllWeak">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                  </ifExpr>

+                </body>

+                <letVariable name="refinedByAllWeak">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  <initExpression xsi:type="mtl:QueryInvocation" definition="/0/getRefinedByAllWeak">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="contrProps" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps"/>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/parts"/>

+                  </initExpression>

+                </letVariable>

+              </body>

+              <letVariable name="contrProps" eType="/3/OrderedSet(Property)">

+                <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+                  <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+                  </source>

+                  <body xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                          <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                        </eAnnotations>

+                        <part xsi:type="ocl.ecore:CollectionItem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <item xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/p">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateComponent/@init/@variable.3">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                          </item>

+                        </part>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                    </source>

+                    <argument xsi:type="mtl:QueryInvocation" definition="/0/isWeakContract">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/p">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </argument>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                  </body>

+                  <iterator xsi:type="ocl.ecore:Variable" name="p">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </iterator>

+                </initExpression>

+              </letVariable>

+            </body>

+            <ifExpr xsi:type="ocl.ecore:VariableExp" name="checkWeak" referredVariable="/0/generateComponent/checkWeak">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            </ifExpr>

+            <else>

+              <body xsi:type="mtl:LetBlock">

+                <body xsi:type="mtl:ForBlock">

+                  <body xsi:type="mtl:IfBlock">

+                    <body xsi:type="mtl:LetBlock">

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONTRACT "/>

+                      <body xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/contrProp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" REFINEDBY "/>

+                      <body xsi:type="mtl:QueryInvocation" definition="/0/getRefinedBy">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/contrProp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </argument>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+                      <letVariable name="contract">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/contrProp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                            <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                        </initExpression>

+                      </letVariable>

+                    </body>

+                    <ifExpr xsi:type="mtl:QueryInvocation" definition="/0/isRefined">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/contrProp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </argument>

+                    </ifExpr>

+                  </body>

+                  <loopVariable name="contrProp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </loopVariable>

+                  <iterSet xsi:type="ocl.ecore:VariableExp" name="contrProps" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps"/>

+                </body>

+                <letVariable name="contrProps" eType="/3/OrderedSet(Property)">

+                  <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+                    <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                      <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+                    </source>

+                    <body xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                          <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                        </eAnnotations>

+                        <part xsi:type="ocl.ecore:CollectionItem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <item xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select/p">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateComponent/@init/@variable.3">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                          </item>

+                        </part>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                    </body>

+                    <iterator xsi:type="ocl.ecore:Variable" name="p">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </iterator>

+                  </initExpression>

+                </letVariable>

+              </body>

+            </else>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+          <body xsi:type="mtl:IfBlock">

+            <body xsi:type="mtl:ForBlock">

+              <body xsi:type="mtl:IfBlock">

+                <body xsi:type="mtl:LetBlock">

+                  <body xsi:type="mtl:LetBlock">

+                    <body xsi:type="mtl:ForBlock">

+                      <body xsi:type="mtl:LetBlock">

+                        <body xsi:type="mtl:IfBlock">

+                          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONSISTENCY NAME "/>

+                          <body xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="nextblock" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                          </body>

+                          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_"/>

+                          <body xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/contrProp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                          </body>

+                          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_consistency := "/>

+                          <body xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/part">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                          </body>

+                          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>

+                          <body xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/contrProp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                          </body>

+                          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".ASSUMPTION;&#xD;&#xA;"/>

+                          <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                            <source xsi:type="mtl:QueryInvocation" definition="/0/isWeakContract">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                              <argument xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/contrProp">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                              </argument>

+                            </source>

+                            <argument xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                              <source xsi:type="mtl:QueryInvocation" definition="/0/isAssumptionTrue">

+                                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                                <argument xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/contract">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                                </argument>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                          </ifExpr>

+                        </body>

+                        <letVariable name="contract">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                          <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                            <source xsi:type="ocl.ecore:PropertyCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                              <source xsi:type="ocl.ecore:VariableExp" name="contrProp" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/contrProp">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Class">

+                              <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                          </initExpression>

+                        </letVariable>

+                      </body>

+                      <loopVariable name="contrProp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </loopVariable>

+                      <iterSet xsi:type="ocl.ecore:VariableExp" name="contrProps" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps"/>

+                    </body>

+                    <letVariable name="contrProps" eType="/3/OrderedSet(Property)">

+                      <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+                        <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="nextblock" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+                        </source>

+                        <body xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                          <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                            <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                              <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                            </eAnnotations>

+                            <part xsi:type="ocl.ecore:CollectionItem">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                              <item xsi:type="ocl.ecore:OperationCallExp">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select/p">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                </source>

+                                <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateComponent/@init/@variable.3">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                </argument>

+                                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                              </item>

+                            </part>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                        </body>

+                        <iterator xsi:type="ocl.ecore:Variable" name="p">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </iterator>

+                      </initExpression>

+                    </letVariable>

+                  </body>

+                  <letVariable name="nextblock">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="allBlocks" eType="/3/Set(Class)" referredVariable="/0/generateComponent/allBlocks"/>

+                      <body xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/part">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock/any/c">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>

+                      </body>

+                      <iterator xsi:type="ocl.ecore:Variable" name="c">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      </iterator>

+                    </initExpression>

+                  </letVariable>

+                </body>

+                <ifExpr xsi:type="mtl:QueryInvocation" definition="/0/isPart">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateComponent/%.5/%.4/%.8/%/part">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </argument>

+                </ifExpr>

+              </body>

+              <loopVariable name="part">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </loopVariable>

+              <iterSet xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/parts"/>

+            </body>

+            <ifExpr xsi:type="ocl.ecore:VariableExp" name="checkWeak" referredVariable="/0/generateComponent/checkWeak">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            </ifExpr>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="mtl:LetBlock">

+                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>

+                <body xsi:type="mtl:TemplateInvocation" definition="/0/generateComponent">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="newblock" referredVariable="/0/generateComponent/%.5/%.4/%.10/%/%/newblock">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  </argument>

+                  <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  </argument>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="allBlocks" eType="/3/Set(Class)" referredVariable="/0/generateComponent/allBlocks"/>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/generateComponent/generated"/>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="checkWeak" referredVariable="/0/generateComponent/checkWeak">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  </argument>

+                </body>

+                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+                <letVariable name="newblock">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="allBlocks" eType="/3/Set(Class)" referredVariable="/0/generateComponent/allBlocks"/>

+                    <body xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateComponent/%.5/%.4/%.10/part">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="/0/generateComponent/%.5/%.4/%.10/%/%/newblock/any/c">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>

+                    </body>

+                    <iterator xsi:type="ocl.ecore:Variable" name="c">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </iterator>

+                  </initExpression>

+                </letVariable>

+              </body>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="mtl:QueryInvocation" definition="/0/isPart">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateComponent/%.5/%.4/%.10/part">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </argument>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="mtl:QueryInvocation" definition="/0/isAlreadyGenerated">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <argument xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateComponent/%.5/%.4/%.10/part">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/generateComponent/generated"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+              </ifExpr>

+            </body>

+            <loopVariable name="part">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/OrderedSet(Property)" referredVariable="/0/generateComponent/%.5/%.4/parts"/>

+          </body>

+          <letVariable name="parts" eType="/3/OrderedSet(Property)">

+            <initExpression xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(Property)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+              </source>

+              <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Property">

+                <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </argument>

+            </initExpression>

+          </letVariable>

+        </body>

+        <letVariable name="props" eType="/3/OrderedSet(Property)">

+          <initExpression xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(Property)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+              <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateComponent/block">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+              </source>

+              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+            </source>

+            <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Property">

+              <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </argument>

+          </initExpression>

+        </letVariable>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xD;&#xA;"/>

+      <parameter name="block">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </parameter>

+      <parameter name="isSystem">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+      </parameter>

+      <parameter name="allBlocks" eType="/3/Set(Class)"/>

+      <parameter name="generated" eType="/3/Set(String)"/>

+      <parameter name="checkWeak">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+      </parameter>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getInterface" visibility="Public">

+      <parameter name="port">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/207">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getInterface(org.eclipse.uml2.uml.Port)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Port)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/getInterface/port">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getReturn" visibility="Public">

+      <parameter name="op">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/210">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getReturn(org.eclipse.uml2.uml.Operation)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Operation)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/getReturn/op">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getParamList" visibility="Public">

+      <parameter name="op">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/213">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getParamList(org.eclipse.uml2.uml.Operation)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Operation)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/getParamList/op">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getOperationName" visibility="Public">

+      <parameter name="op">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+      </parameter>

+      <parameter name="port">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/216">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getOperationName(org.eclipse.uml2.uml.Operation, org.eclipse.uml2.uml.Port)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(ParameterableElement)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/getOperationName/op">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+            </item>

+          </part>

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="port" referredVariable="/0/getOperationName/port">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getSystem" visibility="Public">

+      <parameter name="classes" eType="/3/Set(Class)"/>

+      <parameter name="qname">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" eType="/3/Set(Class)" referredVariable="/219"/>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getSystem(java.util.Set, java.lang.String)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(OclAny)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem" eType="/3/Set(Class)">

+            <item xsi:type="ocl.ecore:VariableExp" name="classes" eType="/3/Set(Class)" referredVariable="/0/getSystem/classes"/>

+          </part>

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="qname" referredVariable="/0/getSystem/qname">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getAllBlocks" visibility="Public" type="/3/Set(Class)">

+      <parameter name="classes" eType="/3/Set(Class)"/>

+      <parameter name="blockQN">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="SubSystemQN">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="SystemQN">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/Set(Class)">

+        <source xsi:type="ocl.ecore:VariableExp" name="classes" eType="/3/Set(Class)" referredVariable="/0/getAllBlocks/classes"/>

+        <body xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+          <source xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            <source xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                </eAnnotations>

+                <part xsi:type="ocl.ecore:CollectionItem">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <item xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="/0/getAllBlocks/select/c">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="blockQN" referredVariable="/0/getAllBlocks/blockQN">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                  </item>

+                </part>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+            </source>

+            <argument xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                </eAnnotations>

+                <part xsi:type="ocl.ecore:CollectionItem">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <item xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="/0/getAllBlocks/select/c">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="SubSystemQN" referredVariable="/0/getAllBlocks/SubSystemQN">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                  </item>

+                </part>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+            </argument>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+          </source>

+          <argument xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+              <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+              </eAnnotations>

+              <part xsi:type="ocl.ecore:CollectionItem">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                <item xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="/0/getAllBlocks/select/c">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="SystemQN" referredVariable="/0/getAllBlocks/SystemQN">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                </item>

+              </part>

+            </source>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+          </argument>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+        </body>

+        <iterator xsi:type="ocl.ecore:Variable" name="c">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </iterator>

+      </expression>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getAllComponents" visibility="Public" type="/3/Set(Component)">

+      <parameter name="hwcomps" eType="/3/Set(Component)"/>

+      <parameter name="comps" eType="/3/Set(Component)"/>

+      <parameter name="CompImplQN">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="PlatformQN">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Component)">

+        <source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/Set(Component)">

+          <source xsi:type="ocl.ecore:VariableExp" name="comps" eType="/3/Set(Component)" referredVariable="/0/getAllComponents/comps"/>

+          <body xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            <source xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                </eAnnotations>

+                <part xsi:type="ocl.ecore:CollectionItem">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <item xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="/0/getAllComponents/%/select/c">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="CompImplQN" referredVariable="/0/getAllComponents/CompImplQN">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                  </item>

+                </part>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+            </source>

+            <argument xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                </eAnnotations>

+                <part xsi:type="ocl.ecore:CollectionItem">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <item xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="/0/getAllComponents/%/select/c">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="PlatformQN" referredVariable="/0/getAllComponents/PlatformQN">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                  </item>

+                </part>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+            </argument>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+          </body>

+          <iterator xsi:type="ocl.ecore:Variable" name="c">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+          </iterator>

+        </source>

+        <argument xsi:type="ocl.ecore:VariableExp" name="hwcomps" eType="/3/Set(Component)" referredVariable="/0/getAllComponents/hwcomps"/>

+        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/union.1"/>

+      </expression>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getDirection" visibility="Public">

+      <parameter name="dir">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:IfExp">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <condition xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+          <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/228">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </source>

+          <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="in">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </argument>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>

+        </condition>

+        <thenExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="INPUT ">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </thenExpression>

+        <elseExpression xsi:type="ocl.ecore:IfExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <condition xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/228">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </source>

+            <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="out">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </argument>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>

+          </condition>

+          <thenExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="OUTPUT ">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </thenExpression>

+          <elseExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </elseExpression>

+        </elseExpression>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="isPart" visibility="Public">

+      <parameter name="prop">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:IfExp">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <condition xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+          <source xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            <source xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/231">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                </source>

+                <argument xsi:type="ocl.ecore:TypeExp" eType="/21/Component">

+                  <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+              </source>

+              <argument xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                  <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                    <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                  </eAnnotations>

+                  <part xsi:type="ocl.ecore:CollectionItem">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <item xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/231">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::ComponentModel::ComponentImplementation">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                    </item>

+                  </part>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+            </source>

+            <argument xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                </eAnnotations>

+                <part xsi:type="ocl.ecore:CollectionItem">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <item xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/231">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="SysML::Blocks::Block">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                  </item>

+                </part>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+            </argument>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+          </source>

+          <argument xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+              <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+              </eAnnotations>

+              <part xsi:type="ocl.ecore:CollectionItem">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                <item xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/231">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::SubSystem">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                </item>

+              </part>

+            </source>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+          </argument>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+        </condition>

+        <thenExpression xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </thenExpression>

+        <elseExpression xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </elseExpression>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="isDelegation" visibility="Public">

+      <parameter name="conn">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:IfExp">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <condition xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+          <source xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            <source xsi:type="ocl.ecore:PropertyCallExp">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/isDelegation/conn">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+              </source>

+              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+            </source>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+          </source>

+          <argument xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+            <source xsi:type="ocl.ecore:PropertyCallExp">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/isDelegation/conn">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/last"/>

+              </source>

+              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+            </source>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+          </argument>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/xor"/>

+        </condition>

+        <thenExpression xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </thenExpression>

+        <elseExpression xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </elseExpression>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="firstIsSub" visibility="Public">

+      <parameter name="conn">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:IfExp">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <condition xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+          <source xsi:type="ocl.ecore:PropertyCallExp">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            <source xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConnectorEnd)">

+                <source xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/firstIsSub/conn">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector/end"/>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>

+            </source>

+            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd/partWithPort"/>

+          </source>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+        </condition>

+        <thenExpression xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </thenExpression>

+        <elseExpression xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </elseExpression>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getNewBlocks" visibility="Public" type="/3/Set(String)">

+      <parameter name="parts" eType="/3/Set(Property)"/>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" eType="/3/Set(Property)" referredVariable="/240"/>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getNewBlocks(java.util.Set)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Set(Property))" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem" eType="/3/Set(Property)">

+            <item xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/Set(Property)" referredVariable="/0/getNewBlocks/parts"/>

+          </part>

+        </argument>

+      </expression>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getEmptyStringSet" visibility="Public" type="/3/Set(String)">

+      <parameter name="traceCtx">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/243">

+          <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getEmptyStringSet()">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(OclVoid)" kind="Sequence"/>

+      </expression>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="addToGenerated" visibility="Public">

+      <parameter name="name">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="generated" eType="/3/Set(String)"/>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/246">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="addToGenerated(java.lang.String, java.util.Set)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(OclAny)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="name" referredVariable="/0/addToGenerated/name">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </item>

+          </part>

+          <part xsi:type="ocl.ecore:CollectionItem" eType="/3/Set(String)">

+            <item xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/addToGenerated/generated"/>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="isAlreadyGenerated" visibility="Public">

+      <parameter name="name">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="generated" eType="/3/Set(String)"/>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/249">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="isAlreadyGenerated(java.lang.String, java.util.Set)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(OclAny)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="name" referredVariable="/0/isAlreadyGenerated/name">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </item>

+          </part>

+          <part xsi:type="ocl.ecore:CollectionItem" eType="/3/Set(String)">

+            <item xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/isAlreadyGenerated/generated"/>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getAssume" visibility="Public">

+      <parameter name="contract">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/252">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getAssume(org.eclipse.uml2.uml.Class)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Class)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/getAssume/contract">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getGuarantee" visibility="Public">

+      <parameter name="contract">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/255">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getGuarantee(org.eclipse.uml2.uml.Class)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Class)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/getGuarantee/contract">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="isRefined" visibility="Public">

+      <parameter name="prop">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/258">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="isRefined(org.eclipse.uml2.uml.Property)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Property)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/isRefined/prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getRefinedBy" visibility="Public">

+      <parameter name="prop">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/261">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getRefinedBy(org.eclipse.uml2.uml.Property)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Property)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/getRefinedBy/prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getRefinedByStrongWeak" visibility="Public">

+      <parameter name="prop">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </parameter>

+      <parameter name="parts" eType="/3/Set(Property)"/>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/264">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getRefinedByStrongWeak(org.eclipse.uml2.uml.Property,java.util.Set)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(OclAny)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/getRefinedByStrongWeak/prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </item>

+          </part>

+          <part xsi:type="ocl.ecore:CollectionItem" eType="/3/Set(Property)">

+            <item xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/Set(Property)" referredVariable="/0/getRefinedByStrongWeak/parts"/>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getRefinedByAllWeak" visibility="Public">

+      <parameter name="props" eType="/3/Set(Property)"/>

+      <parameter name="parts" eType="/3/Set(Property)"/>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" eType="/3/Set(Property)" referredVariable="/267"/>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getRefinedByAllWeak(java.util.Set,java.util.Set)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Set(Property))" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem" eType="/3/Set(Property)">

+            <item xsi:type="ocl.ecore:VariableExp" name="props" eType="/3/Set(Property)" referredVariable="/0/getRefinedByAllWeak/props"/>

+          </part>

+          <part xsi:type="ocl.ecore:CollectionItem" eType="/3/Set(Property)">

+            <item xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/Set(Property)" referredVariable="/0/getRefinedByAllWeak/parts"/>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getContractType" visibility="Public">

+      <parameter name="prop">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/270">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getContractType(org.eclipse.uml2.uml.Property)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Property)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/getContractType/prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="isWeakContract" visibility="Public">

+      <parameter name="prop">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/273">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="isWeakContract(org.eclipse.uml2.uml.Property)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Property)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/isWeakContract/prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="isAssumptionTrue" visibility="Public">

+      <parameter name="contract">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/276">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="isAssumptionTrue(org.eclipse.uml2.uml.Class)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Class)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="contract" referredVariable="/0/isAssumptionTrue/contract">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="checkRules" visibility="Public">

+      <parameter name="conn">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/279">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="checkRules(org.eclipse.uml2.uml.Connector)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Connector)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/checkRules/conn">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="checkConnectedPorts" visibility="Public">

+      <parameter name="conn">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/282">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="checkConnectedPorts(org.eclipse.uml2.uml.Connector)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Connector)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/checkConnectedPorts/conn">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="checkOperationPorts" visibility="Public">

+      <parameter name="conn">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/285">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="checkOperationPorts(org.eclipse.uml2.uml.Connector)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Connector)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/checkOperationPorts/conn">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getOperationConnections" visibility="Public">

+      <parameter name="conn">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/288">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getOperationConnections(org.eclipse.uml2.uml.Connector)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Connector)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="conn" referredVariable="/0/getOperationConnections/conn">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getType" visibility="Public">

+      <parameter name="type">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/291">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getType(org.eclipse.uml2.uml.Type)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Type)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/getType/type">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+  </mtl:Module>

+  <ecore:EPackage name="additions">

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_String_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </eAnnotations>

+      <eOperations name="startsWith">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="substring">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="endsWith">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="substring">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="contains">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="substring">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="equalsIgnoreCase">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="other">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Integer_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Real_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ecore_EObject_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+      </eAnnotations>

+      <eOperations name="mainTemplate">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/mainTemplate"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="model">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+        </eParameters>

+        <eParameters name="sysQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="sysName">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="filename">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="checkWeakContracts">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="generateComponent">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/generateComponent"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="block">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </eParameters>

+        <eParameters name="isSystem">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </eParameters>

+        <eParameters name="allBlocks" eType="/3/Set(Class)"/>

+        <eParameters name="generated" eType="/3/Set(String)"/>

+        <eParameters name="checkWeak">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getInterface">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getInterface"/>

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>

+        <eParameters name="port">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getReturn">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getReturn"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="op">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getParamList">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getParamList"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="op">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getOperationName">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getOperationName"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="op">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+        </eParameters>

+        <eParameters name="port">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getSystem">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getSystem"/>

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        <eParameters name="classes" eType="/3/Set(Class)"/>

+        <eParameters name="qname">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getAllBlocks" eType="/3/Set(Class)">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getAllBlocks"/>

+        <eParameters name="classes" eType="/3/Set(Class)"/>

+        <eParameters name="blockQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="SubSystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="SystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getAllComponents" eType="/3/Set(Component)">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getAllComponents"/>

+        <eParameters name="hwcomps" eType="/3/Set(Component)"/>

+        <eParameters name="comps" eType="/3/Set(Component)"/>

+        <eParameters name="CompImplQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="PlatformQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getDirection">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getDirection"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="dir">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="isPart">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/isPart"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="isDelegation">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/isDelegation"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="conn">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="firstIsSub">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/firstIsSub"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="conn">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getNewBlocks" eType="/3/Set(String)">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getNewBlocks"/>

+        <eParameters name="parts" eType="/3/Set(Property)"/>

+      </eOperations>

+      <eOperations name="getEmptyStringSet" eType="/3/Set(String)">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getEmptyStringSet"/>

+        <eParameters name="traceCtx">

+          <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="addToGenerated">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/addToGenerated"/>

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <eParameters name="name">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="generated" eType="/3/Set(String)"/>

+      </eOperations>

+      <eOperations name="isAlreadyGenerated">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/isAlreadyGenerated"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="name">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="generated" eType="/3/Set(String)"/>

+      </eOperations>

+      <eOperations name="getAssume">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getAssume"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="contract">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getGuarantee">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getGuarantee"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="contract">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="isRefined">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/isRefined"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getRefinedBy">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getRefinedBy"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getRefinedByStrongWeak">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getRefinedByStrongWeak"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+        <eParameters name="parts" eType="/3/Set(Property)"/>

+      </eOperations>

+      <eOperations name="getRefinedByAllWeak">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getRefinedByAllWeak"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="props" eType="/3/Set(Property)"/>

+        <eParameters name="parts" eType="/3/Set(Property)"/>

+      </eOperations>

+      <eOperations name="getContractType">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getContractType"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="isWeakContract">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/isWeakContract"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="isAssumptionTrue">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/isAssumptionTrue"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="contract">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="checkRules">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/checkRules"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="conn">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="checkConnectedPorts">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/checkConnectedPorts"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="conn">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="checkOperationPorts">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/checkOperationPorts"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="conn">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getOperationConnections">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getOperationConnections"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="conn">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getType">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getType"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="type">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="generateImplementation">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL">

+          <references href="generateImplementation.emtl#/0/generateImplementation"/>

+        </eAnnotations>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="sm">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+        </eParameters>

+        <eParameters name="owner">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OclAny_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+      </eAnnotations>

+      <eOperations name="toString">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </eOperations>

+      <eOperations name="invoke">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <eParameters name="class">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="method">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="arguments">

+          <eType xsi:type="ocl.ecore:SequenceType" href="http://www.eclipse.org/acceleo/mtl/3.0/mtlnonstdlib.ecore#//Sequence(OclAny)"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Collection(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>

+      </eAnnotations>

+      <eOperations name="filter">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>

+        <eParameters name="filter">

+          <eType xsi:type="ocl.ecore:TypeType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclType"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Sequence(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OrderedSet(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Model_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Class_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Port_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Operation_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="collections_Set(Class)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="/3/Set(Class)"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="collections_Set(Component)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="/3/Set(Component)"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Property_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Connector_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="collections_Set(Property)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="/3/Set(Property)"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Type_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_StateMachine_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+      </eAnnotations>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ecore:EPackage name="collections">

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Class)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(String)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Component)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Property)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Package)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Stereotype)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Element)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(Class)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(StateMachine)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Property)" instanceClassName="java.util.LinkedHashSet">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Operation)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Connector)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(ConnectorEnd)" instanceClassName="java.util.LinkedHashSet">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Constraint)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(String)" instanceClassName="java.util.LinkedHashSet">

+      <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Boolean)" instanceClassName="java.util.List">

+      <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List">

+      <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Port)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(OclAny)" instanceClassName="java.util.List">

+      <elementType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Operation)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(ParameterableElement)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ParameterableElement"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(Component)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Set(Property))" instanceClassName="java.util.List" elementType="/3/Set(Property)"/>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(OclVoid)" instanceClassName="java.util.List">

+      <elementType xsi:type="ocl.ecore:VoidType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclVoid"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Class)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Property)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Connector)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Type)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ecore:EPackage name="types">

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Class">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Component">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="StateMachine">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Property">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Port">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="OpaqueExpression">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Class)"/>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Class)"/>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Class)"/>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Class)"/>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Component)"/>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Component)"/>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Property)"/>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Property)"/>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Property)"/>

+  <ocl.ecore:Variable name="self" eType="/3/Set(Property)"/>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ecore:EAnnotation source="positions">

+    <eAnnotations source="positions.0" references="/0/mainTemplate">

+      <details key="start" value="907"/>

+      <details key="end" value="3045"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1" references="/0/mainTemplate/@init">

+      <details key="start" value="1033"/>

+      <details key="end" value="1561"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.2" references="/0/mainTemplate/@init/@variable.0">

+      <details key="start" value="1037"/>

+      <details key="end" value="1080"/>

+      <details key="line" value="24"/>

+    </eAnnotations>

+    <eAnnotations source="positions.3" references="/0/mainTemplate/@init/@variable.0/%">

+      <details key="start" value="1057"/>

+      <details key="end" value="1080"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.4" references="/0/mainTemplate/@init/@variable.1">

+      <details key="start" value="1084"/>

+      <details key="end" value="1133"/>

+      <details key="line" value="25"/>

+    </eAnnotations>

+    <eAnnotations source="positions.5" references="/0/mainTemplate/@init/@variable.1/%">

+      <details key="start" value="1107"/>

+      <details key="end" value="1133"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.6" references="/0/mainTemplate/@init/@variable.2">

+      <details key="start" value="1137"/>

+      <details key="end" value="1198"/>

+      <details key="line" value="26"/>

+    </eAnnotations>

+    <eAnnotations source="positions.7" references="/0/mainTemplate/@init/@variable.2/%">

+      <details key="start" value="1161"/>

+      <details key="end" value="1198"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.8" references="/0/mainTemplate/@init/@variable.3">

+      <details key="start" value="1202"/>

+      <details key="end" value="1264"/>

+      <details key="line" value="27"/>

+    </eAnnotations>

+    <eAnnotations source="positions.9" references="/0/mainTemplate/@init/@variable.3/%">

+      <details key="start" value="1224"/>

+      <details key="end" value="1264"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.10" references="/0/mainTemplate/@init/@variable.4">

+      <details key="start" value="1268"/>

+      <details key="end" value="1331"/>

+      <details key="line" value="28"/>

+    </eAnnotations>

+    <eAnnotations source="positions.11" references="/0/mainTemplate/@init/@variable.4/%">

+      <details key="start" value="1290"/>

+      <details key="end" value="1331"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.12" references="/0/mainTemplate/@init/@variable.5">

+      <details key="start" value="1335"/>

+      <details key="end" value="1405"/>

+      <details key="line" value="29"/>

+    </eAnnotations>

+    <eAnnotations source="positions.13" references="/0/mainTemplate/@init/@variable.5/%">

+      <details key="start" value="1357"/>

+      <details key="end" value="1405"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.14" references="/0/mainTemplate/@init/@variable.6">

+      <details key="start" value="1409"/>

+      <details key="end" value="1456"/>

+      <details key="line" value="30"/>

+    </eAnnotations>

+    <eAnnotations source="positions.15" references="/0/mainTemplate/@init/@variable.6/%">

+      <details key="start" value="1431"/>

+      <details key="end" value="1456"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.16" references="/0/mainTemplate/@init/@variable.7">

+      <details key="start" value="1460"/>

+      <details key="end" value="1501"/>

+      <details key="line" value="31"/>

+    </eAnnotations>

+    <eAnnotations source="positions.17" references="/0/mainTemplate/@init/@variable.7/%">

+      <details key="start" value="1479"/>

+      <details key="end" value="1501"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.18" references="/0/mainTemplate/@init/@variable.8">

+      <details key="start" value="1505"/>

+      <details key="end" value="1555"/>

+      <details key="line" value="32"/>

+    </eAnnotations>

+    <eAnnotations source="positions.19" references="/0/mainTemplate/@init/@variable.8/%">

+      <details key="start" value="1526"/>

+      <details key="end" value="1555"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.20" references="/0/mainTemplate/%">

+      <details key="start" value="1583"/>

+      <details key="end" value="2684"/>

+      <details key="line" value="36"/>

+    </eAnnotations>

+    <eAnnotations source="positions.21" references="/0/mainTemplate/%/%">

+      <details key="start" value="1662"/>

+      <details key="end" value="2675"/>

+      <details key="line" value="37"/>

+    </eAnnotations>

+    <eAnnotations source="positions.22" references="/0/mainTemplate/%/%/%">

+      <details key="start" value="1783"/>

+      <details key="end" value="2666"/>

+      <details key="line" value="38"/>

+    </eAnnotations>

+    <eAnnotations source="positions.23" references="/0/mainTemplate/%/%/%/%">

+      <details key="start" value="1903"/>

+      <details key="end" value="2657"/>

+      <details key="line" value="39"/>

+    </eAnnotations>

+    <eAnnotations source="positions.24" references="/0/mainTemplate/%/%/%/%/%">

+      <details key="start" value="2026"/>

+      <details key="end" value="2648"/>

+      <details key="line" value="40"/>

+    </eAnnotations>

+    <eAnnotations source="positions.25" references="/0/mainTemplate/%/%/%/%/%/%">

+      <details key="start" value="2206"/>

+      <details key="end" value="2639"/>

+      <details key="line" value="41"/>

+    </eAnnotations>

+    <eAnnotations source="positions.26" references="/0/mainTemplate/%/%/%/%/%/%/%">

+      <details key="start" value="2389"/>

+      <details key="end" value="2630"/>

+      <details key="line" value="42"/>

+    </eAnnotations>

+    <eAnnotations source="positions.27" references="/0/mainTemplate/%/%/%/%/%/%/%/%">

+      <details key="start" value="2443"/>

+      <details key="end" value="2621"/>

+      <details key="line" value="43"/>

+    </eAnnotations>

+    <eAnnotations source="positions.28" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%">

+      <details key="start" value="2496"/>

+      <details key="end" value="2610"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.29" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%/system">

+      <details key="start" value="2514"/>

+      <details key="end" value="2520"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.30" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%/%">

+      <details key="start" value="2522"/>

+      <details key="end" value="2526"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.31" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%/%.1">

+      <details key="start" value="2528"/>

+      <details key="end" value="2554"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.32" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%/%.1/allBlocks">

+      <details key="start" value="2528"/>

+      <details key="end" value="2537"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.33" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%/%.1/allComps">

+      <details key="start" value="2545"/>

+      <details key="end" value="2553"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.34" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%/generated">

+      <details key="start" value="2556"/>

+      <details key="end" value="2565"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.35" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%/%.2">

+      <details key="start" value="2566"/>

+      <details key="end" value="2609"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.36" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%/%.2/checkWeakContracts">

+      <details key="start" value="2566"/>

+      <details key="end" value="2584"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.37" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%/%.2/%">

+      <details key="start" value="2602"/>

+      <details key="end" value="2608"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.38" references="/0/mainTemplate/%/%/%/%/%/%/%/%/%.1">

+      <details key="start" value="2612"/>

+      <details key="end" value="2614"/>

+      <details key="line" value="45"/>

+    </eAnnotations>

+    <eAnnotations source="positions.39" references="/0/mainTemplate/%/%/%/%/%/%/%/%/system">

+      <details key="start" value="2448"/>

+      <details key="end" value="2492"/>

+      <details key="line" value="43"/>

+    </eAnnotations>

+    <eAnnotations source="positions.40" references="/0/mainTemplate/%/%/%/%/%/%/%/%/system/%">

+      <details key="start" value="2466"/>

+      <details key="end" value="2493"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.41" references="/0/mainTemplate/%/%/%/%/%/%/%/%/system/%/allBlocks">

+      <details key="start" value="2476"/>

+      <details key="end" value="2485"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.42" references="/0/mainTemplate/%/%/%/%/%/%/%/%/system/%/sysQN">

+      <details key="start" value="2487"/>

+      <details key="end" value="2492"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.43" references="/0/mainTemplate/%/%/%/%/%/%/%/generated">

+      <details key="start" value="2394"/>

+      <details key="end" value="2439"/>

+      <details key="line" value="42"/>

+    </eAnnotations>

+    <eAnnotations source="positions.44" references="/0/mainTemplate/%/%/%/%/%/%/%/generated/%">

+      <details key="start" value="2421"/>

+      <details key="end" value="2440"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.45" references="/0/mainTemplate/%/%/%/%/%/%/%/generated/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.46" references="/0/mainTemplate/%/%/%/%/%/%/allComps">

+      <details key="start" value="2211"/>

+      <details key="end" value="2385"/>

+      <details key="line" value="41"/>

+    </eAnnotations>

+    <eAnnotations source="positions.47" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%">

+      <details key="start" value="2240"/>

+      <details key="end" value="2386"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.48" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/%">

+      <details key="start" value="2257"/>

+      <details key="end" value="2309"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.49" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/%/%">

+      <details key="start" value="2257"/>

+      <details key="end" value="2290"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.50" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/%/%/deploymentView">

+      <details key="start" value="2257"/>

+      <details key="end" value="2271"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.51" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/%/%.1">

+      <details key="start" value="2299"/>

+      <details key="end" value="2308"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.52" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/%.1">

+      <details key="start" value="2311"/>

+      <details key="end" value="2362"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.53" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/%.1/%">

+      <details key="start" value="2311"/>

+      <details key="end" value="2343"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.54" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/%.1/%/componentView">

+      <details key="start" value="2311"/>

+      <details key="end" value="2324"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.55" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/%.1/%.1">

+      <details key="start" value="2352"/>

+      <details key="end" value="2361"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.56" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/CompImplQN">

+      <details key="start" value="2364"/>

+      <details key="end" value="2374"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.57" references="/0/mainTemplate/%/%/%/%/%/%/allComps/%/SRACompQN">

+      <details key="start" value="2376"/>

+      <details key="end" value="2385"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.58" references="/0/mainTemplate/%/%/%/%/%/allBlocks">

+      <details key="start" value="2031"/>

+      <details key="end" value="2202"/>

+      <details key="line" value="40"/>

+    </eAnnotations>

+    <eAnnotations source="positions.59" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%">

+      <details key="start" value="2057"/>

+      <details key="end" value="2203"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.60" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/%">

+      <details key="start" value="2070"/>

+      <details key="end" value="2170"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.61" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/%/%">

+      <details key="start" value="2070"/>

+      <details key="end" value="2117"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.62" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/%/%/%">

+      <details key="start" value="2070"/>

+      <details key="end" value="2102"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.63" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/%/%/%/componentView">

+      <details key="start" value="2070"/>

+      <details key="end" value="2083"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.64" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/%/%/%.1">

+      <details key="start" value="2111"/>

+      <details key="end" value="2116"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.65" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/%/%.1">

+      <details key="start" value="2125"/>

+      <details key="end" value="2169"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.66" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/%/%.1/%">

+      <details key="start" value="2125"/>

+      <details key="end" value="2154"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.67" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/%/%.1/%/systemView">

+      <details key="start" value="2125"/>

+      <details key="end" value="2135"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.68" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/%/%.1/%.1">

+      <details key="start" value="2163"/>

+      <details key="end" value="2168"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.69" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/BlockQN">

+      <details key="start" value="2172"/>

+      <details key="end" value="2179"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.70" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/SubSystemQN">

+      <details key="start" value="2181"/>

+      <details key="end" value="2192"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.71" references="/0/mainTemplate/%/%/%/%/%/allBlocks/%/SystemQN">

+      <details key="start" value="2194"/>

+      <details key="end" value="2202"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.72" references="/0/mainTemplate/%/%/%/%/deploymentView">

+      <details key="start" value="1908"/>

+      <details key="end" value="2022"/>

+      <details key="line" value="39"/>

+    </eAnnotations>

+    <eAnnotations source="positions.73" references="/0/mainTemplate/%/%/%/%/deploymentView/any">

+      <details key="start" value="1938"/>

+      <details key="end" value="2024"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.74" references="/0/mainTemplate/%/%/%/%/deploymentView/any/%">

+      <details key="start" value="1938"/>

+      <details key="end" value="1957"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.75" references="/0/mainTemplate/%/%/%/%/deploymentView/any/%/model">

+      <details key="start" value="1938"/>

+      <details key="end" value="1943"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.76" references="/0/mainTemplate/%/%/%/%/deploymentView/any/%.1">

+      <details key="start" value="1977"/>

+      <details key="end" value="2023"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.77" references="/0/mainTemplate/%/%/%/%/deploymentView/any/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.78" references="/0/mainTemplate/%/%/%/%/deploymentView/any/%.1/%/%/%">

+      <details key="start" value="1977"/>

+      <details key="end" value="2011"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.79" references="/0/mainTemplate/%/%/%/%/deploymentView/any/%.1/%/%/%/p">

+      <details key="start" value="1977"/>

+      <details key="end" value="1978"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.80" references="/0/mainTemplate/%/%/%/%/deploymentView/any/%.1/%/%/%/DeplViewQN">

+      <details key="start" value="2000"/>

+      <details key="end" value="2010"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.81" references="/0/mainTemplate/%/%/%/%/deploymentView/any/p">

+      <details key="start" value="1963"/>

+      <details key="end" value="1974"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.82" references="/0/mainTemplate/%/%/%/systemView">

+      <details key="start" value="1788"/>

+      <details key="end" value="1899"/>

+      <details key="line" value="38"/>

+    </eAnnotations>

+    <eAnnotations source="positions.83" references="/0/mainTemplate/%/%/%/systemView/any">

+      <details key="start" value="1812"/>

+      <details key="end" value="1900"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.84" references="/0/mainTemplate/%/%/%/systemView/any/%">

+      <details key="start" value="1812"/>

+      <details key="end" value="1831"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.85" references="/0/mainTemplate/%/%/%/systemView/any/%/model">

+      <details key="start" value="1812"/>

+      <details key="end" value="1817"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.86" references="/0/mainTemplate/%/%/%/systemView/any/%.1">

+      <details key="start" value="1851"/>

+      <details key="end" value="1899"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.87" references="/0/mainTemplate/%/%/%/systemView/any/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.88" references="/0/mainTemplate/%/%/%/systemView/any/%.1/%/%/%">

+      <details key="start" value="1851"/>

+      <details key="end" value="1887"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.89" references="/0/mainTemplate/%/%/%/systemView/any/%.1/%/%/%/p">

+      <details key="start" value="1851"/>

+      <details key="end" value="1852"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.90" references="/0/mainTemplate/%/%/%/systemView/any/%.1/%/%/%/SystemViewQN">

+      <details key="start" value="1874"/>

+      <details key="end" value="1886"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.91" references="/0/mainTemplate/%/%/%/systemView/any/p">

+      <details key="start" value="1837"/>

+      <details key="end" value="1848"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.92" references="/0/mainTemplate/%/%/componentView">

+      <details key="start" value="1667"/>

+      <details key="end" value="1779"/>

+      <details key="line" value="37"/>

+    </eAnnotations>

+    <eAnnotations source="positions.93" references="/0/mainTemplate/%/%/componentView/any">

+      <details key="start" value="1694"/>

+      <details key="end" value="1780"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.94" references="/0/mainTemplate/%/%/componentView/any/%">

+      <details key="start" value="1694"/>

+      <details key="end" value="1713"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.95" references="/0/mainTemplate/%/%/componentView/any/%/model">

+      <details key="start" value="1694"/>

+      <details key="end" value="1699"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.96" references="/0/mainTemplate/%/%/componentView/any/%.1">

+      <details key="start" value="1733"/>

+      <details key="end" value="1779"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.97" references="/0/mainTemplate/%/%/componentView/any/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.98" references="/0/mainTemplate/%/%/componentView/any/%.1/%/%/%">

+      <details key="start" value="1733"/>

+      <details key="end" value="1767"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.99" references="/0/mainTemplate/%/%/componentView/any/%.1/%/%/%/p">

+      <details key="start" value="1733"/>

+      <details key="end" value="1734"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.100" references="/0/mainTemplate/%/%/componentView/any/%.1/%/%/%/CompViewQN">

+      <details key="start" value="1756"/>

+      <details key="end" value="1766"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.101" references="/0/mainTemplate/%/%/componentView/any/p">

+      <details key="start" value="1719"/>

+      <details key="end" value="1730"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.102" references="/0/mainTemplate/%/%.1">

+      <details key="start" value="1590"/>

+      <details key="end" value="1641"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.103" references="/0/mainTemplate/%/%.1/%">

+      <details key="start" value="1590"/>

+      <details key="end" value="1626"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.104" references="/0/mainTemplate/%/%.1/%/%">

+      <details key="start" value="1590"/>

+      <details key="end" value="1610"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.105" references="/0/mainTemplate/%/%.1/%/%/filename">

+      <details key="start" value="1590"/>

+      <details key="end" value="1598"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.106" references="/0/mainTemplate/%/%.1/%/%/%">

+      <details key="start" value="1606"/>

+      <details key="end" value="1609"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.107" references="/0/mainTemplate/%/%.1/%/sysName">

+      <details key="start" value="1618"/>

+      <details key="end" value="1625"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.108" references="/0/mainTemplate/%/%.1/%.1">

+      <details key="start" value="1634"/>

+      <details key="end" value="1640"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.109" references="/0/mainTemplate/%/%.2">

+      <details key="start" value="1650"/>

+      <details key="end" value="1657"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.110" references="/0/mainTemplate/%.1">

+      <details key="start" value="2686"/>

+      <details key="end" value="2688"/>

+      <details key="line" value="53"/>

+    </eAnnotations>

+    <eAnnotations source="positions.111" references="/0/mainTemplate/%.2">

+      <details key="start" value="2688"/>

+      <details key="end" value="3028"/>

+      <details key="line" value="54"/>

+    </eAnnotations>

+    <eAnnotations source="positions.112" references="/0/mainTemplate/%.2/%">

+      <details key="start" value="2765"/>

+      <details key="end" value="3020"/>

+      <details key="line" value="55"/>

+    </eAnnotations>

+    <eAnnotations source="positions.113" references="/0/mainTemplate/%.2/%/%">

+      <details key="start" value="2882"/>

+      <details key="end" value="3012"/>

+      <details key="line" value="56"/>

+    </eAnnotations>

+    <eAnnotations source="positions.114" references="/0/mainTemplate/%.2/%/%/%">

+      <details key="start" value="2953"/>

+      <details key="end" value="3002"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.115" references="/0/mainTemplate/%.2/%/%/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.116" references="/0/mainTemplate/%.2/%/%/%/%">

+      <details key="start" value="2976"/>

+      <details key="end" value="3001"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.117" references="/0/mainTemplate/%.2/%/%/%/%/%">

+      <details key="start" value="2976"/>

+      <details key="end" value="2984"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.118" references="/0/mainTemplate/%.2/%/%/%/%/%/sm">

+      <details key="start" value="2976"/>

+      <details key="end" value="2978"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.119" references="/0/mainTemplate/%.2/%/%/%/%/%.1">

+      <details key="start" value="2995"/>

+      <details key="end" value="3000"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.120" references="/0/mainTemplate/%.2/%/%/%.1">

+      <details key="start" value="3004"/>

+      <details key="end" value="3006"/>

+      <details key="line" value="58"/>

+    </eAnnotations>

+    <eAnnotations source="positions.121" references="/0/mainTemplate/%.2/%/%/%.2">

+      <details key="start" value="2885"/>

+      <details key="end" value="2949"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.122" references="/0/mainTemplate/%.2/%/%/%.2/%">

+      <details key="start" value="2886"/>

+      <details key="end" value="2913"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.123" references="/0/mainTemplate/%.2/%/%/%.2/%/%">

+      <details key="start" value="2886"/>

+      <details key="end" value="2894"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.124" references="/0/mainTemplate/%.2/%/%/%.2/%/%/sm">

+      <details key="start" value="2886"/>

+      <details key="end" value="2888"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.125" references="/0/mainTemplate/%.2/%/%/%.2/%/%.1">

+      <details key="start" value="2907"/>

+      <details key="end" value="2912"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.126" references="/0/mainTemplate/%.2/%/%/%.2/%.1">

+      <details key="start" value="2917"/>

+      <details key="end" value="2948"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.127" references="/0/mainTemplate/%.2/%/%/%.2/%.1/%">

+      <details key="start" value="2917"/>

+      <details key="end" value="2925"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.128" references="/0/mainTemplate/%.2/%/%/%.2/%.1/%/sm">

+      <details key="start" value="2917"/>

+      <details key="end" value="2919"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.129" references="/0/mainTemplate/%.2/%/%/%.2/%.1/%.1">

+      <details key="start" value="2938"/>

+      <details key="end" value="2947"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.130" references="/0/mainTemplate/%.2/%/%.1">

+      <details key="start" value="2769"/>

+      <details key="end" value="2878"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.131" references="/0/mainTemplate/%.2/%/%.1/%">

+      <details key="start" value="2770"/>

+      <details key="end" value="2820"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.132" references="/0/mainTemplate/%.2/%/%.1/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.133" references="/0/mainTemplate/%.2/%/%.1/%/%/%/%">

+      <details key="start" value="2770"/>

+      <details key="end" value="2808"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.134" references="/0/mainTemplate/%.2/%/%.1/%/%/%/%/%">

+      <details key="start" value="2770"/>

+      <details key="end" value="2778"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.135" references="/0/mainTemplate/%.2/%/%.1/%/%/%/%/%/sm">

+      <details key="start" value="2770"/>

+      <details key="end" value="2772"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.136" references="/0/mainTemplate/%.2/%/%.1/%/%/%/%/BlockQN">

+      <details key="start" value="2800"/>

+      <details key="end" value="2807"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.137" references="/0/mainTemplate/%.2/%/%.1/%.1">

+      <details key="start" value="2824"/>

+      <details key="end" value="2877"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.138" references="/0/mainTemplate/%.2/%/%.1/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.139" references="/0/mainTemplate/%.2/%/%.1/%.1/%/%/%">

+      <details key="start" value="2824"/>

+      <details key="end" value="2865"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.140" references="/0/mainTemplate/%.2/%/%.1/%.1/%/%/%/%">

+      <details key="start" value="2824"/>

+      <details key="end" value="2832"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.141" references="/0/mainTemplate/%.2/%/%.1/%.1/%/%/%/%/sm">

+      <details key="start" value="2824"/>

+      <details key="end" value="2826"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.142" references="/0/mainTemplate/%.2/%/%.1/%.1/%/%/%/CompImplQN">

+      <details key="start" value="2854"/>

+      <details key="end" value="2864"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.143" references="/0/mainTemplate/%.2/sm">

+      <details key="start" value="2694"/>

+      <details key="end" value="2711"/>

+      <details key="line" value="54"/>

+    </eAnnotations>

+    <eAnnotations source="positions.144" references="/0/mainTemplate/%.2/%.1">

+      <details key="start" value="2714"/>

+      <details key="end" value="2760"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.145" references="/0/mainTemplate/%.2/%.1/%">

+      <details key="start" value="2714"/>

+      <details key="end" value="2738"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.146" references="/0/mainTemplate/%.2/%.1/%/model">

+      <details key="start" value="2714"/>

+      <details key="end" value="2719"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.147" references="/0/mainTemplate/%.2/%.1/%.1">

+      <details key="start" value="2747"/>

+      <details key="end" value="2759"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.148" references="/0/mainTemplate/%.3">

+      <details key="start" value="3030"/>

+      <details key="end" value="3032"/>

+      <details key="line" value="61"/>

+    </eAnnotations>

+    <eAnnotations source="positions.149" references="/0/mainTemplate/model">

+      <details key="start" value="937"/>

+      <details key="end" value="950"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.150" references="/0/mainTemplate/sysQN">

+      <details key="start" value="952"/>

+      <details key="end" value="966"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.151" references="/0/mainTemplate/sysName">

+      <details key="start" value="969"/>

+      <details key="end" value="985"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.152" references="/0/mainTemplate/filename">

+      <details key="start" value="987"/>

+      <details key="end" value="1004"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.153" references="/0/mainTemplate/checkWeakContracts">

+      <details key="start" value="1006"/>

+      <details key="end" value="1032"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.154" references="/0/generateComponent">

+      <details key="start" value="3049"/>

+      <details key="end" value="10887"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.155" references="/0/generateComponent/@init">

+      <details key="start" value="3188"/>

+      <details key="end" value="3572"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.156" references="/0/generateComponent/@init/@variable.0">

+      <details key="start" value="3192"/>

+      <details key="end" value="3235"/>

+      <details key="line" value="66"/>

+    </eAnnotations>

+    <eAnnotations source="positions.157" references="/0/generateComponent/@init/@variable.0/%">

+      <details key="start" value="3212"/>

+      <details key="end" value="3235"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.158" references="/0/generateComponent/@init/@variable.1">

+      <details key="start" value="3239"/>

+      <details key="end" value="3292"/>

+      <details key="line" value="67"/>

+    </eAnnotations>

+    <eAnnotations source="positions.159" references="/0/generateComponent/@init/@variable.1/%">

+      <details key="start" value="3261"/>

+      <details key="end" value="3292"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.160" references="/0/generateComponent/@init/@variable.2">

+      <details key="start" value="3296"/>

+      <details key="end" value="3364"/>

+      <details key="line" value="68"/>

+    </eAnnotations>

+    <eAnnotations source="positions.161" references="/0/generateComponent/@init/@variable.2/%">

+      <details key="start" value="3323"/>

+      <details key="end" value="3364"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.162" references="/0/generateComponent/@init/@variable.3">

+      <details key="start" value="3368"/>

+      <details key="end" value="3427"/>

+      <details key="line" value="69"/>

+    </eAnnotations>

+    <eAnnotations source="positions.163" references="/0/generateComponent/@init/@variable.3/%">

+      <details key="start" value="3394"/>

+      <details key="end" value="3427"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.164" references="/0/generateComponent/@init/@variable.4">

+      <details key="start" value="3431"/>

+      <details key="end" value="3493"/>

+      <details key="line" value="70"/>

+    </eAnnotations>

+    <eAnnotations source="positions.165" references="/0/generateComponent/@init/@variable.4/%">

+      <details key="start" value="3456"/>

+      <details key="end" value="3493"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.166" references="/0/generateComponent/@init/@variable.5">

+      <details key="start" value="3497"/>

+      <details key="end" value="3566"/>

+      <details key="line" value="71"/>

+    </eAnnotations>

+    <eAnnotations source="positions.167" references="/0/generateComponent/@init/@variable.5/%">

+      <details key="start" value="3517"/>

+      <details key="end" value="3566"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.168" references="/0/generateComponent/%">

+      <details key="start" value="3575"/>

+      <details key="end" value="3576"/>

+      <details key="line" value="74"/>

+    </eAnnotations>

+    <eAnnotations source="positions.169" references="/0/generateComponent/%.1">

+      <details key="start" value="3577"/>

+      <details key="end" value="3614"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.170" references="/0/generateComponent/%.1/%">

+      <details key="start" value="3592"/>

+      <details key="end" value="3602"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.171" references="/0/generateComponent/%.1/%/block">

+      <details key="start" value="3592"/>

+      <details key="end" value="3597"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.172" references="/0/generateComponent/%.1/generated">

+      <details key="start" value="3604"/>

+      <details key="end" value="3613"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.173" references="/0/generateComponent/%.2">

+      <details key="start" value="3616"/>

+      <details key="end" value="3618"/>

+      <details key="line" value="75"/>

+    </eAnnotations>

+    <eAnnotations source="positions.174" references="/0/generateComponent/%.3">

+      <details key="start" value="3619"/>

+      <details key="end" value="3696"/>

+      <details key="line" value="75"/>

+    </eAnnotations>

+    <eAnnotations source="positions.175" references="/0/generateComponent/%.3/%">

+      <details key="start" value="3636"/>

+      <details key="end" value="3655"/>

+      <details key="line" value="76"/>

+    </eAnnotations>

+    <eAnnotations source="positions.176" references="/0/generateComponent/%.3/isSystem">

+      <details key="start" value="3623"/>

+      <details key="end" value="3633"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.177" references="/0/generateComponent/%.3/%.1">

+      <details key="start" value="3656"/>

+      <details key="end" value="3691"/>

+      <details key="line" value="77"/>

+    </eAnnotations>

+    <eAnnotations source="positions.178" references="/0/generateComponent/%.3/%.1/%">

+      <details key="start" value="3664"/>

+      <details key="end" value="3675"/>

+      <details key="line" value="78"/>

+    </eAnnotations>

+    <eAnnotations source="positions.179" references="/0/generateComponent/%.3/%.1/%.1">

+      <details key="start" value="3676"/>

+      <details key="end" value="3686"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.180" references="/0/generateComponent/%.3/%.1/%.1/block">

+      <details key="start" value="3676"/>

+      <details key="end" value="3681"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.181" references="/0/generateComponent/%.3/%.1/%.2">

+      <details key="start" value="3688"/>

+      <details key="end" value="3690"/>

+      <details key="line" value="79"/>

+    </eAnnotations>

+    <eAnnotations source="positions.182" references="/0/generateComponent/%.4">

+      <details key="start" value="3698"/>

+      <details key="end" value="3714"/>

+      <details key="line" value="80"/>

+    </eAnnotations>

+    <eAnnotations source="positions.183" references="/0/generateComponent/%.5">

+      <details key="start" value="3715"/>

+      <details key="end" value="10872"/>

+      <details key="line" value="83"/>

+    </eAnnotations>

+    <eAnnotations source="positions.184" references="/0/generateComponent/%.5/%">

+      <details key="start" value="3793"/>

+      <details key="end" value="5227"/>

+      <details key="line" value="84"/>

+    </eAnnotations>

+    <eAnnotations source="positions.185" references="/0/generateComponent/%.5/%/%">

+      <details key="start" value="3827"/>

+      <details key="end" value="5218"/>

+      <details key="line" value="85"/>

+    </eAnnotations>

+    <eAnnotations source="positions.186" references="/0/generateComponent/%.5/%/%/%">

+      <details key="start" value="3859"/>

+      <details key="end" value="4996"/>

+      <details key="line" value="86"/>

+    </eAnnotations>

+    <eAnnotations source="positions.187" references="/0/generateComponent/%.5/%/%/%/%">

+      <details key="start" value="3903"/>

+      <details key="end" value="4502"/>

+      <details key="line" value="87"/>

+    </eAnnotations>

+    <eAnnotations source="positions.188" references="/0/generateComponent/%.5/%/%/%/%/%">

+      <details key="start" value="3963"/>

+      <details key="end" value="4189"/>

+      <details key="line" value="88"/>

+    </eAnnotations>

+    <eAnnotations source="positions.189" references="/0/generateComponent/%.5/%/%/%/%/%/%">

+      <details key="start" value="4057"/>

+      <details key="end" value="4058"/>

+      <details key="line" value="89"/>

+    </eAnnotations>

+    <eAnnotations source="positions.190" references="/0/generateComponent/%.5/%/%/%/%/%/%.1">

+      <details key="start" value="4059"/>

+      <details key="end" value="4093"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.191" references="/0/generateComponent/%.5/%/%/%/%/%/%.1/%">

+      <details key="start" value="4072"/>

+      <details key="end" value="4092"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.192" references="/0/generateComponent/%.5/%/%/%/%/%/%.1/%/direction">

+      <details key="start" value="4072"/>

+      <details key="end" value="4081"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.193" references="/0/generateComponent/%.5/%/%/%/%/%/%.2">

+      <details key="start" value="4095"/>

+      <details key="end" value="4100"/>

+      <details key="line" value="89"/>

+    </eAnnotations>

+    <eAnnotations source="positions.194" references="/0/generateComponent/%.5/%/%/%/%/%/%.3">

+      <details key="start" value="4101"/>

+      <details key="end" value="4110"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.195" references="/0/generateComponent/%.5/%/%/%/%/%/%.3/port">

+      <details key="start" value="4101"/>

+      <details key="end" value="4105"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.196" references="/0/generateComponent/%.5/%/%/%/%/%/%.4">

+      <details key="start" value="4112"/>

+      <details key="end" value="4115"/>

+      <details key="line" value="89"/>

+    </eAnnotations>

+    <eAnnotations source="positions.197" references="/0/generateComponent/%.5/%/%/%/%/%/%.5">

+      <details key="start" value="4115"/>

+      <details key="end" value="4179"/>

+      <details key="line" value="89"/>

+    </eAnnotations>

+    <eAnnotations source="positions.198" references="/0/generateComponent/%.5/%/%/%/%/%/%.5/%">

+      <details key="start" value="4153"/>

+      <details key="end" value="4171"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.199" references="/0/generateComponent/%.5/%/%/%/%/%/%.5/%/%">

+      <details key="start" value="4161"/>

+      <details key="end" value="4170"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.200" references="/0/generateComponent/%.5/%/%/%/%/%/%.5/%/%/port">

+      <details key="start" value="4161"/>

+      <details key="end" value="4165"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.201" references="/0/generateComponent/%.5/%/%/%/%/%/%.5/%.1">

+      <details key="start" value="4173"/>

+      <details key="end" value="4174"/>

+      <details key="line" value="89"/>

+    </eAnnotations>

+    <eAnnotations source="positions.202" references="/0/generateComponent/%.5/%/%/%/%/%/%.5/%.2">

+      <details key="start" value="4119"/>

+      <details key="end" value="4151"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.203" references="/0/generateComponent/%.5/%/%/%/%/%/%.5/%.2/%">

+      <details key="start" value="4124"/>

+      <details key="end" value="4150"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.204" references="/0/generateComponent/%.5/%/%/%/%/%/%.5/%.2/%/%">

+      <details key="start" value="4124"/>

+      <details key="end" value="4133"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.205" references="/0/generateComponent/%.5/%/%/%/%/%/%.5/%.2/%/%/port">

+      <details key="start" value="4124"/>

+      <details key="end" value="4128"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.206" references="/0/generateComponent/%.5/%/%/%/%/%/%.6">

+      <details key="start" value="4179"/>

+      <details key="end" value="4181"/>

+      <details key="line" value="90"/>

+    </eAnnotations>

+    <eAnnotations source="positions.207" references="/0/generateComponent/%.5/%/%/%/%/%/direction">

+      <details key="start" value="3968"/>

+      <details key="end" value="4054"/>

+      <details key="line" value="88"/>

+    </eAnnotations>

+    <eAnnotations source="positions.208" references="/0/generateComponent/%.5/%/%/%/%/%/direction/%">

+      <details key="start" value="3990"/>

+      <details key="end" value="4055"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.209" references="/0/generateComponent/%.5/%/%/%/%/%/direction/%/port">

+      <details key="start" value="3990"/>

+      <details key="end" value="3994"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.210" references="/0/generateComponent/%.5/%/%/%/%/%/direction/%/%">

+      <details key="start" value="4004"/>

+      <details key="end" value="4041"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.211" references="/0/generateComponent/%.5/%/%/%/%/%/direction/%/%/port">

+      <details key="start" value="4004"/>

+      <details key="end" value="4008"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.212" references="/0/generateComponent/%.5/%/%/%/%/%/direction/%/%/FlowPortQN">

+      <details key="start" value="4030"/>

+      <details key="end" value="4040"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.213" references="/0/generateComponent/%.5/%/%/%/%/%/direction/%/%.1">

+      <details key="start" value="4043"/>

+      <details key="end" value="4054"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.214" references="/0/generateComponent/%.5/%/%/%/%/%.1">

+      <details key="start" value="3907"/>

+      <details key="end" value="3958"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.215" references="/0/generateComponent/%.5/%/%/%/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.216" references="/0/generateComponent/%.5/%/%/%/%/%.1/%/%/%">

+      <details key="start" value="3908"/>

+      <details key="end" value="3945"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.217" references="/0/generateComponent/%.5/%/%/%/%/%.1/%/%/%/port">

+      <details key="start" value="3908"/>

+      <details key="end" value="3912"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.218" references="/0/generateComponent/%.5/%/%/%/%/%.1/%/%/%/FlowPortQN">

+      <details key="start" value="3934"/>

+      <details key="end" value="3944"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.219" references="/0/generateComponent/%.5/%/%/%/%/%.2">

+      <details key="start" value="4193"/>

+      <details key="end" value="4497"/>

+      <details key="line" value="91"/>

+    </eAnnotations>

+    <eAnnotations source="positions.220" references="/0/generateComponent/%.5/%/%/%/%/%.2/%">

+      <details key="start" value="4262"/>

+      <details key="end" value="4493"/>

+      <details key="line" value="92"/>

+    </eAnnotations>

+    <eAnnotations source="positions.221" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%">

+      <details key="start" value="4361"/>

+      <details key="end" value="4362"/>

+      <details key="line" value="93"/>

+    </eAnnotations>

+    <eAnnotations source="positions.222" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.1">

+      <details key="start" value="4363"/>

+      <details key="end" value="4397"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.223" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.1/%">

+      <details key="start" value="4376"/>

+      <details key="end" value="4396"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.224" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.1/%/direction">

+      <details key="start" value="4376"/>

+      <details key="end" value="4385"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.225" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.2">

+      <details key="start" value="4399"/>

+      <details key="end" value="4404"/>

+      <details key="line" value="93"/>

+    </eAnnotations>

+    <eAnnotations source="positions.226" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.3">

+      <details key="start" value="4405"/>

+      <details key="end" value="4414"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.227" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.3/port">

+      <details key="start" value="4405"/>

+      <details key="end" value="4409"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.228" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.4">

+      <details key="start" value="4416"/>

+      <details key="end" value="4419"/>

+      <details key="line" value="93"/>

+    </eAnnotations>

+    <eAnnotations source="positions.229" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.5">

+      <details key="start" value="4419"/>

+      <details key="end" value="4483"/>

+      <details key="line" value="93"/>

+    </eAnnotations>

+    <eAnnotations source="positions.230" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.5/%">

+      <details key="start" value="4457"/>

+      <details key="end" value="4475"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.231" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.5/%/%">

+      <details key="start" value="4465"/>

+      <details key="end" value="4474"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.232" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.5/%/%/port">

+      <details key="start" value="4465"/>

+      <details key="end" value="4469"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.233" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.5/%.1">

+      <details key="start" value="4477"/>

+      <details key="end" value="4478"/>

+      <details key="line" value="93"/>

+    </eAnnotations>

+    <eAnnotations source="positions.234" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.5/%.2">

+      <details key="start" value="4423"/>

+      <details key="end" value="4455"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.235" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.5/%.2/%">

+      <details key="start" value="4428"/>

+      <details key="end" value="4454"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.236" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.5/%.2/%/%">

+      <details key="start" value="4428"/>

+      <details key="end" value="4437"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.237" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.5/%.2/%/%/port">

+      <details key="start" value="4428"/>

+      <details key="end" value="4432"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.238" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/%.6">

+      <details key="start" value="4483"/>

+      <details key="end" value="4485"/>

+      <details key="line" value="94"/>

+    </eAnnotations>

+    <eAnnotations source="positions.239" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/direction">

+      <details key="start" value="4267"/>

+      <details key="end" value="4358"/>

+      <details key="line" value="92"/>

+    </eAnnotations>

+    <eAnnotations source="positions.240" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/direction/%">

+      <details key="start" value="4289"/>

+      <details key="end" value="4359"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.241" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/direction/%/port">

+      <details key="start" value="4289"/>

+      <details key="end" value="4293"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.242" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/direction/%/%">

+      <details key="start" value="4303"/>

+      <details key="end" value="4345"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.243" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/direction/%/%/port">

+      <details key="start" value="4303"/>

+      <details key="end" value="4307"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.244" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/direction/%/%/FlowPortMarteQN">

+      <details key="start" value="4329"/>

+      <details key="end" value="4344"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.245" references="/0/generateComponent/%.5/%/%/%/%/%.2/%/direction/%/%.1">

+      <details key="start" value="4347"/>

+      <details key="end" value="4358"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.246" references="/0/generateComponent/%.5/%/%/%/%/%.2/%.1">

+      <details key="start" value="4201"/>

+      <details key="end" value="4257"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.247" references="/0/generateComponent/%.5/%/%/%/%/%.2/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.248" references="/0/generateComponent/%.5/%/%/%/%/%.2/%.1/%/%/%">

+      <details key="start" value="4202"/>

+      <details key="end" value="4244"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.249" references="/0/generateComponent/%.5/%/%/%/%/%.2/%.1/%/%/%/port">

+      <details key="start" value="4202"/>

+      <details key="end" value="4206"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.250" references="/0/generateComponent/%.5/%/%/%/%/%.2/%.1/%/%/%/FlowPortMarteQN">

+      <details key="start" value="4228"/>

+      <details key="end" value="4243"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.251" references="/0/generateComponent/%.5/%/%/%/%.1">

+      <details key="start" value="4532"/>

+      <details key="end" value="4987"/>

+      <details key="line" value="97"/>

+    </eAnnotations>

+    <eAnnotations source="positions.252" references="/0/generateComponent/%.5/%/%/%/%.1/%">

+      <details key="start" value="4590"/>

+      <details key="end" value="4978"/>

+      <details key="line" value="98"/>

+    </eAnnotations>

+    <eAnnotations source="positions.253" references="/0/generateComponent/%.5/%/%/%/%.1/%/%">

+      <details key="start" value="4677"/>

+      <details key="end" value="4968"/>

+      <details key="line" value="99"/>

+    </eAnnotations>

+    <eAnnotations source="positions.254" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%">

+      <details key="start" value="4729"/>

+      <details key="end" value="4958"/>

+      <details key="line" value="100"/>

+    </eAnnotations>

+    <eAnnotations source="positions.255" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%">

+      <details key="start" value="4769"/>

+      <details key="end" value="4949"/>

+      <details key="line" value="101"/>

+    </eAnnotations>

+    <eAnnotations source="positions.256" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%">

+      <details key="start" value="4821"/>

+      <details key="end" value="4822"/>

+      <details key="line" value="102"/>

+    </eAnnotations>

+    <eAnnotations source="positions.257" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.1">

+      <details key="start" value="4823"/>

+      <details key="end" value="4850"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.258" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.1/%">

+      <details key="start" value="4823"/>

+      <details key="end" value="4840"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.259" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.1/%/proreq">

+      <details key="start" value="4823"/>

+      <details key="end" value="4829"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.260" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.2">

+      <details key="start" value="4852"/>

+      <details key="end" value="4868"/>

+      <details key="line" value="102"/>

+    </eAnnotations>

+    <eAnnotations source="positions.261" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.3">

+      <details key="start" value="4869"/>

+      <details key="end" value="4895"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.262" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.3/op">

+      <details key="start" value="4886"/>

+      <details key="end" value="4888"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.263" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.3/port">

+      <details key="start" value="4890"/>

+      <details key="end" value="4894"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.264" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.4">

+      <details key="start" value="4897"/>

+      <details key="end" value="4899"/>

+      <details key="line" value="102"/>

+    </eAnnotations>

+    <eAnnotations source="positions.265" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.5">

+      <details key="start" value="4900"/>

+      <details key="end" value="4916"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.266" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.5/op">

+      <details key="start" value="4913"/>

+      <details key="end" value="4915"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.267" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.6">

+      <details key="start" value="4918"/>

+      <details key="end" value="4922"/>

+      <details key="line" value="102"/>

+    </eAnnotations>

+    <eAnnotations source="positions.268" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.7">

+      <details key="start" value="4923"/>

+      <details key="end" value="4936"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.269" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.7/op">

+      <details key="start" value="4933"/>

+      <details key="end" value="4935"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.270" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.8">

+      <details key="start" value="4938"/>

+      <details key="end" value="4941"/>

+      <details key="line" value="102"/>

+    </eAnnotations>

+    <eAnnotations source="positions.271" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/op">

+      <details key="start" value="4775"/>

+      <details key="end" value="4789"/>

+      <details key="line" value="101"/>

+    </eAnnotations>

+    <eAnnotations source="positions.272" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.9">

+      <details key="start" value="4792"/>

+      <details key="end" value="4817"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.273" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%/%.9/interface">

+      <details key="start" value="4792"/>

+      <details key="end" value="4801"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.274" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%.1">

+      <details key="start" value="4733"/>

+      <details key="end" value="4764"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.275" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%.1/interface">

+      <details key="start" value="4734"/>

+      <details key="end" value="4743"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.276" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%.1/%">

+      <details key="start" value="4747"/>

+      <details key="end" value="4763"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.277" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/%/%.1/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.278" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/interface">

+      <details key="start" value="4682"/>

+      <details key="end" value="4724"/>

+      <details key="line" value="99"/>

+    </eAnnotations>

+    <eAnnotations source="positions.279" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/interface/%">

+      <details key="start" value="4707"/>

+      <details key="end" value="4725"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.280" references="/0/generateComponent/%.5/%/%/%/%.1/%/%/interface/%/port">

+      <details key="start" value="4720"/>

+      <details key="end" value="4724"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.281" references="/0/generateComponent/%.5/%/%/%/%.1/%/proreq">

+      <details key="start" value="4595"/>

+      <details key="end" value="4671"/>

+      <details key="line" value="98"/>

+    </eAnnotations>

+    <eAnnotations source="positions.282" references="/0/generateComponent/%.5/%/%/%/%.1/%/proreq/%">

+      <details key="start" value="4614"/>

+      <details key="end" value="4672"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.283" references="/0/generateComponent/%.5/%/%/%/%.1/%/proreq/%/port">

+      <details key="start" value="4614"/>

+      <details key="end" value="4618"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.284" references="/0/generateComponent/%.5/%/%/%/%.1/%/proreq/%/%">

+      <details key="start" value="4628"/>

+      <details key="end" value="4663"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.285" references="/0/generateComponent/%.5/%/%/%/%.1/%/proreq/%/%/port">

+      <details key="start" value="4628"/>

+      <details key="end" value="4632"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.286" references="/0/generateComponent/%.5/%/%/%/%.1/%/proreq/%/%/CSPortQN">

+      <details key="start" value="4654"/>

+      <details key="end" value="4662"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.287" references="/0/generateComponent/%.5/%/%/%/%.1/%/proreq/%/%.1">

+      <details key="start" value="4665"/>

+      <details key="end" value="4671"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.288" references="/0/generateComponent/%.5/%/%/%/%.1/%.1">

+      <details key="start" value="4536"/>

+      <details key="end" value="4585"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.289" references="/0/generateComponent/%.5/%/%/%/%.1/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.290" references="/0/generateComponent/%.5/%/%/%/%.1/%.1/%/%/%">

+      <details key="start" value="4537"/>

+      <details key="end" value="4572"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.291" references="/0/generateComponent/%.5/%/%/%/%.1/%.1/%/%/%/port">

+      <details key="start" value="4537"/>

+      <details key="end" value="4541"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.292" references="/0/generateComponent/%.5/%/%/%/%.1/%.1/%/%/%/CSPortQN">

+      <details key="start" value="4563"/>

+      <details key="end" value="4571"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.293" references="/0/generateComponent/%.5/%/%/%/port">

+      <details key="start" value="3864"/>

+      <details key="end" value="3898"/>

+      <details key="line" value="86"/>

+    </eAnnotations>

+    <eAnnotations source="positions.294" references="/0/generateComponent/%.5/%/%/%/port/%">

+      <details key="start" value="3879"/>

+      <details key="end" value="3899"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.295" references="/0/generateComponent/%.5/%/%/%/port/%/prop">

+      <details key="start" value="3879"/>

+      <details key="end" value="3883"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.296" references="/0/generateComponent/%.5/%/%/%/port/%/%">

+      <details key="start" value="3894"/>

+      <details key="end" value="3898"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.297" references="/0/generateComponent/%.5/%/%/%.1">

+      <details key="start" value="3831"/>

+      <details key="end" value="3855"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.298" references="/0/generateComponent/%.5/%/%/%.1/prop">

+      <details key="start" value="3832"/>

+      <details key="end" value="3836"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.299" references="/0/generateComponent/%.5/%/%/%.1/%">

+      <details key="start" value="3849"/>

+      <details key="end" value="3853"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.300" references="/0/generateComponent/%.5/%/%/%.2">

+      <details key="start" value="4999"/>

+      <details key="end" value="5213"/>

+      <details key="line" value="109"/>

+    </eAnnotations>

+    <eAnnotations source="positions.301" references="/0/generateComponent/%.5/%/%/%.2/%">

+      <details key="start" value="5120"/>

+      <details key="end" value="5131"/>

+      <details key="line" value="110"/>

+    </eAnnotations>

+    <eAnnotations source="positions.302" references="/0/generateComponent/%.5/%/%/%.2/%.1">

+      <details key="start" value="5132"/>

+      <details key="end" value="5141"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.303" references="/0/generateComponent/%.5/%/%/%.2/%.1/prop">

+      <details key="start" value="5132"/>

+      <details key="end" value="5136"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.304" references="/0/generateComponent/%.5/%/%/%.2/%.2">

+      <details key="start" value="5143"/>

+      <details key="end" value="5146"/>

+      <details key="line" value="110"/>

+    </eAnnotations>

+    <eAnnotations source="positions.305" references="/0/generateComponent/%.5/%/%/%.2/%.3">

+      <details key="start" value="5146"/>

+      <details key="end" value="5210"/>

+      <details key="line" value="110"/>

+    </eAnnotations>

+    <eAnnotations source="positions.306" references="/0/generateComponent/%.5/%/%/%.2/%.3/%">

+      <details key="start" value="5184"/>

+      <details key="end" value="5202"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.307" references="/0/generateComponent/%.5/%/%/%.2/%.3/%/%">

+      <details key="start" value="5192"/>

+      <details key="end" value="5201"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.308" references="/0/generateComponent/%.5/%/%/%.2/%.3/%/%/prop">

+      <details key="start" value="5192"/>

+      <details key="end" value="5196"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.309" references="/0/generateComponent/%.5/%/%/%.2/%.3/%.1">

+      <details key="start" value="5204"/>

+      <details key="end" value="5205"/>

+      <details key="line" value="110"/>

+    </eAnnotations>

+    <eAnnotations source="positions.310" references="/0/generateComponent/%.5/%/%/%.2/%.3/%.2">

+      <details key="start" value="5150"/>

+      <details key="end" value="5182"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.311" references="/0/generateComponent/%.5/%/%/%.2/%.3/%.2/%">

+      <details key="start" value="5155"/>

+      <details key="end" value="5181"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.312" references="/0/generateComponent/%.5/%/%/%.2/%.3/%.2/%/%">

+      <details key="start" value="5155"/>

+      <details key="end" value="5164"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.313" references="/0/generateComponent/%.5/%/%/%.2/%.3/%.2/%/%/prop">

+      <details key="start" value="5155"/>

+      <details key="end" value="5159"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.314" references="/0/generateComponent/%.5/%/%/%.2/%.4">

+      <details key="start" value="5210"/>

+      <details key="end" value="5212"/>

+      <details key="line" value="111"/>

+    </eAnnotations>

+    <eAnnotations source="positions.315" references="/0/generateComponent/%.5/%/%/%.2/%.5">

+      <details key="start" value="5007"/>

+      <details key="end" value="5117"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.316" references="/0/generateComponent/%.5/%/%/%.2/%.5/%">

+      <details key="start" value="5008"/>

+      <details key="end" value="5075"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.317" references="/0/generateComponent/%.5/%/%/%.2/%.5/%/%">

+      <details key="start" value="5008"/>

+      <details key="end" value="5038"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.318" references="/0/generateComponent/%.5/%/%/%.2/%.5/%/%/%">

+      <details key="start" value="5012"/>

+      <details key="end" value="5038"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.319" references="/0/generateComponent/%.5/%/%/%.2/%.5/%/%/%/%">

+      <details key="start" value="5012"/>

+      <details key="end" value="5021"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.320" references="/0/generateComponent/%.5/%/%/%.2/%.5/%/%/%/%/prop">

+      <details key="start" value="5012"/>

+      <details key="end" value="5016"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.321" references="/0/generateComponent/%.5/%/%/%.2/%.5/%/%.1">

+      <details key="start" value="5043"/>

+      <details key="end" value="5075"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.322" references="/0/generateComponent/%.5/%/%/%.2/%.5/%/%.1/%">

+      <details key="start" value="5047"/>

+      <details key="end" value="5075"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.323" references="/0/generateComponent/%.5/%/%/%.2/%.5/%/%.1/%/%">

+      <details key="start" value="5047"/>

+      <details key="end" value="5056"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.324" references="/0/generateComponent/%.5/%/%/%.2/%.5/%/%.1/%/%/prop">

+      <details key="start" value="5047"/>

+      <details key="end" value="5051"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.325" references="/0/generateComponent/%.5/%/%/%.2/%.5/%/%.1/%/%.1">

+      <details key="start" value="5069"/>

+      <details key="end" value="5074"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.326" references="/0/generateComponent/%.5/%/%/%.2/%.5/%.1">

+      <details key="start" value="5080"/>

+      <details key="end" value="5116"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.327" references="/0/generateComponent/%.5/%/%/%.2/%.5/%.1/%">

+      <details key="start" value="5084"/>

+      <details key="end" value="5116"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.328" references="/0/generateComponent/%.5/%/%/%.2/%.5/%.1/%/%">

+      <details key="start" value="5084"/>

+      <details key="end" value="5093"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.329" references="/0/generateComponent/%.5/%/%/%.2/%.5/%.1/%/%/prop">

+      <details key="start" value="5084"/>

+      <details key="end" value="5088"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.330" references="/0/generateComponent/%.5/%/%/%.2/%.5/%.1/%/%.1">

+      <details key="start" value="5106"/>

+      <details key="end" value="5115"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.331" references="/0/generateComponent/%.5/%/prop">

+      <details key="start" value="3799"/>

+      <details key="end" value="3814"/>

+      <details key="line" value="84"/>

+    </eAnnotations>

+    <eAnnotations source="positions.332" references="/0/generateComponent/%.5/%/props">

+      <details key="start" value="3817"/>

+      <details key="end" value="3822"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.333" references="/0/generateComponent/%.5/%.1">

+      <details key="start" value="5230"/>

+      <details key="end" value="5609"/>

+      <details key="line" value="113"/>

+    </eAnnotations>

+    <eAnnotations source="positions.334" references="/0/generateComponent/%.5/%.1/%">

+      <details key="start" value="5370"/>

+      <details key="end" value="5600"/>

+      <details key="line" value="114"/>

+    </eAnnotations>

+    <eAnnotations source="positions.335" references="/0/generateComponent/%.5/%.1/%/%">

+      <details key="start" value="5414"/>

+      <details key="end" value="5591"/>

+      <details key="line" value="115"/>

+    </eAnnotations>

+    <eAnnotations source="positions.336" references="/0/generateComponent/%.5/%.1/%/%/%">

+      <details key="start" value="5472"/>

+      <details key="end" value="5485"/>

+      <details key="line" value="116"/>

+    </eAnnotations>

+    <eAnnotations source="positions.337" references="/0/generateComponent/%.5/%.1/%/%/%.1">

+      <details key="start" value="5486"/>

+      <details key="end" value="5500"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.338" references="/0/generateComponent/%.5/%.1/%/%/%.1/contrProp">

+      <details key="start" value="5486"/>

+      <details key="end" value="5495"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.339" references="/0/generateComponent/%.5/%.1/%/%/%.2">

+      <details key="start" value="5502"/>

+      <details key="end" value="5516"/>

+      <details key="line" value="118"/>

+    </eAnnotations>

+    <eAnnotations source="positions.340" references="/0/generateComponent/%.5/%.1/%/%/%.3">

+      <details key="start" value="5517"/>

+      <details key="end" value="5536"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.341" references="/0/generateComponent/%.5/%.1/%/%/%.3/contract">

+      <details key="start" value="5527"/>

+      <details key="end" value="5535"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.342" references="/0/generateComponent/%.5/%.1/%/%/%.4">

+      <details key="start" value="5538"/>

+      <details key="end" value="5556"/>

+      <details key="line" value="119"/>

+    </eAnnotations>

+    <eAnnotations source="positions.343" references="/0/generateComponent/%.5/%.1/%/%/%.5">

+      <details key="start" value="5557"/>

+      <details key="end" value="5579"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.344" references="/0/generateComponent/%.5/%.1/%/%/%.5/contract">

+      <details key="start" value="5570"/>

+      <details key="end" value="5578"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.345" references="/0/generateComponent/%.5/%.1/%/%/%.6">

+      <details key="start" value="5581"/>

+      <details key="end" value="5584"/>

+      <details key="line" value="121"/>

+    </eAnnotations>

+    <eAnnotations source="positions.346" references="/0/generateComponent/%.5/%.1/%/%/contract">

+      <details key="start" value="5419"/>

+      <details key="end" value="5469"/>

+      <details key="line" value="115"/>

+    </eAnnotations>

+    <eAnnotations source="positions.347" references="/0/generateComponent/%.5/%.1/%/%/contract/%">

+      <details key="start" value="5439"/>

+      <details key="end" value="5470"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.348" references="/0/generateComponent/%.5/%.1/%/%/contract/%/%">

+      <details key="start" value="5439"/>

+      <details key="end" value="5453"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.349" references="/0/generateComponent/%.5/%.1/%/%/contract/%/%/contrProp">

+      <details key="start" value="5439"/>

+      <details key="end" value="5448"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.350" references="/0/generateComponent/%.5/%.1/%/%/contract/%/%.1">

+      <details key="start" value="5464"/>

+      <details key="end" value="5469"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.351" references="/0/generateComponent/%.5/%.1/%/contrProp">

+      <details key="start" value="5376"/>

+      <details key="end" value="5396"/>

+      <details key="line" value="114"/>

+    </eAnnotations>

+    <eAnnotations source="positions.352" references="/0/generateComponent/%.5/%.1/%/contrProps">

+      <details key="start" value="5399"/>

+      <details key="end" value="5409"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.353" references="/0/generateComponent/%.5/%.1/contrProps">

+      <details key="start" value="5235"/>

+      <details key="end" value="5366"/>

+      <details key="line" value="113"/>

+    </eAnnotations>

+    <eAnnotations source="positions.354" references="/0/generateComponent/%.5/%.1/contrProps/select">

+      <details key="start" value="5272"/>

+      <details key="end" value="5367"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.355" references="/0/generateComponent/%.5/%.1/contrProps/select/%">

+      <details key="start" value="5272"/>

+      <details key="end" value="5292"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.356" references="/0/generateComponent/%.5/%.1/contrProps/select/%/block">

+      <details key="start" value="5272"/>

+      <details key="end" value="5277"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.357" references="/0/generateComponent/%.5/%.1/contrProps/select/%.1">

+      <details key="start" value="5316"/>

+      <details key="end" value="5366"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.358" references="/0/generateComponent/%.5/%.1/contrProps/select/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.359" references="/0/generateComponent/%.5/%.1/contrProps/select/%.1/%/%/%">

+      <details key="start" value="5316"/>

+      <details key="end" value="5354"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.360" references="/0/generateComponent/%.5/%.1/contrProps/select/%.1/%/%/%/p">

+      <details key="start" value="5316"/>

+      <details key="end" value="5317"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.361" references="/0/generateComponent/%.5/%.1/contrProps/select/%.1/%/%/%/ContractPropQN">

+      <details key="start" value="5339"/>

+      <details key="end" value="5353"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.362" references="/0/generateComponent/%.5/%.1/contrProps/select/p">

+      <details key="start" value="5301"/>

+      <details key="end" value="5313"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.363" references="/0/generateComponent/%.5/%.2">

+      <details key="start" value="5612"/>

+      <details key="end" value="6187"/>

+      <details key="line" value="125"/>

+    </eAnnotations>

+    <eAnnotations source="positions.364" references="/0/generateComponent/%.5/%.2/%">

+      <details key="start" value="5628"/>

+      <details key="end" value="5630"/>

+      <details key="line" value="126"/>

+    </eAnnotations>

+    <eAnnotations source="positions.365" references="/0/generateComponent/%.5/%.2/%.1">

+      <details key="start" value="5631"/>

+      <details key="end" value="6179"/>

+      <details key="line" value="127"/>

+    </eAnnotations>

+    <eAnnotations source="positions.366" references="/0/generateComponent/%.5/%.2/%.1/%">

+      <details key="start" value="5793"/>

+      <details key="end" value="6170"/>

+      <details key="line" value="128"/>

+    </eAnnotations>

+    <eAnnotations source="positions.367" references="/0/generateComponent/%.5/%.2/%.1/%/%">

+      <details key="start" value="5824"/>

+      <details key="end" value="5834"/>

+      <details key="line" value="129"/>

+    </eAnnotations>

+    <eAnnotations source="positions.368" references="/0/generateComponent/%.5/%.2/%.1/%/%.1">

+      <details key="start" value="5835"/>

+      <details key="end" value="5845"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.369" references="/0/generateComponent/%.5/%.2/%.1/%/%.1/block">

+      <details key="start" value="5835"/>

+      <details key="end" value="5840"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.370" references="/0/generateComponent/%.5/%.2/%.1/%/%.2">

+      <details key="start" value="5847"/>

+      <details key="end" value="5890"/>

+      <details key="line" value="129"/>

+    </eAnnotations>

+    <eAnnotations source="positions.371" references="/0/generateComponent/%.5/%.2/%.1/%/%.3">

+      <details key="start" value="5890"/>

+      <details key="end" value="6161"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.372" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%">

+      <details key="start" value="5951"/>

+      <details key="end" value="6155"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.373" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%">

+      <details key="start" value="6007"/>

+      <details key="end" value="6081"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.374" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%/%">

+      <details key="start" value="6042"/>

+      <details key="end" value="6044"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.375" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%/%.1">

+      <details key="start" value="6045"/>

+      <details key="end" value="6064"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.376" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%/%.1/contract">

+      <details key="start" value="6055"/>

+      <details key="end" value="6063"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.377" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%/%.2">

+      <details key="start" value="6066"/>

+      <details key="end" value="6076"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.378" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%/%.3">

+      <details key="start" value="6011"/>

+      <details key="end" value="6041"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.379" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%/%.3/%">

+      <details key="start" value="6015"/>

+      <details key="end" value="6041"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.380" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%/%.3/%/contract">

+      <details key="start" value="6032"/>

+      <details key="end" value="6040"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.381" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%.1">

+      <details key="start" value="6081"/>

+      <details key="end" value="6082"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.382" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%.2">

+      <details key="start" value="6083"/>

+      <details key="end" value="6105"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.383" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%.2/contract">

+      <details key="start" value="6096"/>

+      <details key="end" value="6104"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.384" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%.3">

+      <details key="start" value="6107"/>

+      <details key="end" value="6108"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.385" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%.4">

+      <details key="start" value="6108"/>

+      <details key="end" value="6149"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.386" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%.4/%">

+      <details key="start" value="6143"/>

+      <details key="end" value="6144"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.387" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%.4/%.1">

+      <details key="start" value="6112"/>

+      <details key="end" value="6142"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.388" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%.4/%.1/%">

+      <details key="start" value="6116"/>

+      <details key="end" value="6142"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.389" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/%.4/%.1/%/contract">

+      <details key="start" value="6133"/>

+      <details key="end" value="6141"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.390" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/contract">

+      <details key="start" value="5956"/>

+      <details key="end" value="6006"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.391" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/contract/%">

+      <details key="start" value="5976"/>

+      <details key="end" value="6007"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.392" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/contract/%/%">

+      <details key="start" value="5976"/>

+      <details key="end" value="5990"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.393" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/contract/%/%/contrProp">

+      <details key="start" value="5976"/>

+      <details key="end" value="5985"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.394" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%/contract/%/%.1">

+      <details key="start" value="6001"/>

+      <details key="end" value="6006"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.395" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/contrProp">

+      <details key="start" value="5896"/>

+      <details key="end" value="5916"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.396" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/contrProps">

+      <details key="start" value="5919"/>

+      <details key="end" value="5929"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.397" references="/0/generateComponent/%.5/%.2/%.1/%/%.3/%.1">

+      <details key="start" value="5942"/>

+      <details key="end" value="5949"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.398" references="/0/generateComponent/%.5/%.2/%.1/%/%.4">

+      <details key="start" value="6161"/>

+      <details key="end" value="6164"/>

+      <details key="line" value="133"/>

+    </eAnnotations>

+    <eAnnotations source="positions.399" references="/0/generateComponent/%.5/%.2/%.1/%/%.5">

+      <details key="start" value="5797"/>

+      <details key="end" value="5821"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.400" references="/0/generateComponent/%.5/%.2/%.1/%/%.5/%">

+      <details key="start" value="5798"/>

+      <details key="end" value="5816"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.401" references="/0/generateComponent/%.5/%.2/%.1/%/%.5/%/contrProps">

+      <details key="start" value="5798"/>

+      <details key="end" value="5808"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.402" references="/0/generateComponent/%.5/%.2/%.1/%/%.5/%.1">

+      <details key="start" value="5819"/>

+      <details key="end" value="5820"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.403" references="/0/generateComponent/%.5/%.2/%.1/contrProps">

+      <details key="start" value="5636"/>

+      <details key="end" value="5789"/>

+      <details key="line" value="127"/>

+    </eAnnotations>

+    <eAnnotations source="positions.404" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select">

+      <details key="start" value="5673"/>

+      <details key="end" value="5790"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.405" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%">

+      <details key="start" value="5673"/>

+      <details key="end" value="5693"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.406" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%/block">

+      <details key="start" value="5673"/>

+      <details key="end" value="5678"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.407" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%.1">

+      <details key="start" value="5717"/>

+      <details key="end" value="5789"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.408" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%.1/%">

+      <details key="start" value="5717"/>

+      <details key="end" value="5767"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.409" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%.1/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.410" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%.1/%/%/%/%">

+      <details key="start" value="5717"/>

+      <details key="end" value="5755"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.411" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%.1/%/%/%/%/p">

+      <details key="start" value="5717"/>

+      <details key="end" value="5718"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.412" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%.1/%/%/%/%/ContractPropQN">

+      <details key="start" value="5740"/>

+      <details key="end" value="5754"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.413" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%.1/%.1">

+      <details key="start" value="5772"/>

+      <details key="end" value="5789"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.414" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/%.1/%.1/p">

+      <details key="start" value="5787"/>

+      <details key="end" value="5788"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.415" references="/0/generateComponent/%.5/%.2/%.1/contrProps/select/p">

+      <details key="start" value="5702"/>

+      <details key="end" value="5714"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.416" references="/0/generateComponent/%.5/%.2/checkWeak">

+      <details key="start" value="5616"/>

+      <details key="end" value="5625"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.417" references="/0/generateComponent/%.5/%.3">

+      <details key="start" value="6189"/>

+      <details key="end" value="6206"/>

+      <details key="line" value="137"/>

+    </eAnnotations>

+    <eAnnotations source="positions.418" references="/0/generateComponent/%.5/%.4">

+      <details key="start" value="6207"/>

+      <details key="end" value="10863"/>

+      <details key="line" value="140"/>

+    </eAnnotations>

+    <eAnnotations source="positions.419" references="/0/generateComponent/%.5/%.4/%">

+      <details key="start" value="6285"/>

+      <details key="end" value="6397"/>

+      <details key="line" value="141"/>

+    </eAnnotations>

+    <eAnnotations source="positions.420" references="/0/generateComponent/%.5/%.4/%/%">

+      <details key="start" value="6320"/>

+      <details key="end" value="6388"/>

+      <details key="line" value="142"/>

+    </eAnnotations>

+    <eAnnotations source="positions.421" references="/0/generateComponent/%.5/%.4/%/%/%">

+      <details key="start" value="6341"/>

+      <details key="end" value="6346"/>

+      <details key="line" value="143"/>

+    </eAnnotations>

+    <eAnnotations source="positions.422" references="/0/generateComponent/%.5/%.4/%/%/%.1">

+      <details key="start" value="6347"/>

+      <details key="end" value="6356"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.423" references="/0/generateComponent/%.5/%.4/%/%/%.1/part">

+      <details key="start" value="6347"/>

+      <details key="end" value="6351"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.424" references="/0/generateComponent/%.5/%.4/%/%/%.2">

+      <details key="start" value="6358"/>

+      <details key="end" value="6361"/>

+      <details key="line" value="143"/>

+    </eAnnotations>

+    <eAnnotations source="positions.425" references="/0/generateComponent/%.5/%.4/%/%/%.3">

+      <details key="start" value="6362"/>

+      <details key="end" value="6376"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.426" references="/0/generateComponent/%.5/%.4/%/%/%.3/%">

+      <details key="start" value="6362"/>

+      <details key="end" value="6371"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.427" references="/0/generateComponent/%.5/%.4/%/%/%.3/%/part">

+      <details key="start" value="6362"/>

+      <details key="end" value="6366"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.428" references="/0/generateComponent/%.5/%.4/%/%/%.4">

+      <details key="start" value="6378"/>

+      <details key="end" value="6381"/>

+      <details key="line" value="143"/>

+    </eAnnotations>

+    <eAnnotations source="positions.429" references="/0/generateComponent/%.5/%.4/%/%/%.5">

+      <details key="start" value="6324"/>

+      <details key="end" value="6338"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.430" references="/0/generateComponent/%.5/%.4/%/%/%.5/part">

+      <details key="start" value="6332"/>

+      <details key="end" value="6336"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.431" references="/0/generateComponent/%.5/%.4/%/part">

+      <details key="start" value="6291"/>

+      <details key="end" value="6306"/>

+      <details key="line" value="141"/>

+    </eAnnotations>

+    <eAnnotations source="positions.432" references="/0/generateComponent/%.5/%.4/%/parts">

+      <details key="start" value="6309"/>

+      <details key="end" value="6314"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.433" references="/0/generateComponent/%.5/%.4/%.1">

+      <details key="start" value="6399"/>

+      <details key="end" value="6401"/>

+      <details key="line" value="146"/>

+    </eAnnotations>

+    <eAnnotations source="positions.434" references="/0/generateComponent/%.5/%.4/%.2">

+      <details key="start" value="6402"/>

+      <details key="end" value="7791"/>

+      <details key="line" value="147"/>

+    </eAnnotations>

+    <eAnnotations source="positions.435" references="/0/generateComponent/%.5/%.4/%.2/%">

+      <details key="start" value="6462"/>

+      <details key="end" value="7781"/>

+      <details key="line" value="148"/>

+    </eAnnotations>

+    <eAnnotations source="positions.436" references="/0/generateComponent/%.5/%.4/%.2/%/%">

+      <details key="start" value="6503"/>

+      <details key="end" value="7772"/>

+      <details key="line" value="149"/>

+    </eAnnotations>

+    <eAnnotations source="positions.437" references="/0/generateComponent/%.5/%.4/%.2/%/%/%">

+      <details key="start" value="6563"/>

+      <details key="end" value="7647"/>

+      <details key="line" value="151"/>

+    </eAnnotations>

+    <eAnnotations source="positions.438" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%">

+      <details key="start" value="6589"/>

+      <details key="end" value="7108"/>

+      <details key="line" value="152"/>

+    </eAnnotations>

+    <eAnnotations source="positions.439" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%">

+      <details key="start" value="6645"/>

+      <details key="end" value="6657"/>

+      <details key="line" value="153"/>

+    </eAnnotations>

+    <eAnnotations source="positions.440" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.1">

+      <details key="start" value="6658"/>

+      <details key="end" value="6685"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.441" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.1/%">

+      <details key="start" value="6658"/>

+      <details key="end" value="6680"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.442" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.1/%/%">

+      <details key="start" value="6658"/>

+      <details key="end" value="6675"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.443" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.1/%/%/%">

+      <details key="start" value="6658"/>

+      <details key="end" value="6666"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.444" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.1/%/%/%/conn">

+      <details key="start" value="6658"/>

+      <details key="end" value="6662"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.445" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.2">

+      <details key="start" value="6687"/>

+      <details key="end" value="6691"/>

+      <details key="line" value="153"/>

+    </eAnnotations>

+    <eAnnotations source="positions.446" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.3">

+      <details key="start" value="6692"/>

+      <details key="end" value="6726"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.447" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.3/%">

+      <details key="start" value="6692"/>

+      <details key="end" value="6721"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.448" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.3/%/%">

+      <details key="start" value="6692"/>

+      <details key="end" value="6708"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.449" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.3/%/%/%">

+      <details key="start" value="6692"/>

+      <details key="end" value="6700"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.450" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.3/%/%/%/conn">

+      <details key="start" value="6692"/>

+      <details key="end" value="6696"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.451" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.4">

+      <details key="start" value="6728"/>

+      <details key="end" value="6729"/>

+      <details key="line" value="153"/>

+    </eAnnotations>

+    <eAnnotations source="positions.452" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.5">

+      <details key="start" value="6730"/>

+      <details key="end" value="6756"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.453" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.5/%">

+      <details key="start" value="6730"/>

+      <details key="end" value="6751"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.454" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.5/%/%">

+      <details key="start" value="6730"/>

+      <details key="end" value="6746"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.455" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.5/%/%/%">

+      <details key="start" value="6730"/>

+      <details key="end" value="6738"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.456" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.5/%/%/%/conn">

+      <details key="start" value="6730"/>

+      <details key="end" value="6734"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.457" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.6">

+      <details key="start" value="6758"/>

+      <details key="end" value="6761"/>

+      <details key="line" value="153"/>

+    </eAnnotations>

+    <eAnnotations source="positions.458" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.7">

+      <details key="start" value="6593"/>

+      <details key="end" value="6642"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.459" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.7/%">

+      <details key="start" value="6594"/>

+      <details key="end" value="6624"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.460" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.7/%/%">

+      <details key="start" value="6594"/>

+      <details key="end" value="6611"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.461" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.7/%/%/%">

+      <details key="start" value="6594"/>

+      <details key="end" value="6602"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.462" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.7/%/%/%/conn">

+      <details key="start" value="6594"/>

+      <details key="end" value="6598"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.463" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8">

+      <details key="start" value="6939"/>

+      <details key="end" value="7103"/>

+      <details key="line" value="156"/>

+    </eAnnotations>

+    <eAnnotations source="positions.464" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%">

+      <details key="start" value="6947"/>

+      <details key="end" value="6959"/>

+      <details key="line" value="157"/>

+    </eAnnotations>

+    <eAnnotations source="positions.465" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.1">

+      <details key="start" value="6960"/>

+      <details key="end" value="6995"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.466" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.1/%">

+      <details key="start" value="6960"/>

+      <details key="end" value="6990"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.467" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.1/%/%">

+      <details key="start" value="6960"/>

+      <details key="end" value="6977"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.468" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.1/%/%/%">

+      <details key="start" value="6960"/>

+      <details key="end" value="6968"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.469" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.1/%/%/%/conn">

+      <details key="start" value="6960"/>

+      <details key="end" value="6964"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.470" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.2">

+      <details key="start" value="6997"/>

+      <details key="end" value="6998"/>

+      <details key="line" value="157"/>

+    </eAnnotations>

+    <eAnnotations source="positions.471" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.3">

+      <details key="start" value="6999"/>

+      <details key="end" value="7026"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.472" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.3/%">

+      <details key="start" value="6999"/>

+      <details key="end" value="7021"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.473" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.3/%/%">

+      <details key="start" value="6999"/>

+      <details key="end" value="7016"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.474" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.3/%/%/%">

+      <details key="start" value="6999"/>

+      <details key="end" value="7007"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.475" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.3/%/%/%/conn">

+      <details key="start" value="6999"/>

+      <details key="end" value="7003"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.476" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.4">

+      <details key="start" value="7028"/>

+      <details key="end" value="7032"/>

+      <details key="line" value="157"/>

+    </eAnnotations>

+    <eAnnotations source="positions.477" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.5">

+      <details key="start" value="7033"/>

+      <details key="end" value="7067"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.478" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.5/%">

+      <details key="start" value="7033"/>

+      <details key="end" value="7062"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.479" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.5/%/%">

+      <details key="start" value="7033"/>

+      <details key="end" value="7049"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.480" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.5/%/%/%">

+      <details key="start" value="7033"/>

+      <details key="end" value="7041"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.481" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.5/%/%/%/conn">

+      <details key="start" value="7033"/>

+      <details key="end" value="7037"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.482" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.6">

+      <details key="start" value="7069"/>

+      <details key="end" value="7070"/>

+      <details key="line" value="157"/>

+    </eAnnotations>

+    <eAnnotations source="positions.483" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.7">

+      <details key="start" value="7071"/>

+      <details key="end" value="7097"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.484" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.7/%">

+      <details key="start" value="7071"/>

+      <details key="end" value="7092"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.485" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.7/%/%">

+      <details key="start" value="7071"/>

+      <details key="end" value="7087"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.486" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.7/%/%/%">

+      <details key="start" value="7071"/>

+      <details key="end" value="7079"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.487" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.7/%/%/%/conn">

+      <details key="start" value="7071"/>

+      <details key="end" value="7075"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.488" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.8/%.8">

+      <details key="start" value="7099"/>

+      <details key="end" value="7102"/>

+      <details key="line" value="157"/>

+    </eAnnotations>

+    <eAnnotations source="positions.489" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9">

+      <details key="start" value="6762"/>

+      <details key="end" value="6939"/>

+      <details key="line" value="154"/>

+    </eAnnotations>

+    <eAnnotations source="positions.490" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%">

+      <details key="start" value="6821"/>

+      <details key="end" value="6833"/>

+      <details key="line" value="155"/>

+    </eAnnotations>

+    <eAnnotations source="positions.491" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.1">

+      <details key="start" value="6834"/>

+      <details key="end" value="6869"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.492" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.1/%">

+      <details key="start" value="6834"/>

+      <details key="end" value="6864"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.493" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.1/%/%">

+      <details key="start" value="6834"/>

+      <details key="end" value="6851"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.494" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.1/%/%/%">

+      <details key="start" value="6834"/>

+      <details key="end" value="6842"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.495" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.1/%/%/%/conn">

+      <details key="start" value="6834"/>

+      <details key="end" value="6838"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.496" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.2">

+      <details key="start" value="6871"/>

+      <details key="end" value="6872"/>

+      <details key="line" value="155"/>

+    </eAnnotations>

+    <eAnnotations source="positions.497" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.3">

+      <details key="start" value="6873"/>

+      <details key="end" value="6900"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.498" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.3/%">

+      <details key="start" value="6873"/>

+      <details key="end" value="6895"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.499" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.3/%/%">

+      <details key="start" value="6873"/>

+      <details key="end" value="6890"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.500" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.3/%/%/%">

+      <details key="start" value="6873"/>

+      <details key="end" value="6881"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.501" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.3/%/%/%/conn">

+      <details key="start" value="6873"/>

+      <details key="end" value="6877"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.502" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.4">

+      <details key="start" value="6902"/>

+      <details key="end" value="6906"/>

+      <details key="line" value="155"/>

+    </eAnnotations>

+    <eAnnotations source="positions.503" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.5">

+      <details key="start" value="6907"/>

+      <details key="end" value="6933"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.504" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.5/%">

+      <details key="start" value="6907"/>

+      <details key="end" value="6928"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.505" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.5/%/%">

+      <details key="start" value="6907"/>

+      <details key="end" value="6923"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.506" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.5/%/%/%">

+      <details key="start" value="6907"/>

+      <details key="end" value="6915"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.507" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.5/%/%/%/conn">

+      <details key="start" value="6907"/>

+      <details key="end" value="6911"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.508" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.6">

+      <details key="start" value="6935"/>

+      <details key="end" value="6938"/>

+      <details key="line" value="155"/>

+    </eAnnotations>

+    <eAnnotations source="positions.509" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.7">

+      <details key="start" value="6770"/>

+      <details key="end" value="6818"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.510" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.7/%">

+      <details key="start" value="6771"/>

+      <details key="end" value="6800"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.511" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.7/%/%">

+      <details key="start" value="6771"/>

+      <details key="end" value="6787"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.512" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.7/%/%/%">

+      <details key="start" value="6771"/>

+      <details key="end" value="6779"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.513" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%/%.9/%.7/%/%/%/conn">

+      <details key="start" value="6771"/>

+      <details key="end" value="6775"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.514" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.1">

+      <details key="start" value="6567"/>

+      <details key="end" value="6585"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.515" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.1/conn">

+      <details key="start" value="6579"/>

+      <details key="end" value="6583"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.516" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2">

+      <details key="start" value="7111"/>

+      <details key="end" value="7642"/>

+      <details key="line" value="159"/>

+    </eAnnotations>

+    <eAnnotations source="positions.517" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%">

+      <details key="start" value="7120"/>

+      <details key="end" value="7639"/>

+      <details key="line" value="160"/>

+    </eAnnotations>

+    <eAnnotations source="positions.518" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%">

+      <details key="start" value="7175"/>

+      <details key="end" value="7187"/>

+      <details key="line" value="161"/>

+    </eAnnotations>

+    <eAnnotations source="positions.519" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.1">

+      <details key="start" value="7188"/>

+      <details key="end" value="7214"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.520" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.1/%">

+      <details key="start" value="7188"/>

+      <details key="end" value="7209"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.521" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.1/%/%">

+      <details key="start" value="7188"/>

+      <details key="end" value="7204"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.522" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.1/%/%/%">

+      <details key="start" value="7188"/>

+      <details key="end" value="7196"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.523" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.1/%/%/%/conn">

+      <details key="start" value="7188"/>

+      <details key="end" value="7192"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.524" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.2">

+      <details key="start" value="7216"/>

+      <details key="end" value="7220"/>

+      <details key="line" value="161"/>

+    </eAnnotations>

+    <eAnnotations source="positions.525" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.3">

+      <details key="start" value="7221"/>

+      <details key="end" value="7256"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.526" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.3/%">

+      <details key="start" value="7221"/>

+      <details key="end" value="7251"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.527" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.3/%/%">

+      <details key="start" value="7221"/>

+      <details key="end" value="7238"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.528" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.3/%/%/%">

+      <details key="start" value="7221"/>

+      <details key="end" value="7229"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.529" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.3/%/%/%/conn">

+      <details key="start" value="7221"/>

+      <details key="end" value="7225"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.530" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.4">

+      <details key="start" value="7258"/>

+      <details key="end" value="7259"/>

+      <details key="line" value="161"/>

+    </eAnnotations>

+    <eAnnotations source="positions.531" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.5">

+      <details key="start" value="7260"/>

+      <details key="end" value="7287"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.532" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.5/%">

+      <details key="start" value="7260"/>

+      <details key="end" value="7282"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.533" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.5/%/%">

+      <details key="start" value="7260"/>

+      <details key="end" value="7277"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.534" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.5/%/%/%">

+      <details key="start" value="7260"/>

+      <details key="end" value="7268"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.535" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.5/%/%/%/conn">

+      <details key="start" value="7260"/>

+      <details key="end" value="7264"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.536" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.6">

+      <details key="start" value="7289"/>

+      <details key="end" value="7292"/>

+      <details key="line" value="161"/>

+    </eAnnotations>

+    <eAnnotations source="positions.537" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.7">

+      <details key="start" value="7124"/>

+      <details key="end" value="7172"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.538" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.7/%">

+      <details key="start" value="7125"/>

+      <details key="end" value="7154"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.539" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.7/%/%">

+      <details key="start" value="7125"/>

+      <details key="end" value="7141"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.540" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.7/%/%/%">

+      <details key="start" value="7125"/>

+      <details key="end" value="7133"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.541" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.7/%/%/%/conn">

+      <details key="start" value="7125"/>

+      <details key="end" value="7129"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.542" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8">

+      <details key="start" value="7470"/>

+      <details key="end" value="7634"/>

+      <details key="line" value="164"/>

+    </eAnnotations>

+    <eAnnotations source="positions.543" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%">

+      <details key="start" value="7478"/>

+      <details key="end" value="7490"/>

+      <details key="line" value="165"/>

+    </eAnnotations>

+    <eAnnotations source="positions.544" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.1">

+      <details key="start" value="7491"/>

+      <details key="end" value="7525"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.545" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.1/%">

+      <details key="start" value="7491"/>

+      <details key="end" value="7520"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.546" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.1/%/%">

+      <details key="start" value="7491"/>

+      <details key="end" value="7507"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.547" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.1/%/%/%">

+      <details key="start" value="7491"/>

+      <details key="end" value="7499"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.548" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.1/%/%/%/conn">

+      <details key="start" value="7491"/>

+      <details key="end" value="7495"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.549" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.2">

+      <details key="start" value="7527"/>

+      <details key="end" value="7528"/>

+      <details key="line" value="165"/>

+    </eAnnotations>

+    <eAnnotations source="positions.550" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.3">

+      <details key="start" value="7529"/>

+      <details key="end" value="7555"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.551" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.3/%">

+      <details key="start" value="7529"/>

+      <details key="end" value="7550"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.552" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.3/%/%">

+      <details key="start" value="7529"/>

+      <details key="end" value="7545"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.553" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.3/%/%/%">

+      <details key="start" value="7529"/>

+      <details key="end" value="7537"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.554" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.3/%/%/%/conn">

+      <details key="start" value="7529"/>

+      <details key="end" value="7533"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.555" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.4">

+      <details key="start" value="7557"/>

+      <details key="end" value="7561"/>

+      <details key="line" value="165"/>

+    </eAnnotations>

+    <eAnnotations source="positions.556" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.5">

+      <details key="start" value="7562"/>

+      <details key="end" value="7597"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.557" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.5/%">

+      <details key="start" value="7562"/>

+      <details key="end" value="7592"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.558" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.5/%/%">

+      <details key="start" value="7562"/>

+      <details key="end" value="7579"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.559" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.5/%/%/%">

+      <details key="start" value="7562"/>

+      <details key="end" value="7570"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.560" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.5/%/%/%/conn">

+      <details key="start" value="7562"/>

+      <details key="end" value="7566"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.561" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.6">

+      <details key="start" value="7599"/>

+      <details key="end" value="7600"/>

+      <details key="line" value="165"/>

+    </eAnnotations>

+    <eAnnotations source="positions.562" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.7">

+      <details key="start" value="7601"/>

+      <details key="end" value="7628"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.563" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.7/%">

+      <details key="start" value="7601"/>

+      <details key="end" value="7623"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.564" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.7/%/%">

+      <details key="start" value="7601"/>

+      <details key="end" value="7618"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.565" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.7/%/%/%">

+      <details key="start" value="7601"/>

+      <details key="end" value="7609"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.566" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.7/%/%/%/conn">

+      <details key="start" value="7601"/>

+      <details key="end" value="7605"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.567" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.8/%.8">

+      <details key="start" value="7630"/>

+      <details key="end" value="7633"/>

+      <details key="line" value="165"/>

+    </eAnnotations>

+    <eAnnotations source="positions.568" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9">

+      <details key="start" value="7293"/>

+      <details key="end" value="7470"/>

+      <details key="line" value="162"/>

+    </eAnnotations>

+    <eAnnotations source="positions.569" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%">

+      <details key="start" value="7353"/>

+      <details key="end" value="7365"/>

+      <details key="line" value="163"/>

+    </eAnnotations>

+    <eAnnotations source="positions.570" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.1">

+      <details key="start" value="7366"/>

+      <details key="end" value="7400"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.571" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.1/%">

+      <details key="start" value="7366"/>

+      <details key="end" value="7395"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.572" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.1/%/%">

+      <details key="start" value="7366"/>

+      <details key="end" value="7382"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.573" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.1/%/%/%">

+      <details key="start" value="7366"/>

+      <details key="end" value="7374"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.574" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.1/%/%/%/conn">

+      <details key="start" value="7366"/>

+      <details key="end" value="7370"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.575" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.2">

+      <details key="start" value="7402"/>

+      <details key="end" value="7403"/>

+      <details key="line" value="163"/>

+    </eAnnotations>

+    <eAnnotations source="positions.576" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.3">

+      <details key="start" value="7404"/>

+      <details key="end" value="7430"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.577" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.3/%">

+      <details key="start" value="7404"/>

+      <details key="end" value="7425"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.578" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.3/%/%">

+      <details key="start" value="7404"/>

+      <details key="end" value="7420"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.579" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.3/%/%/%">

+      <details key="start" value="7404"/>

+      <details key="end" value="7412"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.580" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.3/%/%/%/conn">

+      <details key="start" value="7404"/>

+      <details key="end" value="7408"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.581" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.4">

+      <details key="start" value="7432"/>

+      <details key="end" value="7436"/>

+      <details key="line" value="163"/>

+    </eAnnotations>

+    <eAnnotations source="positions.582" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.5">

+      <details key="start" value="7437"/>

+      <details key="end" value="7464"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.583" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.5/%">

+      <details key="start" value="7437"/>

+      <details key="end" value="7459"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.584" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.5/%/%">

+      <details key="start" value="7437"/>

+      <details key="end" value="7454"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.585" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.5/%/%/%">

+      <details key="start" value="7437"/>

+      <details key="end" value="7445"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.586" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.5/%/%/%/conn">

+      <details key="start" value="7437"/>

+      <details key="end" value="7441"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.587" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.6">

+      <details key="start" value="7466"/>

+      <details key="end" value="7469"/>

+      <details key="line" value="163"/>

+    </eAnnotations>

+    <eAnnotations source="positions.588" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.7">

+      <details key="start" value="7301"/>

+      <details key="end" value="7350"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.589" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.7/%">

+      <details key="start" value="7302"/>

+      <details key="end" value="7332"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.590" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.7/%/%">

+      <details key="start" value="7302"/>

+      <details key="end" value="7319"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.591" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.7/%/%/%">

+      <details key="start" value="7302"/>

+      <details key="end" value="7310"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.592" references="/0/generateComponent/%.5/%.4/%.2/%/%/%/%.2/%/%.9/%.7/%/%/%/conn">

+      <details key="start" value="7302"/>

+      <details key="end" value="7306"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.593" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.1">

+      <details key="start" value="6507"/>

+      <details key="end" value="6534"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.594" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.1/conn">

+      <details key="start" value="6528"/>

+      <details key="end" value="6532"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.595" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.2">

+      <details key="start" value="7650"/>

+      <details key="end" value="7767"/>

+      <details key="line" value="168"/>

+    </eAnnotations>

+    <eAnnotations source="positions.596" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.2/%">

+      <details key="start" value="7689"/>

+      <details key="end" value="7764"/>

+      <details key="line" value="170"/>

+    </eAnnotations>

+    <eAnnotations source="positions.597" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.2/%/%">

+      <details key="start" value="7723"/>

+      <details key="end" value="7724"/>

+      <details key="line" value="171"/>

+    </eAnnotations>

+    <eAnnotations source="positions.598" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.2/%/%.1">

+      <details key="start" value="7725"/>

+      <details key="end" value="7754"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.599" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.2/%/%.1/conn">

+      <details key="start" value="7749"/>

+      <details key="end" value="7753"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.600" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.2/%/%.2">

+      <details key="start" value="7756"/>

+      <details key="end" value="7758"/>

+      <details key="line" value="172"/>

+    </eAnnotations>

+    <eAnnotations source="positions.601" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.2/%/%.3">

+      <details key="start" value="7693"/>

+      <details key="end" value="7720"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.602" references="/0/generateComponent/%.5/%.4/%.2/%/%/%.2/%/%.3/conn">

+      <details key="start" value="7714"/>

+      <details key="end" value="7718"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.603" references="/0/generateComponent/%.5/%.4/%.2/%/conn">

+      <details key="start" value="6468"/>

+      <details key="end" value="6484"/>

+      <details key="line" value="148"/>

+    </eAnnotations>

+    <eAnnotations source="positions.604" references="/0/generateComponent/%.5/%.4/%.2/%/connections">

+      <details key="start" value="6487"/>

+      <details key="end" value="6498"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.605" references="/0/generateComponent/%.5/%.4/%.2/connections">

+      <details key="start" value="6407"/>

+      <details key="end" value="6458"/>

+      <details key="line" value="147"/>

+    </eAnnotations>

+    <eAnnotations source="positions.606" references="/0/generateComponent/%.5/%.4/%.2/connections/%">

+      <details key="start" value="6439"/>

+      <details key="end" value="6459"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.607" references="/0/generateComponent/%.5/%.4/%.2/connections/%/block">

+      <details key="start" value="6439"/>

+      <details key="end" value="6444"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.608" references="/0/generateComponent/%.5/%.4/%.3">

+      <details key="start" value="7793"/>

+      <details key="end" value="7795"/>

+      <details key="line" value="176"/>

+    </eAnnotations>

+    <eAnnotations source="positions.609" references="/0/generateComponent/%.5/%.4/%.4">

+      <details key="start" value="7796"/>

+      <details key="end" value="8421"/>

+      <details key="line" value="177"/>

+    </eAnnotations>

+    <eAnnotations source="positions.610" references="/0/generateComponent/%.5/%.4/%.4/%">

+      <details key="start" value="7925"/>

+      <details key="end" value="8409"/>

+      <details key="line" value="178"/>

+    </eAnnotations>

+    <eAnnotations source="positions.611" references="/0/generateComponent/%.5/%.4/%.4/%/%">

+      <details key="start" value="7964"/>

+      <details key="end" value="8397"/>

+      <details key="line" value="179"/>

+    </eAnnotations>

+    <eAnnotations source="positions.612" references="/0/generateComponent/%.5/%.4/%.4/%/%/%">

+      <details key="start" value="8116"/>

+      <details key="end" value="8386"/>

+      <details key="line" value="180"/>

+    </eAnnotations>

+    <eAnnotations source="positions.613" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%">

+      <details key="start" value="8219"/>

+      <details key="end" value="8374"/>

+      <details key="line" value="181"/>

+    </eAnnotations>

+    <eAnnotations source="positions.614" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/%">

+      <details key="start" value="8307"/>

+      <details key="end" value="8321"/>

+      <details key="line" value="181"/>

+    </eAnnotations>

+    <eAnnotations source="positions.615" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec">

+      <details key="start" value="8322"/>

+      <details key="end" value="8326"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.616" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/%.1">

+      <details key="start" value="8328"/>

+      <details key="end" value="8362"/>

+      <details key="line" value="182"/>

+    </eAnnotations>

+    <eAnnotations source="positions.617" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/%.1/%">

+      <details key="start" value="8356"/>

+      <details key="end" value="8357"/>

+      <details key="line" value="182"/>

+    </eAnnotations>

+    <eAnnotations source="positions.618" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/%.1/%.1">

+      <details key="start" value="8332"/>

+      <details key="end" value="8355"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.619" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/%.1/%.1/%">

+      <details key="start" value="8335"/>

+      <details key="end" value="8355"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.620" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/%.1/%.1/%/spec">

+      <details key="start" value="8336"/>

+      <details key="end" value="8340"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.621" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/%.1/%.1/%/%">

+      <details key="start" value="8350"/>

+      <details key="end" value="8353"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.622" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/%.2">

+      <details key="start" value="8362"/>

+      <details key="end" value="8365"/>

+      <details key="line" value="182"/>

+    </eAnnotations>

+    <eAnnotations source="positions.623" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1">

+      <details key="start" value="8224"/>

+      <details key="end" value="8303"/>

+      <details key="line" value="181"/>

+    </eAnnotations>

+    <eAnnotations source="positions.624" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1/%">

+      <details key="start" value="8241"/>

+      <details key="end" value="8304"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.625" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1/%/%">

+      <details key="start" value="8241"/>

+      <details key="end" value="8293"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.626" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1/%/%/%">

+      <details key="start" value="8241"/>

+      <details key="end" value="8287"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.627" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1/%/%/%/%">

+      <details key="start" value="8241"/>

+      <details key="end" value="8259"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.628" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1/%/%/%/%/rule">

+      <details key="start" value="8241"/>

+      <details key="end" value="8245"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.629" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1/%/%/%/%.1">

+      <details key="start" value="8270"/>

+      <details key="end" value="8286"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.630" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/%/spec.1/%/index">

+      <details key="start" value="8298"/>

+      <details key="end" value="8303"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.631" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/index">

+      <details key="start" value="8122"/>

+      <details key="end" value="8212"/>

+      <details key="line" value="180"/>

+    </eAnnotations>

+    <eAnnotations source="positions.632" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/index/%">

+      <details key="start" value="8141"/>

+      <details key="end" value="8213"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.633" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/index/%/%">

+      <details key="start" value="8141"/>

+      <details key="end" value="8196"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.634" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/index/%/%/%">

+      <details key="start" value="8141"/>

+      <details key="end" value="8187"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.635" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/index/%/%/%/%">

+      <details key="start" value="8141"/>

+      <details key="end" value="8159"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.636" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/index/%/%/%/%/rule">

+      <details key="start" value="8141"/>

+      <details key="end" value="8145"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.637" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/index/%/%/%/%.1">

+      <details key="start" value="8170"/>

+      <details key="end" value="8186"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.638" references="/0/generateComponent/%.5/%.4/%.4/%/%/%/index/%/%.1">

+      <details key="start" value="8206"/>

+      <details key="end" value="8212"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.639" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1">

+      <details key="start" value="7968"/>

+      <details key="end" value="8109"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.640" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%">

+      <details key="start" value="7970"/>

+      <details key="end" value="8018"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.641" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%/%">

+      <details key="start" value="7970"/>

+      <details key="end" value="7988"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.642" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%/%/rule">

+      <details key="start" value="7970"/>

+      <details key="end" value="7974"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.643" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%/%.1">

+      <details key="start" value="8001"/>

+      <details key="end" value="8017"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.644" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1">

+      <details key="start" value="8023"/>

+      <details key="end" value="8107"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.645" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect">

+      <details key="start" value="8023"/>

+      <details key="end" value="8095"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.646" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/%">

+      <details key="start" value="8023"/>

+      <details key="end" value="8078"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.647" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/%/%">

+      <details key="start" value="8023"/>

+      <details key="end" value="8069"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.648" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/%/%/%">

+      <details key="start" value="8023"/>

+      <details key="end" value="8041"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.649" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/%/%/%/rule">

+      <details key="start" value="8023"/>

+      <details key="end" value="8027"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.650" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/%/%/%.1">

+      <details key="start" value="8052"/>

+      <details key="end" value="8068"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.651" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/%.1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.652" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/%.1/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.653" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/%.1/%">

+      <details key="start" value="8088"/>

+      <details key="end" value="8094"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.654" references="/0/generateComponent/%.5/%.4/%.4/%/%/%.1/%.1/collect/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.655" references="/0/generateComponent/%.5/%.4/%.4/%/rule">

+      <details key="start" value="7931"/>

+      <details key="end" value="7948"/>

+      <details key="line" value="178"/>

+    </eAnnotations>

+    <eAnnotations source="positions.656" references="/0/generateComponent/%.5/%.4/%.4/%/rules">

+      <details key="start" value="7951"/>

+      <details key="end" value="7956"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.657" references="/0/generateComponent/%.5/%.4/%.4/rules">

+      <details key="start" value="7801"/>

+      <details key="end" value="7918"/>

+      <details key="line" value="177"/>

+    </eAnnotations>

+    <eAnnotations source="positions.658" references="/0/generateComponent/%.5/%.4/%.4/rules/select">

+      <details key="start" value="7828"/>

+      <details key="end" value="7919"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.659" references="/0/generateComponent/%.5/%.4/%.4/rules/select/%">

+      <details key="start" value="7828"/>

+      <details key="end" value="7843"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.660" references="/0/generateComponent/%.5/%.4/%.4/rules/select/%/block">

+      <details key="start" value="7828"/>

+      <details key="end" value="7833"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.661" references="/0/generateComponent/%.5/%.4/%.4/rules/select/%.1">

+      <details key="start" value="7869"/>

+      <details key="end" value="7918"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.662" references="/0/generateComponent/%.5/%.4/%.4/rules/select/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.663" references="/0/generateComponent/%.5/%.4/%.4/rules/select/%.1/%/%/%">

+      <details key="start" value="7869"/>

+      <details key="end" value="7906"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.664" references="/0/generateComponent/%.5/%.4/%.4/rules/select/%.1/%/%/%/c">

+      <details key="start" value="7869"/>

+      <details key="end" value="7870"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.665" references="/0/generateComponent/%.5/%.4/%.4/rules/select/%.1/%/%/%/DelegConstrQN">

+      <details key="start" value="7892"/>

+      <details key="end" value="7905"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.666" references="/0/generateComponent/%.5/%.4/%.4/rules/select/c">

+      <details key="start" value="7852"/>

+      <details key="end" value="7866"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.667" references="/0/generateComponent/%.5/%.4/%.5">

+      <details key="start" value="8424"/>

+      <details key="end" value="8426"/>

+      <details key="line" value="187"/>

+    </eAnnotations>

+    <eAnnotations source="positions.668" references="/0/generateComponent/%.5/%.4/%.6">

+      <details key="start" value="8427"/>

+      <details key="end" value="9922"/>

+      <details key="line" value="189"/>

+    </eAnnotations>

+    <eAnnotations source="positions.669" references="/0/generateComponent/%.5/%.4/%.6/%">

+      <details key="start" value="8617"/>

+      <details key="end" value="9030"/>

+      <details key="line" value="191"/>

+    </eAnnotations>

+    <eAnnotations source="positions.670" references="/0/generateComponent/%.5/%.4/%.6/%/%">

+      <details key="start" value="8783"/>

+      <details key="end" value="9021"/>

+      <details key="line" value="192"/>

+    </eAnnotations>

+    <eAnnotations source="positions.671" references="/0/generateComponent/%.5/%.4/%.6/%/%/%">

+      <details key="start" value="8827"/>

+      <details key="end" value="9012"/>

+      <details key="line" value="193"/>

+    </eAnnotations>

+    <eAnnotations source="positions.672" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%">

+      <details key="start" value="8857"/>

+      <details key="end" value="9004"/>

+      <details key="line" value="194"/>

+    </eAnnotations>

+    <eAnnotations source="positions.673" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/%">

+      <details key="start" value="8915"/>

+      <details key="end" value="8925"/>

+      <details key="line" value="195"/>

+    </eAnnotations>

+    <eAnnotations source="positions.674" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/%.1">

+      <details key="start" value="8926"/>

+      <details key="end" value="8940"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.675" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/%.1/contrProp">

+      <details key="start" value="8926"/>

+      <details key="end" value="8935"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.676" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/%.2">

+      <details key="start" value="8942"/>

+      <details key="end" value="8953"/>

+      <details key="line" value="195"/>

+    </eAnnotations>

+    <eAnnotations source="positions.677" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/%.3">

+      <details key="start" value="8954"/>

+      <details key="end" value="8993"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.678" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/%.3/contrProp">

+      <details key="start" value="8977"/>

+      <details key="end" value="8986"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.679" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/%.3/parts">

+      <details key="start" value="8987"/>

+      <details key="end" value="8992"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.680" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/%.4">

+      <details key="start" value="8995"/>

+      <details key="end" value="8997"/>

+      <details key="line" value="196"/>

+    </eAnnotations>

+    <eAnnotations source="positions.681" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/contract">

+      <details key="start" value="8862"/>

+      <details key="end" value="8912"/>

+      <details key="line" value="194"/>

+    </eAnnotations>

+    <eAnnotations source="positions.682" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/contract/%">

+      <details key="start" value="8882"/>

+      <details key="end" value="8913"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.683" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/contract/%/%">

+      <details key="start" value="8882"/>

+      <details key="end" value="8896"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.684" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/contract/%/%/contrProp">

+      <details key="start" value="8882"/>

+      <details key="end" value="8891"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.685" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%/contract/%/%.1">

+      <details key="start" value="8907"/>

+      <details key="end" value="8912"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.686" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%.1">

+      <details key="start" value="8831"/>

+      <details key="end" value="8853"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.687" references="/0/generateComponent/%.5/%.4/%.6/%/%/%/%.1/contrProp">

+      <details key="start" value="8842"/>

+      <details key="end" value="8851"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.688" references="/0/generateComponent/%.5/%.4/%.6/%/%/contrProp">

+      <details key="start" value="8789"/>

+      <details key="end" value="8809"/>

+      <details key="line" value="192"/>

+    </eAnnotations>

+    <eAnnotations source="positions.689" references="/0/generateComponent/%.5/%.4/%.6/%/%/contrProps">

+      <details key="start" value="8812"/>

+      <details key="end" value="8822"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.690" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps">

+      <details key="start" value="8622"/>

+      <details key="end" value="8779"/>

+      <details key="line" value="191"/>

+    </eAnnotations>

+    <eAnnotations source="positions.691" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select">

+      <details key="start" value="8659"/>

+      <details key="end" value="8780"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.692" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%">

+      <details key="start" value="8659"/>

+      <details key="end" value="8679"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.693" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%/block">

+      <details key="start" value="8659"/>

+      <details key="end" value="8664"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.694" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%.1">

+      <details key="start" value="8703"/>

+      <details key="end" value="8779"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.695" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%.1/%">

+      <details key="start" value="8703"/>

+      <details key="end" value="8753"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.696" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%.1/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.697" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%.1/%/%/%/%">

+      <details key="start" value="8703"/>

+      <details key="end" value="8741"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.698" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%.1/%/%/%/%/p">

+      <details key="start" value="8703"/>

+      <details key="end" value="8704"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.699" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%.1/%/%/%/%/ContractPropQN">

+      <details key="start" value="8726"/>

+      <details key="end" value="8740"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.700" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%.1/%.1">

+      <details key="start" value="8758"/>

+      <details key="end" value="8779"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.701" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%.1/%.1/%">

+      <details key="start" value="8762"/>

+      <details key="end" value="8779"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.702" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/%.1/%.1/%/p">

+      <details key="start" value="8777"/>

+      <details key="end" value="8778"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.703" references="/0/generateComponent/%.5/%.4/%.6/%/contrProps/select/p">

+      <details key="start" value="8688"/>

+      <details key="end" value="8700"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.704" references="/0/generateComponent/%.5/%.4/%.6/%.1">

+      <details key="start" value="9032"/>

+      <details key="end" value="9034"/>

+      <details key="line" value="200"/>

+    </eAnnotations>

+    <eAnnotations source="positions.705" references="/0/generateComponent/%.5/%.4/%.6/%.2">

+      <details key="start" value="9035"/>

+      <details key="end" value="9431"/>

+      <details key="line" value="201"/>

+    </eAnnotations>

+    <eAnnotations source="positions.706" references="/0/generateComponent/%.5/%.4/%.6/%.2/%">

+      <details key="start" value="9197"/>

+      <details key="end" value="9422"/>

+      <details key="line" value="202"/>

+    </eAnnotations>

+    <eAnnotations source="positions.707" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%">

+      <details key="start" value="9270"/>

+      <details key="end" value="9413"/>

+      <details key="line" value="203"/>

+    </eAnnotations>

+    <eAnnotations source="positions.708" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%">

+      <details key="start" value="9342"/>

+      <details key="end" value="9352"/>

+      <details key="line" value="204"/>

+    </eAnnotations>

+    <eAnnotations source="positions.709" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.1">

+      <details key="start" value="9353"/>

+      <details key="end" value="9363"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.710" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.1/block">

+      <details key="start" value="9353"/>

+      <details key="end" value="9358"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.711" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.2">

+      <details key="start" value="9365"/>

+      <details key="end" value="9384"/>

+      <details key="line" value="204"/>

+    </eAnnotations>

+    <eAnnotations source="positions.712" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/refinedByAllWeak">

+      <details key="start" value="9385"/>

+      <details key="end" value="9401"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.713" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.3">

+      <details key="start" value="9403"/>

+      <details key="end" value="9407"/>

+      <details key="line" value="205"/>

+    </eAnnotations>

+    <eAnnotations source="positions.714" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.4">

+      <details key="start" value="9274"/>

+      <details key="end" value="9339"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.715" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.4/%">

+      <details key="start" value="9275"/>

+      <details key="end" value="9297"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.716" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.4/%/%">

+      <details key="start" value="9275"/>

+      <details key="end" value="9293"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.717" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.4/%/%/contrProps">

+      <details key="start" value="9275"/>

+      <details key="end" value="9285"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.718" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.4/%/%.1">

+      <details key="start" value="9296"/>

+      <details key="end" value="9297"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.719" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.4/%.1">

+      <details key="start" value="9302"/>

+      <details key="end" value="9338"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.720" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.4/%.1/%">

+      <details key="start" value="9306"/>

+      <details key="end" value="9338"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.721" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.4/%.1/%/refinedByAllWeak">

+      <details key="start" value="9306"/>

+      <details key="end" value="9322"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.722" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/%/%.4/%.1/%/%">

+      <details key="start" value="9334"/>

+      <details key="end" value="9337"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.723" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/refinedByAllWeak">

+      <details key="start" value="9202"/>

+      <details key="end" value="9266"/>

+      <details key="line" value="202"/>

+    </eAnnotations>

+    <eAnnotations source="positions.724" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/refinedByAllWeak/%">

+      <details key="start" value="9230"/>

+      <details key="end" value="9267"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.725" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/refinedByAllWeak/%/contrProps">

+      <details key="start" value="9250"/>

+      <details key="end" value="9260"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.726" references="/0/generateComponent/%.5/%.4/%.6/%.2/%/refinedByAllWeak/%/parts">

+      <details key="start" value="9261"/>

+      <details key="end" value="9266"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.727" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps">

+      <details key="start" value="9040"/>

+      <details key="end" value="9193"/>

+      <details key="line" value="201"/>

+    </eAnnotations>

+    <eAnnotations source="positions.728" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select">

+      <details key="start" value="9077"/>

+      <details key="end" value="9194"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.729" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%">

+      <details key="start" value="9077"/>

+      <details key="end" value="9097"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.730" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%/block">

+      <details key="start" value="9077"/>

+      <details key="end" value="9082"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.731" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%.1">

+      <details key="start" value="9121"/>

+      <details key="end" value="9193"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.732" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%.1/%">

+      <details key="start" value="9121"/>

+      <details key="end" value="9171"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.733" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%.1/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.734" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%.1/%/%/%/%">

+      <details key="start" value="9121"/>

+      <details key="end" value="9159"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.735" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%.1/%/%/%/%/p">

+      <details key="start" value="9121"/>

+      <details key="end" value="9122"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.736" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%.1/%/%/%/%/ContractPropQN">

+      <details key="start" value="9144"/>

+      <details key="end" value="9158"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.737" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%.1/%.1">

+      <details key="start" value="9176"/>

+      <details key="end" value="9193"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.738" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/%.1/%.1/p">

+      <details key="start" value="9191"/>

+      <details key="end" value="9192"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.739" references="/0/generateComponent/%.5/%.4/%.6/%.2/contrProps/select/p">

+      <details key="start" value="9106"/>

+      <details key="end" value="9118"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.740" references="/0/generateComponent/%.5/%.4/%.6/checkWeak">

+      <details key="start" value="8431"/>

+      <details key="end" value="8440"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.741" references="/0/generateComponent/%.5/%.4/%.6/%.3">

+      <details key="start" value="9434"/>

+      <details key="end" value="9917"/>

+      <details key="line" value="209"/>

+    </eAnnotations>

+    <eAnnotations source="positions.742" references="/0/generateComponent/%.5/%.4/%.6/%.3/%">

+      <details key="start" value="9543"/>

+      <details key="end" value="9914"/>

+      <details key="line" value="211"/>

+    </eAnnotations>

+    <eAnnotations source="positions.743" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%">

+      <details key="start" value="9683"/>

+      <details key="end" value="9905"/>

+      <details key="line" value="212"/>

+    </eAnnotations>

+    <eAnnotations source="positions.744" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%">

+      <details key="start" value="9727"/>

+      <details key="end" value="9896"/>

+      <details key="line" value="213"/>

+    </eAnnotations>

+    <eAnnotations source="positions.745" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%">

+      <details key="start" value="9757"/>

+      <details key="end" value="9888"/>

+      <details key="line" value="214"/>

+    </eAnnotations>

+    <eAnnotations source="positions.746" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/%">

+      <details key="start" value="9815"/>

+      <details key="end" value="9825"/>

+      <details key="line" value="215"/>

+    </eAnnotations>

+    <eAnnotations source="positions.747" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/%.1">

+      <details key="start" value="9826"/>

+      <details key="end" value="9840"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.748" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/%.1/contrProp">

+      <details key="start" value="9826"/>

+      <details key="end" value="9835"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.749" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/%.2">

+      <details key="start" value="9842"/>

+      <details key="end" value="9853"/>

+      <details key="line" value="215"/>

+    </eAnnotations>

+    <eAnnotations source="positions.750" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/%.3">

+      <details key="start" value="9854"/>

+      <details key="end" value="9877"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.751" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/%.3/contrProp">

+      <details key="start" value="9867"/>

+      <details key="end" value="9876"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.752" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/%.4">

+      <details key="start" value="9879"/>

+      <details key="end" value="9881"/>

+      <details key="line" value="216"/>

+    </eAnnotations>

+    <eAnnotations source="positions.753" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/contract">

+      <details key="start" value="9762"/>

+      <details key="end" value="9812"/>

+      <details key="line" value="214"/>

+    </eAnnotations>

+    <eAnnotations source="positions.754" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/contract/%">

+      <details key="start" value="9782"/>

+      <details key="end" value="9813"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.755" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/contract/%/%">

+      <details key="start" value="9782"/>

+      <details key="end" value="9796"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.756" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/contract/%/%/contrProp">

+      <details key="start" value="9782"/>

+      <details key="end" value="9791"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.757" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%/contract/%/%.1">

+      <details key="start" value="9807"/>

+      <details key="end" value="9812"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.758" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%.1">

+      <details key="start" value="9731"/>

+      <details key="end" value="9753"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.759" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/%/%.1/contrProp">

+      <details key="start" value="9742"/>

+      <details key="end" value="9751"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.760" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/contrProp">

+      <details key="start" value="9689"/>

+      <details key="end" value="9709"/>

+      <details key="line" value="212"/>

+    </eAnnotations>

+    <eAnnotations source="positions.761" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/%/contrProps">

+      <details key="start" value="9712"/>

+      <details key="end" value="9722"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.762" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps">

+      <details key="start" value="9548"/>

+      <details key="end" value="9679"/>

+      <details key="line" value="211"/>

+    </eAnnotations>

+    <eAnnotations source="positions.763" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select">

+      <details key="start" value="9585"/>

+      <details key="end" value="9680"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.764" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select/%">

+      <details key="start" value="9585"/>

+      <details key="end" value="9605"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.765" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select/%/block">

+      <details key="start" value="9585"/>

+      <details key="end" value="9590"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.766" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select/%.1">

+      <details key="start" value="9629"/>

+      <details key="end" value="9679"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.767" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.768" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select/%.1/%/%/%">

+      <details key="start" value="9629"/>

+      <details key="end" value="9667"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.769" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select/%.1/%/%/%/p">

+      <details key="start" value="9629"/>

+      <details key="end" value="9630"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.770" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select/%.1/%/%/%/ContractPropQN">

+      <details key="start" value="9652"/>

+      <details key="end" value="9666"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.771" references="/0/generateComponent/%.5/%.4/%.6/%.3/%/contrProps/select/p">

+      <details key="start" value="9614"/>

+      <details key="end" value="9626"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.772" references="/0/generateComponent/%.5/%.4/%.7">

+      <details key="start" value="9924"/>

+      <details key="end" value="9926"/>

+      <details key="line" value="221"/>

+    </eAnnotations>

+    <eAnnotations source="positions.773" references="/0/generateComponent/%.5/%.4/%.8">

+      <details key="start" value="9927"/>

+      <details key="end" value="10573"/>

+      <details key="line" value="222"/>

+    </eAnnotations>

+    <eAnnotations source="positions.774" references="/0/generateComponent/%.5/%.4/%.8/%">

+      <details key="start" value="9946"/>

+      <details key="end" value="10565"/>

+      <details key="line" value="223"/>

+    </eAnnotations>

+    <eAnnotations source="positions.775" references="/0/generateComponent/%.5/%.4/%.8/%/%">

+      <details key="start" value="9981"/>

+      <details key="end" value="10556"/>

+      <details key="line" value="224"/>

+    </eAnnotations>

+    <eAnnotations source="positions.776" references="/0/generateComponent/%.5/%.4/%.8/%/%/%">

+      <details key="start" value="10003"/>

+      <details key="end" value="10547"/>

+      <details key="line" value="225"/>

+    </eAnnotations>

+    <eAnnotations source="positions.777" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%">

+      <details key="start" value="10073"/>

+      <details key="end" value="10537"/>

+      <details key="line" value="226"/>

+    </eAnnotations>

+    <eAnnotations source="positions.778" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%">

+      <details key="start" value="10217"/>

+      <details key="end" value="10528"/>

+      <details key="line" value="227"/>

+    </eAnnotations>

+    <eAnnotations source="positions.779" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%">

+      <details key="start" value="10261"/>

+      <details key="end" value="10519"/>

+      <details key="line" value="228"/>

+    </eAnnotations>

+    <eAnnotations source="positions.780" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%">

+      <details key="start" value="10321"/>

+      <details key="end" value="10510"/>

+      <details key="line" value="229"/>

+    </eAnnotations>

+    <eAnnotations source="positions.781" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%">

+      <details key="start" value="10390"/>

+      <details key="end" value="10408"/>

+      <details key="line" value="230"/>

+    </eAnnotations>

+    <eAnnotations source="positions.782" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.1">

+      <details key="start" value="10409"/>

+      <details key="end" value="10423"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.783" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.1/nextblock">

+      <details key="start" value="10409"/>

+      <details key="end" value="10418"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.784" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.2">

+      <details key="start" value="10425"/>

+      <details key="end" value="10426"/>

+      <details key="line" value="230"/>

+    </eAnnotations>

+    <eAnnotations source="positions.785" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.3">

+      <details key="start" value="10427"/>

+      <details key="end" value="10441"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.786" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.3/contrProp">

+      <details key="start" value="10427"/>

+      <details key="end" value="10436"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.787" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.4">

+      <details key="start" value="10443"/>

+      <details key="end" value="10459"/>

+      <details key="line" value="230"/>

+    </eAnnotations>

+    <eAnnotations source="positions.788" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.5">

+      <details key="start" value="10460"/>

+      <details key="end" value="10469"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.789" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.5/part">

+      <details key="start" value="10460"/>

+      <details key="end" value="10464"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.790" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.6">

+      <details key="start" value="10471"/>

+      <details key="end" value="10472"/>

+      <details key="line" value="230"/>

+    </eAnnotations>

+    <eAnnotations source="positions.791" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.7">

+      <details key="start" value="10473"/>

+      <details key="end" value="10487"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.792" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.7/contrProp">

+      <details key="start" value="10473"/>

+      <details key="end" value="10482"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.793" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.8">

+      <details key="start" value="10489"/>

+      <details key="end" value="10503"/>

+      <details key="line" value="230"/>

+    </eAnnotations>

+    <eAnnotations source="positions.794" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.9">

+      <details key="start" value="10325"/>

+      <details key="end" value="10387"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.795" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.9/%">

+      <details key="start" value="10326"/>

+      <details key="end" value="10351"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.796" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.9/%/contrProp">

+      <details key="start" value="10341"/>

+      <details key="end" value="10350"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.797" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.9/%.1">

+      <details key="start" value="10356"/>

+      <details key="end" value="10386"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.798" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.9/%.1/%">

+      <details key="start" value="10360"/>

+      <details key="end" value="10386"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.799" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/%/%.9/%.1/%/contract">

+      <details key="start" value="10377"/>

+      <details key="end" value="10385"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.800" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/contract">

+      <details key="start" value="10266"/>

+      <details key="end" value="10316"/>

+      <details key="line" value="228"/>

+    </eAnnotations>

+    <eAnnotations source="positions.801" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/contract/%">

+      <details key="start" value="10286"/>

+      <details key="end" value="10317"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.802" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/contract/%/%">

+      <details key="start" value="10286"/>

+      <details key="end" value="10300"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.803" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/contract/%/%/contrProp">

+      <details key="start" value="10286"/>

+      <details key="end" value="10295"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.804" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/%/contract/%/%.1">

+      <details key="start" value="10311"/>

+      <details key="end" value="10316"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.805" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/contrProp">

+      <details key="start" value="10223"/>

+      <details key="end" value="10243"/>

+      <details key="line" value="227"/>

+    </eAnnotations>

+    <eAnnotations source="positions.806" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/%/contrProps">

+      <details key="start" value="10246"/>

+      <details key="end" value="10256"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.807" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps">

+      <details key="start" value="10078"/>

+      <details key="end" value="10213"/>

+      <details key="line" value="226"/>

+    </eAnnotations>

+    <eAnnotations source="positions.808" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select">

+      <details key="start" value="10115"/>

+      <details key="end" value="10214"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.809" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select/%">

+      <details key="start" value="10115"/>

+      <details key="end" value="10139"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.810" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select/%/nextblock">

+      <details key="start" value="10115"/>

+      <details key="end" value="10124"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.811" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select/%.1">

+      <details key="start" value="10163"/>

+      <details key="end" value="10213"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.812" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.813" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select/%.1/%/%/%">

+      <details key="start" value="10163"/>

+      <details key="end" value="10201"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.814" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select/%.1/%/%/%/p">

+      <details key="start" value="10163"/>

+      <details key="end" value="10164"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.815" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select/%.1/%/%/%/ContractPropQN">

+      <details key="start" value="10186"/>

+      <details key="end" value="10200"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.816" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/%/contrProps/select/p">

+      <details key="start" value="10148"/>

+      <details key="end" value="10160"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.817" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock">

+      <details key="start" value="10008"/>

+      <details key="end" value="10069"/>

+      <details key="line" value="225"/>

+    </eAnnotations>

+    <eAnnotations source="positions.818" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock/any">

+      <details key="start" value="10029"/>

+      <details key="end" value="10070"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.819" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock/any/allBlocks">

+      <details key="start" value="10029"/>

+      <details key="end" value="10038"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.820" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock/any/%">

+      <details key="start" value="10056"/>

+      <details key="end" value="10069"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.821" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock/any/%/%">

+      <details key="start" value="10056"/>

+      <details key="end" value="10065"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.822" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock/any/%/%/part">

+      <details key="start" value="10056"/>

+      <details key="end" value="10060"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.823" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock/any/%/c">

+      <details key="start" value="10068"/>

+      <details key="end" value="10069"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.824" references="/0/generateComponent/%.5/%.4/%.8/%/%/%/nextblock/any/c">

+      <details key="start" value="10044"/>

+      <details key="end" value="10053"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.825" references="/0/generateComponent/%.5/%.4/%.8/%/%/%.1">

+      <details key="start" value="9985"/>

+      <details key="end" value="9999"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.826" references="/0/generateComponent/%.5/%.4/%.8/%/%/%.1/part">

+      <details key="start" value="9993"/>

+      <details key="end" value="9997"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.827" references="/0/generateComponent/%.5/%.4/%.8/%/part">

+      <details key="start" value="9952"/>

+      <details key="end" value="9967"/>

+      <details key="line" value="223"/>

+    </eAnnotations>

+    <eAnnotations source="positions.828" references="/0/generateComponent/%.5/%.4/%.8/%/parts">

+      <details key="start" value="9970"/>

+      <details key="end" value="9975"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.829" references="/0/generateComponent/%.5/%.4/%.8/checkWeak">

+      <details key="start" value="9931"/>

+      <details key="end" value="9942"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.830" references="/0/generateComponent/%.5/%.4/%.9">

+      <details key="start" value="10575"/>

+      <details key="end" value="10577"/>

+      <details key="line" value="239"/>

+    </eAnnotations>

+    <eAnnotations source="positions.831" references="/0/generateComponent/%.5/%.4/%.10">

+      <details key="start" value="10578"/>

+      <details key="end" value="10854"/>

+      <details key="line" value="240"/>

+    </eAnnotations>

+    <eAnnotations source="positions.832" references="/0/generateComponent/%.5/%.4/%.10/%">

+      <details key="start" value="10612"/>

+      <details key="end" value="10845"/>

+      <details key="line" value="241"/>

+    </eAnnotations>

+    <eAnnotations source="positions.833" references="/0/generateComponent/%.5/%.4/%.10/%/%">

+      <details key="start" value="10689"/>

+      <details key="end" value="10837"/>

+      <details key="line" value="242"/>

+    </eAnnotations>

+    <eAnnotations source="positions.834" references="/0/generateComponent/%.5/%.4/%.10/%/%/%">

+      <details key="start" value="10757"/>

+      <details key="end" value="10758"/>

+      <details key="line" value="243"/>

+    </eAnnotations>

+    <eAnnotations source="positions.835" references="/0/generateComponent/%.5/%.4/%.10/%/%/%.1">

+      <details key="start" value="10759"/>

+      <details key="end" value="10825"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.836" references="/0/generateComponent/%.5/%.4/%.10/%/%/%.1/newblock">

+      <details key="start" value="10777"/>

+      <details key="end" value="10785"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.837" references="/0/generateComponent/%.5/%.4/%.10/%/%/%.1/%">

+      <details key="start" value="10787"/>

+      <details key="end" value="10792"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.838" references="/0/generateComponent/%.5/%.4/%.10/%/%/%.1/allBlocks">

+      <details key="start" value="10794"/>

+      <details key="end" value="10803"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.839" references="/0/generateComponent/%.5/%.4/%.10/%/%/%.1/generated">

+      <details key="start" value="10805"/>

+      <details key="end" value="10814"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.840" references="/0/generateComponent/%.5/%.4/%.10/%/%/%.1/checkWeak">

+      <details key="start" value="10815"/>

+      <details key="end" value="10824"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.841" references="/0/generateComponent/%.5/%.4/%.10/%/%/%.2">

+      <details key="start" value="10827"/>

+      <details key="end" value="10829"/>

+      <details key="line" value="244"/>

+    </eAnnotations>

+    <eAnnotations source="positions.842" references="/0/generateComponent/%.5/%.4/%.10/%/%/newblock">

+      <details key="start" value="10694"/>

+      <details key="end" value="10754"/>

+      <details key="line" value="242"/>

+    </eAnnotations>

+    <eAnnotations source="positions.843" references="/0/generateComponent/%.5/%.4/%.10/%/%/newblock/any">

+      <details key="start" value="10714"/>

+      <details key="end" value="10755"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.844" references="/0/generateComponent/%.5/%.4/%.10/%/%/newblock/any/allBlocks">

+      <details key="start" value="10714"/>

+      <details key="end" value="10723"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.845" references="/0/generateComponent/%.5/%.4/%.10/%/%/newblock/any/%">

+      <details key="start" value="10741"/>

+      <details key="end" value="10754"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.846" references="/0/generateComponent/%.5/%.4/%.10/%/%/newblock/any/%/%">

+      <details key="start" value="10741"/>

+      <details key="end" value="10750"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.847" references="/0/generateComponent/%.5/%.4/%.10/%/%/newblock/any/%/%/part">

+      <details key="start" value="10741"/>

+      <details key="end" value="10745"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.848" references="/0/generateComponent/%.5/%.4/%.10/%/%/newblock/any/%/c">

+      <details key="start" value="10753"/>

+      <details key="end" value="10754"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.849" references="/0/generateComponent/%.5/%.4/%.10/%/%/newblock/any/c">

+      <details key="start" value="10729"/>

+      <details key="end" value="10738"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.850" references="/0/generateComponent/%.5/%.4/%.10/%/%.1">

+      <details key="start" value="10616"/>

+      <details key="end" value="10684"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.851" references="/0/generateComponent/%.5/%.4/%.10/%/%.1/%">

+      <details key="start" value="10617"/>

+      <details key="end" value="10629"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.852" references="/0/generateComponent/%.5/%.4/%.10/%/%.1/%/part">

+      <details key="start" value="10624"/>

+      <details key="end" value="10628"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.853" references="/0/generateComponent/%.5/%.4/%.10/%/%.1/%.1">

+      <details key="start" value="10634"/>

+      <details key="end" value="10683"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.854" references="/0/generateComponent/%.5/%.4/%.10/%/%.1/%.1/%">

+      <details key="start" value="10638"/>

+      <details key="end" value="10683"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.855" references="/0/generateComponent/%.5/%.4/%.10/%/%.1/%.1/%/%">

+      <details key="start" value="10657"/>

+      <details key="end" value="10671"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.856" references="/0/generateComponent/%.5/%.4/%.10/%/%.1/%.1/%/%/%">

+      <details key="start" value="10657"/>

+      <details key="end" value="10666"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.857" references="/0/generateComponent/%.5/%.4/%.10/%/%.1/%.1/%/%/%/part">

+      <details key="start" value="10657"/>

+      <details key="end" value="10661"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.858" references="/0/generateComponent/%.5/%.4/%.10/%/%.1/%.1/%/generated">

+      <details key="start" value="10673"/>

+      <details key="end" value="10682"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.859" references="/0/generateComponent/%.5/%.4/%.10/part">

+      <details key="start" value="10584"/>

+      <details key="end" value="10599"/>

+      <details key="line" value="240"/>

+    </eAnnotations>

+    <eAnnotations source="positions.860" references="/0/generateComponent/%.5/%.4/%.10/parts">

+      <details key="start" value="10602"/>

+      <details key="end" value="10607"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.861" references="/0/generateComponent/%.5/%.4/parts">

+      <details key="start" value="6212"/>

+      <details key="end" value="6281"/>

+      <details key="line" value="140"/>

+    </eAnnotations>

+    <eAnnotations source="positions.862" references="/0/generateComponent/%.5/%.4/parts/%">

+      <details key="start" value="6244"/>

+      <details key="end" value="6282"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.863" references="/0/generateComponent/%.5/%.4/parts/%/%">

+      <details key="start" value="6244"/>

+      <details key="end" value="6264"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.864" references="/0/generateComponent/%.5/%.4/parts/%/%/block">

+      <details key="start" value="6244"/>

+      <details key="end" value="6249"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.865" references="/0/generateComponent/%.5/%.4/parts/%/%.1">

+      <details key="start" value="6273"/>

+      <details key="end" value="6281"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.866" references="/0/generateComponent/%.5/props">

+      <details key="start" value="3720"/>

+      <details key="end" value="3789"/>

+      <details key="line" value="83"/>

+    </eAnnotations>

+    <eAnnotations source="positions.867" references="/0/generateComponent/%.5/props/%">

+      <details key="start" value="3752"/>

+      <details key="end" value="3790"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.868" references="/0/generateComponent/%.5/props/%/%">

+      <details key="start" value="3752"/>

+      <details key="end" value="3772"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.869" references="/0/generateComponent/%.5/props/%/%/block">

+      <details key="start" value="3752"/>

+      <details key="end" value="3757"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.870" references="/0/generateComponent/%.5/props/%/%.1">

+      <details key="start" value="3781"/>

+      <details key="end" value="3789"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.871" references="/0/generateComponent/%.6">

+      <details key="start" value="10874"/>

+      <details key="end" value="10876"/>

+      <details key="line" value="249"/>

+    </eAnnotations>

+    <eAnnotations source="positions.872" references="/0/generateComponent/block">

+      <details key="start" value="3084"/>

+      <details key="end" value="3097"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.873" references="/0/generateComponent/isSystem">

+      <details key="start" value="3099"/>

+      <details key="end" value="3117"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.874" references="/0/generateComponent/allBlocks">

+      <details key="start" value="3119"/>

+      <details key="end" value="3141"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.875" references="/0/generateComponent/generated">

+      <details key="start" value="3143"/>

+      <details key="end" value="3166"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.876" references="/0/generateComponent/checkWeak">

+      <details key="start" value="3168"/>

+      <details key="end" value="3187"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.877" references="/0/getInterface">

+      <details key="start" value="10891"/>

+      <details key="end" value="11079"/>

+      <details key="line" value="252"/>

+    </eAnnotations>

+    <eAnnotations source="positions.878" references="/0/getInterface/port">

+      <details key="start" value="10918"/>

+      <details key="end" value="10929"/>

+      <details key="line" value="252"/>

+    </eAnnotations>

+    <eAnnotations source="positions.879" references="/0/getInterface/%">

+      <details key="start" value="10947"/>

+      <details key="end" value="11076"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.880" references="/0/getInterface/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.881" references="/0/getInterface/%/%">

+      <details key="start" value="10954"/>

+      <details key="end" value="11016"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.882" references="/0/getInterface/%/%.1">

+      <details key="start" value="11018"/>

+      <details key="end" value="11059"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.883" references="/0/getInterface/%/%.2">

+      <details key="start" value="11061"/>

+      <details key="end" value="11075"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.884" references="/0/getInterface/%/%.2/%/port">

+      <details key="start" value="11070"/>

+      <details key="end" value="11074"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.885" references="/0/getReturn">

+      <details key="start" value="11083"/>

+      <details key="end" value="11267"/>

+      <details key="line" value="255"/>

+    </eAnnotations>

+    <eAnnotations source="positions.886" references="/0/getReturn/op">

+      <details key="start" value="11107"/>

+      <details key="end" value="11121"/>

+      <details key="line" value="255"/>

+    </eAnnotations>

+    <eAnnotations source="positions.887" references="/0/getReturn/%">

+      <details key="start" value="11135"/>

+      <details key="end" value="11264"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.888" references="/0/getReturn/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.889" references="/0/getReturn/%/%">

+      <details key="start" value="11142"/>

+      <details key="end" value="11204"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.890" references="/0/getReturn/%/%.1">

+      <details key="start" value="11206"/>

+      <details key="end" value="11249"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.891" references="/0/getReturn/%/%.2">

+      <details key="start" value="11251"/>

+      <details key="end" value="11263"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.892" references="/0/getReturn/%/%.2/%/op">

+      <details key="start" value="11260"/>

+      <details key="end" value="11262"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.893" references="/0/getParamList">

+      <details key="start" value="11271"/>

+      <details key="end" value="11462"/>

+      <details key="line" value="258"/>

+    </eAnnotations>

+    <eAnnotations source="positions.894" references="/0/getParamList/op">

+      <details key="start" value="11298"/>

+      <details key="end" value="11312"/>

+      <details key="line" value="258"/>

+    </eAnnotations>

+    <eAnnotations source="positions.895" references="/0/getParamList/%">

+      <details key="start" value="11327"/>

+      <details key="end" value="11459"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.896" references="/0/getParamList/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.897" references="/0/getParamList/%/%">

+      <details key="start" value="11334"/>

+      <details key="end" value="11396"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.898" references="/0/getParamList/%/%.1">

+      <details key="start" value="11398"/>

+      <details key="end" value="11444"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.899" references="/0/getParamList/%/%.2">

+      <details key="start" value="11446"/>

+      <details key="end" value="11458"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.900" references="/0/getParamList/%/%.2/%/op">

+      <details key="start" value="11455"/>

+      <details key="end" value="11457"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.901" references="/0/getOperationName">

+      <details key="start" value="11466"/>

+      <details key="end" value="11711"/>

+      <details key="line" value="261"/>

+    </eAnnotations>

+    <eAnnotations source="positions.902" references="/0/getOperationName/op">

+      <details key="start" value="11497"/>

+      <details key="end" value="11511"/>

+      <details key="line" value="261"/>

+    </eAnnotations>

+    <eAnnotations source="positions.903" references="/0/getOperationName/port">

+      <details key="start" value="11513"/>

+      <details key="end" value="11524"/>

+      <details key="line" value="261"/>

+    </eAnnotations>

+    <eAnnotations source="positions.904" references="/0/getOperationName/%">

+      <details key="start" value="11539"/>

+      <details key="end" value="11708"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.905" references="/0/getOperationName/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.906" references="/0/getOperationName/%/%">

+      <details key="start" value="11546"/>

+      <details key="end" value="11608"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.907" references="/0/getOperationName/%/%.1">

+      <details key="start" value="11610"/>

+      <details key="end" value="11687"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.908" references="/0/getOperationName/%/%.2">

+      <details key="start" value="11689"/>

+      <details key="end" value="11707"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.909" references="/0/getOperationName/%/%.2/%/op">

+      <details key="start" value="11698"/>

+      <details key="end" value="11700"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.910" references="/0/getOperationName/%/%.2/%.1/port">

+      <details key="start" value="11702"/>

+      <details key="end" value="11706"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.911" references="/0/getSystem">

+      <details key="start" value="11715"/>

+      <details key="end" value="11934"/>

+      <details key="line" value="264"/>

+    </eAnnotations>

+    <eAnnotations source="positions.912" references="/0/getSystem/classes">

+      <details key="start" value="11739"/>

+      <details key="end" value="11759"/>

+      <details key="line" value="264"/>

+    </eAnnotations>

+    <eAnnotations source="positions.913" references="/0/getSystem/qname">

+      <details key="start" value="11761"/>

+      <details key="end" value="11775"/>

+      <details key="line" value="264"/>

+    </eAnnotations>

+    <eAnnotations source="positions.914" references="/0/getSystem/%">

+      <details key="start" value="11789"/>

+      <details key="end" value="11931"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.915" references="/0/getSystem/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.916" references="/0/getSystem/%/%">

+      <details key="start" value="11796"/>

+      <details key="end" value="11858"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.917" references="/0/getSystem/%/%.1">

+      <details key="start" value="11860"/>

+      <details key="end" value="11904"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.918" references="/0/getSystem/%/%.2">

+      <details key="start" value="11906"/>

+      <details key="end" value="11930"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.919" references="/0/getSystem/%/%.2/%/classes">

+      <details key="start" value="11915"/>

+      <details key="end" value="11922"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.920" references="/0/getSystem/%/%.2/%.1/qname">

+      <details key="start" value="11924"/>

+      <details key="end" value="11929"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.921" references="/0/getAllBlocks">

+      <details key="start" value="11938"/>

+      <details key="end" value="12237"/>

+      <details key="line" value="267"/>

+    </eAnnotations>

+    <eAnnotations source="positions.922" references="/0/getAllBlocks/classes">

+      <details key="start" value="11965"/>

+      <details key="end" value="11985"/>

+      <details key="line" value="267"/>

+    </eAnnotations>

+    <eAnnotations source="positions.923" references="/0/getAllBlocks/blockQN">

+      <details key="start" value="11987"/>

+      <details key="end" value="12003"/>

+      <details key="line" value="267"/>

+    </eAnnotations>

+    <eAnnotations source="positions.924" references="/0/getAllBlocks/SubSystemQN">

+      <details key="start" value="12005"/>

+      <details key="end" value="12025"/>

+      <details key="line" value="267"/>

+    </eAnnotations>

+    <eAnnotations source="positions.925" references="/0/getAllBlocks/SystemQN">

+      <details key="start" value="12027"/>

+      <details key="end" value="12044"/>

+      <details key="line" value="267"/>

+    </eAnnotations>

+    <eAnnotations source="positions.926" references="/0/getAllBlocks/select">

+      <details key="start" value="12063"/>

+      <details key="end" value="12234"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.927" references="/0/getAllBlocks/select/classes">

+      <details key="start" value="12063"/>

+      <details key="end" value="12070"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.928" references="/0/getAllBlocks/select/%">

+      <details key="start" value="12091"/>

+      <details key="end" value="12233"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.929" references="/0/getAllBlocks/select/%/%">

+      <details key="start" value="12091"/>

+      <details key="end" value="12185"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.930" references="/0/getAllBlocks/select/%/%/%">

+      <details key="start" value="12091"/>

+      <details key="end" value="12134"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.931" references="/0/getAllBlocks/select/%/%/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.932" references="/0/getAllBlocks/select/%/%/%/%/%/%">

+      <details key="start" value="12091"/>

+      <details key="end" value="12122"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.933" references="/0/getAllBlocks/select/%/%/%/%/%/%/c">

+      <details key="start" value="12091"/>

+      <details key="end" value="12092"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.934" references="/0/getAllBlocks/select/%/%/%/%/%/%/blockQN">

+      <details key="start" value="12114"/>

+      <details key="end" value="12121"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.935" references="/0/getAllBlocks/select/%/%/%.1">

+      <details key="start" value="12138"/>

+      <details key="end" value="12185"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.936" references="/0/getAllBlocks/select/%/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.937" references="/0/getAllBlocks/select/%/%/%.1/%/%/%">

+      <details key="start" value="12138"/>

+      <details key="end" value="12173"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.938" references="/0/getAllBlocks/select/%/%/%.1/%/%/%/c">

+      <details key="start" value="12138"/>

+      <details key="end" value="12139"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.939" references="/0/getAllBlocks/select/%/%/%.1/%/%/%/SubSystemQN">

+      <details key="start" value="12161"/>

+      <details key="end" value="12172"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.940" references="/0/getAllBlocks/select/%/%.1">

+      <details key="start" value="12189"/>

+      <details key="end" value="12233"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.941" references="/0/getAllBlocks/select/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.942" references="/0/getAllBlocks/select/%/%.1/%/%/%">

+      <details key="start" value="12189"/>

+      <details key="end" value="12221"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.943" references="/0/getAllBlocks/select/%/%.1/%/%/%/c">

+      <details key="start" value="12189"/>

+      <details key="end" value="12190"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.944" references="/0/getAllBlocks/select/%/%.1/%/%/%/SystemQN">

+      <details key="start" value="12212"/>

+      <details key="end" value="12220"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.945" references="/0/getAllBlocks/select/c">

+      <details key="start" value="12079"/>

+      <details key="end" value="12088"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.946" references="/0/getAllComponents">

+      <details key="start" value="12241"/>

+      <details key="end" value="12531"/>

+      <details key="line" value="270"/>

+    </eAnnotations>

+    <eAnnotations source="positions.947" references="/0/getAllComponents/hwcomps">

+      <details key="start" value="12272"/>

+      <details key="end" value="12296"/>

+      <details key="line" value="270"/>

+    </eAnnotations>

+    <eAnnotations source="positions.948" references="/0/getAllComponents/comps">

+      <details key="start" value="12298"/>

+      <details key="end" value="12320"/>

+      <details key="line" value="270"/>

+    </eAnnotations>

+    <eAnnotations source="positions.949" references="/0/getAllComponents/CompImplQN">

+      <details key="start" value="12322"/>

+      <details key="end" value="12341"/>

+      <details key="line" value="270"/>

+    </eAnnotations>

+    <eAnnotations source="positions.950" references="/0/getAllComponents/PlatformQN">

+      <details key="start" value="12343"/>

+      <details key="end" value="12362"/>

+      <details key="line" value="270"/>

+    </eAnnotations>

+    <eAnnotations source="positions.951" references="/0/getAllComponents/%">

+      <details key="start" value="12385"/>

+      <details key="end" value="12528"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.952" references="/0/getAllComponents/%/select">

+      <details key="start" value="12385"/>

+      <details key="end" value="12512"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.953" references="/0/getAllComponents/%/select/comps">

+      <details key="start" value="12385"/>

+      <details key="end" value="12390"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.954" references="/0/getAllComponents/%/select/%">

+      <details key="start" value="12415"/>

+      <details key="end" value="12511"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.955" references="/0/getAllComponents/%/select/%/%">

+      <details key="start" value="12415"/>

+      <details key="end" value="12461"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.956" references="/0/getAllComponents/%/select/%/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.957" references="/0/getAllComponents/%/select/%/%/%/%/%">

+      <details key="start" value="12415"/>

+      <details key="end" value="12449"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.958" references="/0/getAllComponents/%/select/%/%/%/%/%/c">

+      <details key="start" value="12415"/>

+      <details key="end" value="12416"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.959" references="/0/getAllComponents/%/select/%/%/%/%/%/CompImplQN">

+      <details key="start" value="12438"/>

+      <details key="end" value="12448"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.960" references="/0/getAllComponents/%/select/%/%.1">

+      <details key="start" value="12465"/>

+      <details key="end" value="12511"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.961" references="/0/getAllComponents/%/select/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.962" references="/0/getAllComponents/%/select/%/%.1/%/%/%">

+      <details key="start" value="12465"/>

+      <details key="end" value="12499"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.963" references="/0/getAllComponents/%/select/%/%.1/%/%/%/c">

+      <details key="start" value="12465"/>

+      <details key="end" value="12466"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.964" references="/0/getAllComponents/%/select/%/%.1/%/%/%/PlatformQN">

+      <details key="start" value="12488"/>

+      <details key="end" value="12498"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.965" references="/0/getAllComponents/%/select/c">

+      <details key="start" value="12399"/>

+      <details key="end" value="12412"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.966" references="/0/getAllComponents/%/hwcomps">

+      <details key="start" value="12520"/>

+      <details key="end" value="12527"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.967" references="/0/getDirection">

+      <details key="start" value="12535"/>

+      <details key="end" value="12674"/>

+      <details key="line" value="273"/>

+    </eAnnotations>

+    <eAnnotations source="positions.968" references="/0/getDirection/dir">

+      <details key="start" value="12562"/>

+      <details key="end" value="12574"/>

+      <details key="line" value="273"/>

+    </eAnnotations>

+    <eAnnotations source="positions.969" references="/0/getDirection/%">

+      <details key="start" value="12589"/>

+      <details key="end" value="12671"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.970" references="/0/getDirection/%/%">

+      <details key="start" value="12592"/>

+      <details key="end" value="12601"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.971" references="/0/getDirection/%/%/self">

+      <details key="start" value="12592"/>

+      <details key="end" value="12596"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.972" references="/0/getDirection/%/%/%">

+      <details key="start" value="12597"/>

+      <details key="end" value="12601"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.973" references="/0/getDirection/%/%.1">

+      <details key="start" value="12607"/>

+      <details key="end" value="12615"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.974" references="/0/getDirection/%/%.2">

+      <details key="start" value="12621"/>

+      <details key="end" value="12665"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.975" references="/0/getDirection/%/%.2/%">

+      <details key="start" value="12624"/>

+      <details key="end" value="12636"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.976" references="/0/getDirection/%/%.2/%/self">

+      <details key="start" value="12624"/>

+      <details key="end" value="12628"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.977" references="/0/getDirection/%/%.2/%/%">

+      <details key="start" value="12631"/>

+      <details key="end" value="12636"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.978" references="/0/getDirection/%/%.2/%.1">

+      <details key="start" value="12642"/>

+      <details key="end" value="12651"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.979" references="/0/getDirection/%/%.2/%.2">

+      <details key="start" value="12657"/>

+      <details key="end" value="12659"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.980" references="/0/isPart">

+      <details key="start" value="12678"/>

+      <details key="end" value="13035"/>

+      <details key="line" value="276"/>

+    </eAnnotations>

+    <eAnnotations source="positions.981" references="/0/isPart/prop">

+      <details key="start" value="12699"/>

+      <details key="end" value="12714"/>

+      <details key="line" value="276"/>

+    </eAnnotations>

+    <eAnnotations source="positions.982" references="/0/isPart/%">

+      <details key="start" value="12730"/>

+      <details key="end" value="13032"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.983" references="/0/isPart/%/%">

+      <details key="start" value="12733"/>

+      <details key="end" value="13005"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.984" references="/0/isPart/%/%/%">

+      <details key="start" value="12733"/>

+      <details key="end" value="12931"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.985" references="/0/isPart/%/%/%/%">

+      <details key="start" value="12733"/>

+      <details key="end" value="12861"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.986" references="/0/isPart/%/%/%/%/%">

+      <details key="start" value="12733"/>

+      <details key="end" value="12765"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.987" references="/0/isPart/%/%/%/%/%/%">

+      <details key="start" value="12733"/>

+      <details key="end" value="12742"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.988" references="/0/isPart/%/%/%/%/%/%/self">

+      <details key="start" value="12733"/>

+      <details key="end" value="12737"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.989" references="/0/isPart/%/%/%/%/%/%.1">

+      <details key="start" value="12755"/>

+      <details key="end" value="12764"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.990" references="/0/isPart/%/%/%/%/%.1">

+      <details key="start" value="12769"/>

+      <details key="end" value="12861"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.991" references="/0/isPart/%/%/%/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.992" references="/0/isPart/%/%/%/%/%.1/%/%/%">

+      <details key="start" value="12769"/>

+      <details key="end" value="12849"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.993" references="/0/isPart/%/%/%/%/%.1/%/%/%/%">

+      <details key="start" value="12769"/>

+      <details key="end" value="12778"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.994" references="/0/isPart/%/%/%/%/%.1/%/%/%/%/self">

+      <details key="start" value="12769"/>

+      <details key="end" value="12773"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.995" references="/0/isPart/%/%/%/%/%.1/%/%/%/%.1">

+      <details key="start" value="12800"/>

+      <details key="end" value="12848"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.996" references="/0/isPart/%/%/%/%.1">

+      <details key="start" value="12865"/>

+      <details key="end" value="12931"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.997" references="/0/isPart/%/%/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.998" references="/0/isPart/%/%/%/%.1/%/%/%">

+      <details key="start" value="12865"/>

+      <details key="end" value="12919"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.999" references="/0/isPart/%/%/%/%.1/%/%/%/%">

+      <details key="start" value="12865"/>

+      <details key="end" value="12874"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1000" references="/0/isPart/%/%/%/%.1/%/%/%/%/self">

+      <details key="start" value="12865"/>

+      <details key="end" value="12869"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1001" references="/0/isPart/%/%/%/%.1/%/%/%/%.1">

+      <details key="start" value="12896"/>

+      <details key="end" value="12918"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1002" references="/0/isPart/%/%/%.1">

+      <details key="start" value="12935"/>

+      <details key="end" value="13005"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1003" references="/0/isPart/%/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1004" references="/0/isPart/%/%/%.1/%/%/%">

+      <details key="start" value="12935"/>

+      <details key="end" value="12993"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1005" references="/0/isPart/%/%/%.1/%/%/%/%">

+      <details key="start" value="12935"/>

+      <details key="end" value="12944"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1006" references="/0/isPart/%/%/%.1/%/%/%/%/self">

+      <details key="start" value="12935"/>

+      <details key="end" value="12939"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1007" references="/0/isPart/%/%/%.1/%/%/%/%.1">

+      <details key="start" value="12966"/>

+      <details key="end" value="12992"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1008" references="/0/isPart/%/%.1">

+      <details key="start" value="13011"/>

+      <details key="end" value="13015"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1009" references="/0/isPart/%/%.2">

+      <details key="start" value="13021"/>

+      <details key="end" value="13026"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1010" references="/0/isDelegation">

+      <details key="start" value="13039"/>

+      <details key="end" value="13234"/>

+      <details key="line" value="279"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1011" references="/0/isDelegation/conn">

+      <details key="start" value="13066"/>

+      <details key="end" value="13082"/>

+      <details key="line" value="279"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1012" references="/0/isDelegation/%">

+      <details key="start" value="13098"/>

+      <details key="end" value="13231"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1013" references="/0/isDelegation/%/%">

+      <details key="start" value="13101"/>

+      <details key="end" value="13203"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1014" references="/0/isDelegation/%/%/%">

+      <details key="start" value="13101"/>

+      <details key="end" value="13150"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1015" references="/0/isDelegation/%/%/%/%">

+      <details key="start" value="13102"/>

+      <details key="end" value="13132"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1016" references="/0/isDelegation/%/%/%/%/%">

+      <details key="start" value="13102"/>

+      <details key="end" value="13119"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1017" references="/0/isDelegation/%/%/%/%/%/%">

+      <details key="start" value="13102"/>

+      <details key="end" value="13110"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1018" references="/0/isDelegation/%/%/%/%/%/%/conn">

+      <details key="start" value="13102"/>

+      <details key="end" value="13106"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1019" references="/0/isDelegation/%/%/%.1">

+      <details key="start" value="13155"/>

+      <details key="end" value="13203"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1020" references="/0/isDelegation/%/%/%.1/%">

+      <details key="start" value="13156"/>

+      <details key="end" value="13185"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1021" references="/0/isDelegation/%/%/%.1/%/%">

+      <details key="start" value="13156"/>

+      <details key="end" value="13172"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1022" references="/0/isDelegation/%/%/%.1/%/%/%">

+      <details key="start" value="13156"/>

+      <details key="end" value="13164"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1023" references="/0/isDelegation/%/%/%.1/%/%/%/conn">

+      <details key="start" value="13156"/>

+      <details key="end" value="13160"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1024" references="/0/isDelegation/%/%.1">

+      <details key="start" value="13210"/>

+      <details key="end" value="13214"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1025" references="/0/isDelegation/%/%.2">

+      <details key="start" value="13220"/>

+      <details key="end" value="13225"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1026" references="/0/firstIsSub">

+      <details key="start" value="13238"/>

+      <details key="end" value="13377"/>

+      <details key="line" value="283"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1027" references="/0/firstIsSub/conn">

+      <details key="start" value="13263"/>

+      <details key="end" value="13279"/>

+      <details key="line" value="283"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1028" references="/0/firstIsSub/%">

+      <details key="start" value="13296"/>

+      <details key="end" value="13375"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1029" references="/0/firstIsSub/%/%">

+      <details key="start" value="13299"/>

+      <details key="end" value="13348"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1030" references="/0/firstIsSub/%/%/%">

+      <details key="start" value="13300"/>

+      <details key="end" value="13330"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1031" references="/0/firstIsSub/%/%/%/%">

+      <details key="start" value="13300"/>

+      <details key="end" value="13317"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1032" references="/0/firstIsSub/%/%/%/%/%">

+      <details key="start" value="13300"/>

+      <details key="end" value="13308"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1033" references="/0/firstIsSub/%/%/%/%/%/conn">

+      <details key="start" value="13300"/>

+      <details key="end" value="13304"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1034" references="/0/firstIsSub/%/%.1">

+      <details key="start" value="13354"/>

+      <details key="end" value="13359"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1035" references="/0/firstIsSub/%/%.2">

+      <details key="start" value="13365"/>

+      <details key="end" value="13369"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1036" references="/0/getNewBlocks">

+      <details key="start" value="13381"/>

+      <details key="end" value="13570"/>

+      <details key="line" value="286"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1037" references="/0/getNewBlocks/parts">

+      <details key="start" value="13408"/>

+      <details key="end" value="13429"/>

+      <details key="line" value="286"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1038" references="/0/getNewBlocks/%">

+      <details key="start" value="13449"/>

+      <details key="end" value="13567"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1039" references="/0/getNewBlocks/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1040" references="/0/getNewBlocks/%/%">

+      <details key="start" value="13456"/>

+      <details key="end" value="13518"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1041" references="/0/getNewBlocks/%/%.1">

+      <details key="start" value="13520"/>

+      <details key="end" value="13549"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1042" references="/0/getNewBlocks/%/%.2">

+      <details key="start" value="13551"/>

+      <details key="end" value="13566"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1043" references="/0/getNewBlocks/%/%.2/%/parts">

+      <details key="start" value="13560"/>

+      <details key="end" value="13565"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1044" references="/0/getEmptyStringSet">

+      <details key="start" value="13574"/>

+      <details key="end" value="13751"/>

+      <details key="line" value="289"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1045" references="/0/getEmptyStringSet/traceCtx">

+      <details key="start" value="13606"/>

+      <details key="end" value="13623"/>

+      <details key="line" value="289"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1046" references="/0/getEmptyStringSet/%">

+      <details key="start" value="13643"/>

+      <details key="end" value="13748"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1047" references="/0/getEmptyStringSet/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1048" references="/0/getEmptyStringSet/%/%">

+      <details key="start" value="13650"/>

+      <details key="end" value="13712"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1049" references="/0/getEmptyStringSet/%/%.1">

+      <details key="start" value="13714"/>

+      <details key="end" value="13735"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1050" references="/0/getEmptyStringSet/%/%.2">

+      <details key="start" value="13737"/>

+      <details key="end" value="13747"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1051" references="/0/addToGenerated">

+      <details key="start" value="13755"/>

+      <details key="end" value="13988"/>

+      <details key="line" value="292"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1052" references="/0/addToGenerated/name">

+      <details key="start" value="13784"/>

+      <details key="end" value="13797"/>

+      <details key="line" value="292"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1053" references="/0/addToGenerated/generated">

+      <details key="start" value="13799"/>

+      <details key="end" value="13822"/>

+      <details key="line" value="292"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1054" references="/0/addToGenerated/%">

+      <details key="start" value="13837"/>

+      <details key="end" value="13985"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1055" references="/0/addToGenerated/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1056" references="/0/addToGenerated/%/%">

+      <details key="start" value="13844"/>

+      <details key="end" value="13906"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1057" references="/0/addToGenerated/%/%.1">

+      <details key="start" value="13908"/>

+      <details key="end" value="13957"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1058" references="/0/addToGenerated/%/%.2">

+      <details key="start" value="13959"/>

+      <details key="end" value="13984"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1059" references="/0/addToGenerated/%/%.2/%/name">

+      <details key="start" value="13968"/>

+      <details key="end" value="13972"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1060" references="/0/addToGenerated/%/%.2/%.1/generated">

+      <details key="start" value="13974"/>

+      <details key="end" value="13983"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1061" references="/0/isAlreadyGenerated">

+      <details key="start" value="13992"/>

+      <details key="end" value="14234"/>

+      <details key="line" value="295"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1062" references="/0/isAlreadyGenerated/name">

+      <details key="start" value="14025"/>

+      <details key="end" value="14038"/>

+      <details key="line" value="295"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1063" references="/0/isAlreadyGenerated/generated">

+      <details key="start" value="14040"/>

+      <details key="end" value="14063"/>

+      <details key="line" value="295"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1064" references="/0/isAlreadyGenerated/%">

+      <details key="start" value="14079"/>

+      <details key="end" value="14231"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1065" references="/0/isAlreadyGenerated/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1066" references="/0/isAlreadyGenerated/%/%">

+      <details key="start" value="14086"/>

+      <details key="end" value="14148"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1067" references="/0/isAlreadyGenerated/%/%.1">

+      <details key="start" value="14150"/>

+      <details key="end" value="14203"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1068" references="/0/isAlreadyGenerated/%/%.2">

+      <details key="start" value="14205"/>

+      <details key="end" value="14230"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1069" references="/0/isAlreadyGenerated/%/%.2/%/name">

+      <details key="start" value="14214"/>

+      <details key="end" value="14218"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1070" references="/0/isAlreadyGenerated/%/%.2/%.1/generated">

+      <details key="start" value="14220"/>

+      <details key="end" value="14229"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1071" references="/0/getAssume">

+      <details key="start" value="14238"/>

+      <details key="end" value="14425"/>

+      <details key="line" value="298"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1072" references="/0/getAssume/contract">

+      <details key="start" value="14262"/>

+      <details key="end" value="14277"/>

+      <details key="line" value="298"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1073" references="/0/getAssume/%">

+      <details key="start" value="14291"/>

+      <details key="end" value="14422"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1074" references="/0/getAssume/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1075" references="/0/getAssume/%/%">

+      <details key="start" value="14298"/>

+      <details key="end" value="14360"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1076" references="/0/getAssume/%/%.1">

+      <details key="start" value="14362"/>

+      <details key="end" value="14401"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1077" references="/0/getAssume/%/%.2">

+      <details key="start" value="14403"/>

+      <details key="end" value="14421"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1078" references="/0/getAssume/%/%.2/%/contract">

+      <details key="start" value="14412"/>

+      <details key="end" value="14420"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1079" references="/0/getGuarantee">

+      <details key="start" value="14429"/>

+      <details key="end" value="14622"/>

+      <details key="line" value="301"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1080" references="/0/getGuarantee/contract">

+      <details key="start" value="14456"/>

+      <details key="end" value="14471"/>

+      <details key="line" value="301"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1081" references="/0/getGuarantee/%">

+      <details key="start" value="14485"/>

+      <details key="end" value="14619"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1082" references="/0/getGuarantee/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1083" references="/0/getGuarantee/%/%">

+      <details key="start" value="14492"/>

+      <details key="end" value="14554"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1084" references="/0/getGuarantee/%/%.1">

+      <details key="start" value="14556"/>

+      <details key="end" value="14598"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1085" references="/0/getGuarantee/%/%.2">

+      <details key="start" value="14600"/>

+      <details key="end" value="14618"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1086" references="/0/getGuarantee/%/%.2/%/contract">

+      <details key="start" value="14609"/>

+      <details key="end" value="14617"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1087" references="/0/isRefined">

+      <details key="start" value="14626"/>

+      <details key="end" value="14814"/>

+      <details key="line" value="304"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1088" references="/0/isRefined/prop">

+      <details key="start" value="14650"/>

+      <details key="end" value="14665"/>

+      <details key="line" value="304"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1089" references="/0/isRefined/%">

+      <details key="start" value="14681"/>

+      <details key="end" value="14811"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1090" references="/0/isRefined/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1091" references="/0/isRefined/%/%">

+      <details key="start" value="14688"/>

+      <details key="end" value="14750"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1092" references="/0/isRefined/%/%.1">

+      <details key="start" value="14752"/>

+      <details key="end" value="14794"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1093" references="/0/isRefined/%/%.2">

+      <details key="start" value="14796"/>

+      <details key="end" value="14810"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1094" references="/0/isRefined/%/%.2/%/prop">

+      <details key="start" value="14805"/>

+      <details key="end" value="14809"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1095" references="/0/getRefinedBy">

+      <details key="start" value="14818"/>

+      <details key="end" value="15011"/>

+      <details key="line" value="307"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1096" references="/0/getRefinedBy/prop">

+      <details key="start" value="14845"/>

+      <details key="end" value="14860"/>

+      <details key="line" value="307"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1097" references="/0/getRefinedBy/%">

+      <details key="start" value="14875"/>

+      <details key="end" value="15008"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1098" references="/0/getRefinedBy/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1099" references="/0/getRefinedBy/%/%">

+      <details key="start" value="14882"/>

+      <details key="end" value="14944"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1100" references="/0/getRefinedBy/%/%.1">

+      <details key="start" value="14946"/>

+      <details key="end" value="14991"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1101" references="/0/getRefinedBy/%/%.2">

+      <details key="start" value="14993"/>

+      <details key="end" value="15007"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1102" references="/0/getRefinedBy/%/%.2/%/prop">

+      <details key="start" value="15002"/>

+      <details key="end" value="15006"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1103" references="/0/getRefinedByStrongWeak">

+      <details key="start" value="15015"/>

+      <details key="end" value="15272"/>

+      <details key="line" value="310"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1104" references="/0/getRefinedByStrongWeak/prop">

+      <details key="start" value="15052"/>

+      <details key="end" value="15067"/>

+      <details key="line" value="310"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1105" references="/0/getRefinedByStrongWeak/parts">

+      <details key="start" value="15069"/>

+      <details key="end" value="15091"/>

+      <details key="line" value="310"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1106" references="/0/getRefinedByStrongWeak/%">

+      <details key="start" value="15106"/>

+      <details key="end" value="15269"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1107" references="/0/getRefinedByStrongWeak/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1108" references="/0/getRefinedByStrongWeak/%/%">

+      <details key="start" value="15113"/>

+      <details key="end" value="15175"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1109" references="/0/getRefinedByStrongWeak/%/%.1">

+      <details key="start" value="15177"/>

+      <details key="end" value="15246"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1110" references="/0/getRefinedByStrongWeak/%/%.2">

+      <details key="start" value="15248"/>

+      <details key="end" value="15268"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1111" references="/0/getRefinedByStrongWeak/%/%.2/%/prop">

+      <details key="start" value="15257"/>

+      <details key="end" value="15261"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1112" references="/0/getRefinedByStrongWeak/%/%.2/%.1/parts">

+      <details key="start" value="15262"/>

+      <details key="end" value="15267"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1113" references="/0/getRefinedByAllWeak">

+      <details key="start" value="15276"/>

+      <details key="end" value="15519"/>

+      <details key="line" value="313"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1114" references="/0/getRefinedByAllWeak/props">

+      <details key="start" value="15310"/>

+      <details key="end" value="15332"/>

+      <details key="line" value="313"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1115" references="/0/getRefinedByAllWeak/parts">

+      <details key="start" value="15334"/>

+      <details key="end" value="15356"/>

+      <details key="line" value="313"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1116" references="/0/getRefinedByAllWeak/%">

+      <details key="start" value="15371"/>

+      <details key="end" value="15516"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1117" references="/0/getRefinedByAllWeak/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1118" references="/0/getRefinedByAllWeak/%/%">

+      <details key="start" value="15378"/>

+      <details key="end" value="15440"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1119" references="/0/getRefinedByAllWeak/%/%.1">

+      <details key="start" value="15442"/>

+      <details key="end" value="15492"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1120" references="/0/getRefinedByAllWeak/%/%.2">

+      <details key="start" value="15494"/>

+      <details key="end" value="15515"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1121" references="/0/getRefinedByAllWeak/%/%.2/%/props">

+      <details key="start" value="15503"/>

+      <details key="end" value="15508"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1122" references="/0/getRefinedByAllWeak/%/%.2/%.1/parts">

+      <details key="start" value="15509"/>

+      <details key="end" value="15514"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1123" references="/0/getContractType">

+      <details key="start" value="15523"/>

+      <details key="end" value="15722"/>

+      <details key="line" value="316"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1124" references="/0/getContractType/prop">

+      <details key="start" value="15553"/>

+      <details key="end" value="15568"/>

+      <details key="line" value="316"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1125" references="/0/getContractType/%">

+      <details key="start" value="15583"/>

+      <details key="end" value="15719"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1126" references="/0/getContractType/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1127" references="/0/getContractType/%/%">

+      <details key="start" value="15590"/>

+      <details key="end" value="15652"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1128" references="/0/getContractType/%/%.1">

+      <details key="start" value="15654"/>

+      <details key="end" value="15702"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1129" references="/0/getContractType/%/%.2">

+      <details key="start" value="15704"/>

+      <details key="end" value="15718"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1130" references="/0/getContractType/%/%.2/%/prop">

+      <details key="start" value="15713"/>

+      <details key="end" value="15717"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1131" references="/0/isWeakContract">

+      <details key="start" value="15726"/>

+      <details key="end" value="15924"/>

+      <details key="line" value="319"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1132" references="/0/isWeakContract/prop">

+      <details key="start" value="15755"/>

+      <details key="end" value="15770"/>

+      <details key="line" value="319"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1133" references="/0/isWeakContract/%">

+      <details key="start" value="15786"/>

+      <details key="end" value="15921"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1134" references="/0/isWeakContract/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1135" references="/0/isWeakContract/%/%">

+      <details key="start" value="15793"/>

+      <details key="end" value="15855"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1136" references="/0/isWeakContract/%/%.1">

+      <details key="start" value="15857"/>

+      <details key="end" value="15904"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1137" references="/0/isWeakContract/%/%.2">

+      <details key="start" value="15906"/>

+      <details key="end" value="15920"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1138" references="/0/isWeakContract/%/%.2/%/prop">

+      <details key="start" value="15915"/>

+      <details key="end" value="15919"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1139" references="/0/isAssumptionTrue">

+      <details key="start" value="15928"/>

+      <details key="end" value="16131"/>

+      <details key="line" value="322"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1140" references="/0/isAssumptionTrue/contract">

+      <details key="start" value="15959"/>

+      <details key="end" value="15974"/>

+      <details key="line" value="322"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1141" references="/0/isAssumptionTrue/%">

+      <details key="start" value="15990"/>

+      <details key="end" value="16128"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1142" references="/0/isAssumptionTrue/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1143" references="/0/isAssumptionTrue/%/%">

+      <details key="start" value="15997"/>

+      <details key="end" value="16059"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1144" references="/0/isAssumptionTrue/%/%.1">

+      <details key="start" value="16061"/>

+      <details key="end" value="16107"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1145" references="/0/isAssumptionTrue/%/%.2">

+      <details key="start" value="16109"/>

+      <details key="end" value="16127"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1146" references="/0/isAssumptionTrue/%/%.2/%/contract">

+      <details key="start" value="16118"/>

+      <details key="end" value="16126"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1147" references="/0/checkRules">

+      <details key="start" value="16135"/>

+      <details key="end" value="16327"/>

+      <details key="line" value="325"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1148" references="/0/checkRules/conn">

+      <details key="start" value="16160"/>

+      <details key="end" value="16176"/>

+      <details key="line" value="325"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1149" references="/0/checkRules/%">

+      <details key="start" value="16192"/>

+      <details key="end" value="16324"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1150" references="/0/checkRules/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1151" references="/0/checkRules/%/%">

+      <details key="start" value="16199"/>

+      <details key="end" value="16261"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1152" references="/0/checkRules/%/%.1">

+      <details key="start" value="16263"/>

+      <details key="end" value="16307"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1153" references="/0/checkRules/%/%.2">

+      <details key="start" value="16309"/>

+      <details key="end" value="16323"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1154" references="/0/checkRules/%/%.2/%/conn">

+      <details key="start" value="16318"/>

+      <details key="end" value="16322"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1155" references="/0/checkConnectedPorts">

+      <details key="start" value="16331"/>

+      <details key="end" value="16541"/>

+      <details key="line" value="328"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1156" references="/0/checkConnectedPorts/conn">

+      <details key="start" value="16365"/>

+      <details key="end" value="16381"/>

+      <details key="line" value="328"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1157" references="/0/checkConnectedPorts/%">

+      <details key="start" value="16397"/>

+      <details key="end" value="16538"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1158" references="/0/checkConnectedPorts/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1159" references="/0/checkConnectedPorts/%/%">

+      <details key="start" value="16404"/>

+      <details key="end" value="16466"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1160" references="/0/checkConnectedPorts/%/%.1">

+      <details key="start" value="16468"/>

+      <details key="end" value="16521"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1161" references="/0/checkConnectedPorts/%/%.2">

+      <details key="start" value="16523"/>

+      <details key="end" value="16537"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1162" references="/0/checkConnectedPorts/%/%.2/%/conn">

+      <details key="start" value="16532"/>

+      <details key="end" value="16536"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1163" references="/0/checkOperationPorts">

+      <details key="start" value="16545"/>

+      <details key="end" value="16755"/>

+      <details key="line" value="331"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1164" references="/0/checkOperationPorts/conn">

+      <details key="start" value="16579"/>

+      <details key="end" value="16595"/>

+      <details key="line" value="331"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1165" references="/0/checkOperationPorts/%">

+      <details key="start" value="16611"/>

+      <details key="end" value="16752"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1166" references="/0/checkOperationPorts/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1167" references="/0/checkOperationPorts/%/%">

+      <details key="start" value="16618"/>

+      <details key="end" value="16680"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1168" references="/0/checkOperationPorts/%/%.1">

+      <details key="start" value="16682"/>

+      <details key="end" value="16735"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1169" references="/0/checkOperationPorts/%/%.2">

+      <details key="start" value="16737"/>

+      <details key="end" value="16751"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1170" references="/0/checkOperationPorts/%/%.2/%/conn">

+      <details key="start" value="16746"/>

+      <details key="end" value="16750"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1171" references="/0/getOperationConnections">

+      <details key="start" value="16759"/>

+      <details key="end" value="16976"/>

+      <details key="line" value="334"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1172" references="/0/getOperationConnections/conn">

+      <details key="start" value="16797"/>

+      <details key="end" value="16813"/>

+      <details key="line" value="334"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1173" references="/0/getOperationConnections/%">

+      <details key="start" value="16828"/>

+      <details key="end" value="16973"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1174" references="/0/getOperationConnections/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1175" references="/0/getOperationConnections/%/%">

+      <details key="start" value="16835"/>

+      <details key="end" value="16897"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1176" references="/0/getOperationConnections/%/%.1">

+      <details key="start" value="16899"/>

+      <details key="end" value="16956"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1177" references="/0/getOperationConnections/%/%.2">

+      <details key="start" value="16958"/>

+      <details key="end" value="16972"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1178" references="/0/getOperationConnections/%/%.2/%/conn">

+      <details key="start" value="16967"/>

+      <details key="end" value="16971"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1179" references="/0/getType">

+      <details key="start" value="16980"/>

+      <details key="end" value="17155"/>

+      <details key="line" value="337"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1180" references="/0/getType/type">

+      <details key="start" value="17002"/>

+      <details key="end" value="17013"/>

+      <details key="line" value="337"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1181" references="/0/getType/%">

+      <details key="start" value="17028"/>

+      <details key="end" value="17152"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1182" references="/0/getType/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1183" references="/0/getType/%/%">

+      <details key="start" value="17035"/>

+      <details key="end" value="17097"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1184" references="/0/getType/%/%.1">

+      <details key="start" value="17099"/>

+      <details key="end" value="17135"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1185" references="/0/getType/%/%.2">

+      <details key="start" value="17137"/>

+      <details key="end" value="17151"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1186" references="/0/getType/%/%.2/%/type">

+      <details key="start" value="17146"/>

+      <details key="end" value="17150"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+  </ecore:EAnnotation>

+</xmi:XMI>

diff --git a/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generateErrorModel.emtl b/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generateErrorModel.emtl
new file mode 100644
index 0000000..0a5b41e
--- /dev/null
+++ b/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generateErrorModel.emtl
@@ -0,0 +1,6762 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:mtl="http://www.eclipse.org/acceleo/mtl/3.0" xmlns:ocl.ecore="http://www.eclipse.org/ocl/1.1.0/Ecore">

+  <mtl:Module name="generateErrorModel" nsURI="org::polarsys::chess::contracts::transformations::main::generateErrorModel" startHeaderPosition="699" endHeaderPosition="841">

+    <input>

+      <takesTypesFrom href="http://www.eclipse.org/uml2/5.0.0/UML#/"/>

+    </input>

+    <imports href="generate.emtl#/0"/>

+    <ownedModuleElement xsi:type="mtl:Template" name="generateErrorModel" visibility="Public" main="true">

+      <init>

+        <variable name="SystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::System">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="SubSystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::SubSystem">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="SystemViewQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Core::CHESSViews::SystemView">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="CompViewQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Core::CHESSViews::ComponentView">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="DeplViewQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Core::CHESSViews::DeploymentView">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="CompImplQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::ComponentModel::ComponentImplementation">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="BlockQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="SysML::Blocks::Block">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="SRACompQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::SRAComponent">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+      </init>

+      <body xsi:type="mtl:FileBlock" openMode="OverWrite">

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:LetBlock">

+            <body xsi:type="mtl:LetBlock">

+              <body xsi:type="mtl:LetBlock">

+                <body xsi:type="mtl:LetBlock">

+                  <body xsi:type="mtl:LetBlock">

+                    <body xsi:type="mtl:LetBlock">

+                      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateModule">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="system" referredVariable="/0/generateErrorModel/%/%/%/%/%/%/%/%/system">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                        <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="allBlocks" eType="/3/Set(Class)" referredVariable="/0/generateErrorModel/%/%/%/%/%/allBlocks"/>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="allComps" eType="/3/Set(Component)" referredVariable="/0/generateErrorModel/%/%/%/%/%/%/allComps"/>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/union.1"/>

+                        </argument>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/generateErrorModel/%/%/%/%/%/%/%/generated"/>

+                        <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        </argument>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>

+                      <letVariable name="system">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        <initExpression xsi:type="mtl:QueryInvocation">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                          <definition href="generate.emtl#/0/getSystem"/>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="allBlocks" eType="/3/Set(Class)" referredVariable="/0/generateErrorModel/%/%/%/%/%/allBlocks"/>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="sysQN" referredVariable="/0/generateErrorModel/sysQN">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                        </initExpression>

+                      </letVariable>

+                    </body>

+                    <letVariable name="generated" eType="/3/Set(String)">

+                      <initExpression xsi:type="mtl:QueryInvocation" eType="/3/Set(String)">

+                        <definition href="generate.emtl#/0/getEmptyStringSet"/>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/23">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                        </argument>

+                      </initExpression>

+                    </letVariable>

+                  </body>

+                  <letVariable name="allComps" eType="/3/Set(Component)">

+                    <initExpression xsi:type="mtl:QueryInvocation" eType="/3/Set(Component)">

+                      <definition href="generate.emtl#/0/getAllComponents"/>

+                      <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Component)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Element)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="deploymentView" referredVariable="/0/generateErrorModel/%/%/%/%/deploymentView">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Component">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+                        </argument>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Component)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Element)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="componentView" referredVariable="/0/generateErrorModel/%/%/componentView">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Component">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+                        </argument>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="CompImplQN" referredVariable="/0/generateErrorModel/@init/@variable.5">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="SRACompQN" referredVariable="/0/generateErrorModel/@init/@variable.7">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                    </initExpression>

+                  </letVariable>

+                </body>

+                <letVariable name="allBlocks" eType="/3/Set(Class)">

+                  <initExpression xsi:type="mtl:QueryInvocation" eType="/3/Set(Class)">

+                    <definition href="generate.emtl#/0/getAllBlocks"/>

+                    <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)">

+                      <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Element)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="componentView" referredVariable="/0/generateErrorModel/%/%/componentView">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Class">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                      </source>

+                      <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Element)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="systemView" referredVariable="/0/generateErrorModel/%/%/%/systemView">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Class">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                        </argument>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/union.1"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="BlockQN" referredVariable="/0/generateErrorModel/@init/@variable.6">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="SubSystemQN" referredVariable="/0/generateErrorModel/@init/@variable.1">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="SystemQN" referredVariable="/0/generateErrorModel/@init/@variable.0">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                  </initExpression>

+                </letVariable>

+              </body>

+              <letVariable name="deploymentView">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Package)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/generateErrorModel/model">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestedPackage"/>

+                  </source>

+                  <body xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateErrorModel/%/%/%/%/deploymentView/any/p">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="DeplViewQN" referredVariable="/0/generateErrorModel/@init/@variable.4">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                  </body>

+                  <iterator xsi:type="ocl.ecore:Variable" name="p">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                  </iterator>

+                </initExpression>

+              </letVariable>

+            </body>

+            <letVariable name="systemView">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+              <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Package)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/generateErrorModel/model">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestedPackage"/>

+                </source>

+                <body xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateErrorModel/%/%/%/systemView/any/p">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="SystemViewQN" referredVariable="/0/generateErrorModel/@init/@variable.2">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                </body>

+                <iterator xsi:type="ocl.ecore:Variable" name="p">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                </iterator>

+              </initExpression>

+            </letVariable>

+          </body>

+          <letVariable name="componentView">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+            <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Package)">

+                <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/generateErrorModel/model">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestedPackage"/>

+              </source>

+              <body xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                  <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                    <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                  </eAnnotations>

+                  <part xsi:type="ocl.ecore:CollectionItem">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <item xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateErrorModel/%/%/componentView/any/p">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="CompViewQN" referredVariable="/0/generateErrorModel/@init/@variable.3">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                    </item>

+                  </part>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+              </body>

+              <iterator xsi:type="ocl.ecore:Variable" name="p">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+              </iterator>

+            </initExpression>

+          </letVariable>

+        </body>

+        <fileUrl xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <source xsi:type="ocl.ecore:VariableExp" name="filename" referredVariable="/0/generateErrorModel/filename">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </source>

+          <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".smv">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </argument>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+        </fileUrl>

+        <charset xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="UTF-8">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </charset>

+      </body>

+      <parameter name="model">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+      </parameter>

+      <parameter name="sysQN">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="sysName">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="filename">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Template" name="generateModule" visibility="Public">

+      <init>

+        <variable name="SystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::System">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="ContractPropQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::ContractProperty">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="FlowPortQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="SysML::PortAndFlows::FlowPort">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="ErrorModelQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::ErrorModel">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="ExternalFaultQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::InternalPropagation">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="InternalFaultQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::InternalFault">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="ClientServerPortQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="MARTE::MARTE_DesignModel::GCM::ClientServerPort">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="MARTEFlowPortQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="MARTE::MARTE_DesignModel::GCM::FlowPort">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+      </init>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>

+      <body xsi:type="mtl:QueryInvocation">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <definition href="generate.emtl#/0/addToGenerated"/>

+        <argument xsi:type="ocl.ecore:PropertyCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+          </source>

+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/generateModule/generated"/>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>

+      <body xsi:type="mtl:IfBlock">

+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="MODULE main&#xA;"/>

+        <ifExpr xsi:type="ocl.ecore:VariableExp" name="isSystem" referredVariable="/0/generateModule/isSystem">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </ifExpr>

+        <else>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="MODULE "/>

+          <body xsi:type="ocl.ecore:PropertyCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            </source>

+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="("/>

+          <body xsi:type="mtl:QueryInvocation" definition="/0/getModuleFormalParameter">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <argument xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            </argument>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=")&#xA;"/>

+        </else>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;VAR&#xA;"/>

+      <body xsi:type="mtl:LetBlock">

+        <body xsi:type="mtl:ForBlock">

+          <body xsi:type="mtl:IfBlock">

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;"/>

+            <body xsi:type="ocl.ecore:PropertyCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%/prop">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </source>

+              <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : "/>

+            <body xsi:type="mtl:QueryInvocation" definition="/0/getTypeNameForProperty">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <argument xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%/prop">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </argument>

+            </body>

+            <body xsi:type="mtl:QueryInvocation" definition="/0/getModuleInstanceActualParameter">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <argument xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+              </argument>

+              <argument xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%/prop">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </argument>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;"/>

+            <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/oclIsInvalid"/>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+              </source>

+              <argument xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/equalsIgnoreCase">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </argument>

+                  </source>

+                  <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="event">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  </argument>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+            </ifExpr>

+          </body>

+          <loopVariable name="prop">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+          </loopVariable>

+          <iterSet xsi:type="ocl.ecore:VariableExp" name="vars" eType="/3/OrderedSet(Property)" referredVariable="/0/generateModule/%.5/vars"/>

+        </body>

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="mtl:LetBlock">

+                <body xsi:type="mtl:IfBlock">

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;"/>

+                  <body xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.1/%/prop">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : "/>

+                  <body xsi:type="mtl:QueryInvocation" definition="/0/getTypeNameForProperty">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.1/%/prop">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </argument>

+                  </body>

+                  <body xsi:type="mtl:QueryInvocation" definition="/0/getModuleInstanceActualParameter">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.1/%/prop">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </argument>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;"/>

+                  <ifExpr xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/equalsIgnoreCase">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/toString">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.1/%/prop">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="flowPortStereo" referredVariable="/0/generateModule/%.5/%.1/%/%/%/flowPortStereo">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        </argument>

+                        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="direction">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                      </source>

+                    </source>

+                    <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="out">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                  </ifExpr>

+                </body>

+                <letVariable name="flowPortStereo">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.1/%/prop">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="MARTEFlowPortQN" referredVariable="/0/generateModule/@init/@variable.7">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                  </initExpression>

+                </letVariable>

+              </body>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.1/%/prop">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/oclIsInvalid"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/equalsIgnoreCase">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <argument xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.1/%/prop">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </argument>

+                    </source>

+                    <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="event">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+              </ifExpr>

+            </body>

+            <loopVariable name="prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="ports" eType="/3/OrderedSet(Property)" referredVariable="/0/generateModule/%.5/%.1/ports"/>

+          </body>

+          <letVariable name="ports" eType="/3/OrderedSet(Property)">

+            <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier/attribute"/>

+              </source>

+              <body xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                          <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                        </eAnnotations>

+                        <part xsi:type="ocl.ecore:CollectionItem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <item xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/%.1/ports/select/p">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateModule/@init/@variable.1">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                          </item>

+                        </part>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                          <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                        </eAnnotations>

+                        <part xsi:type="ocl.ecore:CollectionItem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <item xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/%.1/ports/select/p">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:VariableExp" name="FlowPortQN" referredVariable="/0/generateModule/@init/@variable.2">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                          </item>

+                        </part>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/%.1/ports/select/p">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="ClientServerPortQN" referredVariable="/0/generateModule/@init/@variable.6">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/%.1/ports/select/p">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="MARTEFlowPortQN" referredVariable="/0/generateModule/@init/@variable.7">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+              </body>

+              <iterator xsi:type="ocl.ecore:Variable" name="p">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </iterator>

+            </initExpression>

+          </letVariable>

+        </body>

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="mtl:LetBlock">

+                <body xsi:type="mtl:LetBlock">

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;DEFINE "/>

+                  <body xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="rule" referredVariable="/0/generateModule/%.5/%.2/%/rule">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/getLabel"/>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" := "/>

+                  <body xsi:type="ocl.ecore:VariableExp" name="spec" referredVariable="/0/generateModule/%.5/%.2/%/%/%/%/spec.1">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  </body>

+                  <body xsi:type="mtl:IfBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;"/>

+                    <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/endsWith">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="spec" referredVariable="/0/generateModule/%.5/%.2/%/%/%/%/spec.1">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </ifExpr>

+                  </body>

+                  <letVariable name="spec">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Sequence(String)">

+                        <source xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="rule" referredVariable="/0/generateModule/%.5/%.2/%/rule">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint/specification"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:TypeExp" eType="/20/OpaqueExpression">

+                            <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression/body"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="index" referredVariable="/0/generateModule/%.5/%.2/%/%/%/index">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/at"/>

+                    </initExpression>

+                  </letVariable>

+                </body>

+                <letVariable name="index">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                  <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(String)">

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="rule" referredVariable="/0/generateModule/%.5/%.2/%/rule">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint/specification"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/OpaqueExpression">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression/language"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="SMV">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/indexOf"/>

+                  </initExpression>

+                </letVariable>

+              </body>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="rule" referredVariable="/0/generateModule/%.5/%.2/%/rule">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint/specification"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:TypeExp" eType="/20/OpaqueExpression">

+                    <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(String)">

+                    <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(String)">

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="rule" referredVariable="/0/generateModule/%.5/%.2/%/rule">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint/specification"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/OpaqueExpression">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression/language"/>

+                    </source>

+                    <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/contains">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="l" referredVariable="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/l">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="SMV">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                    </body>

+                    <iterator xsi:type="ocl.ecore:Variable" name="l">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </iterator>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/notEmpty"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+              </ifExpr>

+            </body>

+            <loopVariable name="rule">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="rules" eType="/3/Set(Constraint)" referredVariable="/0/generateModule/%.5/%.2/rules"/>

+          </body>

+          <letVariable name="rules" eType="/3/Set(Constraint)">

+            <initExpression xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Constraint)">

+              <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+              </source>

+              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedRule"/>

+            </initExpression>

+          </letVariable>

+        </body>

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;CONSTANTS "/>

+            <body xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.3/%/prop">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property/getDefault"/>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>

+            <loopVariable name="prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="vars" eType="/3/OrderedSet(Property)" referredVariable="/0/generateModule/%.5/%.3/vars"/>

+          </body>

+          <letVariable name="vars" eType="/3/OrderedSet(Property)">

+            <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier/attribute"/>

+              </source>

+              <body xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/%.3/vars/select/p">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuralFeature/isReadOnly"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                          <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                        </eAnnotations>

+                        <part xsi:type="ocl.ecore:CollectionItem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <item xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/%.3/vars/select/p">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:VariableExp" name="FlowPortQN" referredVariable="/0/generateModule/@init/@variable.2">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                          </item>

+                        </part>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/%.3/vars/select/p">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="ClientServerPortQN" referredVariable="/0/generateModule/@init/@variable.6">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/%.3/vars/select/p">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="MARTEFlowPortQN" referredVariable="/0/generateModule/@init/@variable.7">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+              </body>

+              <iterator xsi:type="ocl.ecore:Variable" name="p">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </iterator>

+            </initExpression>

+          </letVariable>

+        </body>

+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;IVAR&#x9;&#xA;"/>

+        <body xsi:type="mtl:ForBlock">

+          <body xsi:type="mtl:IfBlock">

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;"/>

+            <body xsi:type="ocl.ecore:PropertyCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.5/prop">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </source>

+              <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : boolean;&#xA;"/>

+            <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.5/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/oclIsInvalid"/>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+              </source>

+              <argument xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/equalsIgnoreCase">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  <argument xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.5/%.5/prop">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                  </argument>

+                </source>

+                <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="event">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                </argument>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+            </ifExpr>

+          </body>

+          <loopVariable name="prop">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+          </loopVariable>

+          <iterSet xsi:type="ocl.ecore:VariableExp" name="vars" eType="/3/OrderedSet(Property)" referredVariable="/0/generateModule/%.5/vars"/>

+        </body>

+        <letVariable name="vars" eType="/3/OrderedSet(Property)">

+          <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+              <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+              </source>

+              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier/attribute"/>

+            </source>

+            <body xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/vars/select/p">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateModule/@init/@variable.1">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/vars/select/p">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="FlowPortQN" referredVariable="/0/generateModule/@init/@variable.2">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/vars/select/p">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="ClientServerPortQN" referredVariable="/0/generateModule/@init/@variable.6">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+              </source>

+              <argument xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                  <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                    <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                  </eAnnotations>

+                  <part xsi:type="ocl.ecore:CollectionItem">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <item xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.5/vars/select/p">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="MARTEFlowPortQN" referredVariable="/0/generateModule/@init/@variable.7">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                    </item>

+                  </part>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+            </body>

+            <iterator xsi:type="ocl.ecore:Variable" name="p">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </iterator>

+          </initExpression>

+        </letVariable>

+      </body>

+      <body xsi:type="mtl:LetBlock">

+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>

+        <body xsi:type="mtl:ForBlock">

+          <body xsi:type="mtl:IfBlock">

+            <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.6/%.1/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/oclIsInvalid"/>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+              </source>

+              <argument xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/equalsIgnoreCase">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.6/%.1/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </argument>

+                  </source>

+                  <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="event">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  </argument>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+            </ifExpr>

+          </body>

+          <loopVariable name="prop">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+          </loopVariable>

+          <iterSet xsi:type="ocl.ecore:VariableExp" name="vars" eType="/3/OrderedSet(Property)" referredVariable="/0/generateModule/%.6/vars"/>

+        </body>

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:LetBlock">

+            <body xsi:type="mtl:ForBlock">

+              <body xsi:type="mtl:IfBlock">

+                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;"/>

+                <body xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateModule/%.6/%.2/%/%/tr">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/getLabel"/>

+                </body>

+                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : boolean;&#xA;"/>

+                <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateModule/%.6/%.2/%/%/tr">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="InternalFaultQN" referredVariable="/0/generateModule/@init/@variable.5">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateModule/%.6/%.2/%/%/tr">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="ExternalFaultQN" referredVariable="/0/generateModule/@init/@variable.4">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+                </ifExpr>

+              </body>

+              <loopVariable name="tr">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+              </loopVariable>

+              <iterSet xsi:type="ocl.ecore:VariableExp" name="transitions" eType="/3/Sequence(Transition)" referredVariable="/0/generateModule/%.6/%.2/%/transitions"/>

+            </body>

+            <letVariable name="transitions" eType="/3/Sequence(Transition)">

+              <initExpression xsi:type="ocl.ecore:OperationCallExp" eType="/3/Sequence(Transition)">

+                <source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/Bag(Transition)">

+                  <source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/3/Bag(Transition)">

+                    <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Region)">

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="errorModel" referredVariable="/0/generateModule/%.6/%.2/errorModel">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/StateMachine">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine/region"/>

+                    </source>

+                    <body xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Transition)">

+                      <source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/generateModule/%.6/%.2/%/transitions/%/select/collect/temp1">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region/transition"/>

+                    </body>

+                    <iterator xsi:type="ocl.ecore:Variable" name="temp1">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                    </iterator>

+                  </source>

+                  <body xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateModule/%.6/%.2/%/transitions/%/select/tr">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition/source"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Pseudostate">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Pseudostate"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateModule/%.6/%.2/%/transitions/%/select/tr">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition/target"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Pseudostate">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Pseudostate"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                  </body>

+                  <iterator xsi:type="ocl.ecore:Variable" name="tr">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                  </iterator>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Bag(T)_Class/asSequence"/>

+              </initExpression>

+            </letVariable>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;nominal_event : boolean;&#xA;"/>

+          <body xsi:type="mtl:LetBlock">

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;TRANS&#xA;    &#x9;nominal_event = FALSE;&#xA;"/>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="toNominal" eType="/3/Sequence(Transition)" referredVariable="/0/generateModule/%.6/%.2/%.2/toNominal"/>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/isEmpty"/>

+              </ifExpr>

+              <else>

+                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;TRANS&#xA;&#x9;&#x9;nominal_event = TRUE;&#xA;"/>

+              </else>

+            </body>

+            <letVariable name="toNominal" eType="/3/Sequence(Transition)">

+              <initExpression xsi:type="ocl.ecore:OperationCallExp" eType="/3/Sequence(Transition)">

+                <source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/Bag(Transition)">

+                  <source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/3/Bag(Transition)">

+                    <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Region)">

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="errorModel" referredVariable="/0/generateModule/%.6/%.2/errorModel">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/StateMachine">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine/region"/>

+                    </source>

+                    <body xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Transition)">

+                      <source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/collect/temp2">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region/transition"/>

+                    </body>

+                    <iterator xsi:type="ocl.ecore:Variable" name="temp2">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                    </iterator>

+                  </source>

+                  <body xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/tr">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition/source"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Pseudostate">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Pseudostate"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/tr">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition/target"/>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/getLabel"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="NominalState">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                  </body>

+                  <iterator xsi:type="ocl.ecore:Variable" name="tr">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                  </iterator>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Bag(T)_Class/asSequence"/>

+              </initExpression>

+            </letVariable>

+          </body>

+          <letVariable name="errorModel">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>

+            <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Behavior)">

+                <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//BehavioredClassifier/ownedBehavior"/>

+              </source>

+              <body xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                  <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                    <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                  </eAnnotations>

+                  <part xsi:type="ocl.ecore:CollectionItem">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <item xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="em" referredVariable="/0/generateModule/%.6/%.2/errorModel/any/em">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="ErrorModelQN" referredVariable="/0/generateModule/@init/@variable.3">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                    </item>

+                  </part>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+              </body>

+              <iterator xsi:type="ocl.ecore:Variable" name="em">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>

+              </iterator>

+            </initExpression>

+          </letVariable>

+        </body>

+        <letVariable name="vars" eType="/3/OrderedSet(Property)">

+          <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+              <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+              </source>

+              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier/attribute"/>

+            </source>

+            <body xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                  <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                    <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                  </eAnnotations>

+                  <part xsi:type="ocl.ecore:CollectionItem">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <item xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.6/vars/select/p">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateModule/@init/@variable.1">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                    </item>

+                  </part>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+              </source>

+              <argument xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.6/vars/select/p">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="FlowPortQN" referredVariable="/0/generateModule/@init/@variable.2">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <item xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.6/vars/select/p">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:VariableExp" name="MARTEFlowPortQN" referredVariable="/0/generateModule/@init/@variable.7">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        </argument>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+            </body>

+            <iterator xsi:type="ocl.ecore:Variable" name="p">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </iterator>

+          </initExpression>

+        </letVariable>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#xA;"/>

+      <body xsi:type="mtl:LetBlock">

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:LetBlock">

+            <body xsi:type="mtl:ForBlock">

+              <body xsi:type="mtl:IfBlock">

+                <body xsi:type="mtl:IfBlock">

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;ASSIGN&#xA;&#x9;next("/>

+                  <body xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=") :=&#xA;&#x9;&#x9;case&#xA;&#x9;&#x9;&#x9;"/>

+                  <body xsi:type="mtl:QueryInvocation" definition="/0/getEffectOnProperty">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="nominalModel" referredVariable="/0/generateModule/%.8/nominalModel">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </argument>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;&#x9;esac;&#x9;&#xA;"/>

+                  <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="mtl:QueryInvocation" definition="/0/getEffectOnProperty">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="nominalModel" referredVariable="/0/generateModule/%.8/nominalModel">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                      </argument>

+                      <argument xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                      </argument>

+                    </source>

+                    <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/%3C%3E"/>

+                  </ifExpr>

+                </body>

+                <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/equalsIgnoreCase">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <argument xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </argument>

+                    </source>

+                    <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="event">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                </ifExpr>

+              </body>

+              <body xsi:type="mtl:IfBlock">

+                <body xsi:type="mtl:IfBlock">

+                  <body xsi:type="mtl:IfBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;ASSIGN&#xA;&#x9;&#x9;init("/>

+                    <body xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=") := "/>

+                    <body xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Sequence(String)">

+                        <source xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                          <source xsi:type="ocl.ecore:PropertyCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property/defaultValue"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:TypeExp" eType="/20/OpaqueExpression">

+                            <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression/body"/>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/first"/>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;"/>

+                    <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property/defaultValue"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/20/OpaqueExpression">

+                        <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+                    </ifExpr>

+                  </body>

+                  <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property/defaultValue"/>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsUndefined"/>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuralFeature/isReadOnly"/>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                  </ifExpr>

+                </body>

+                <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateModule/%.8/%/%/%/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </argument>

+                  </source>

+                  <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="event">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/%3C%3E"/>

+                </ifExpr>

+              </body>

+              <loopVariable name="prop">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </loopVariable>

+              <iterSet xsi:type="ocl.ecore:VariableExp" name="vars" eType="/3/OrderedSet(Property)" referredVariable="/0/generateModule/%.8/%/%/vars"/>

+            </body>

+            <letVariable name="vars" eType="/3/OrderedSet(Property)">

+              <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">

+                <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier/attribute"/>

+                </source>

+                <body xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                          <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                        </eAnnotations>

+                        <part xsi:type="ocl.ecore:CollectionItem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <item xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.8/%/%/vars/select/p">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateModule/@init/@variable.1">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                          </item>

+                        </part>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                          <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                        </eAnnotations>

+                        <part xsi:type="ocl.ecore:CollectionItem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <item xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.8/%/%/vars/select/p">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:VariableExp" name="FlowPortQN" referredVariable="/0/generateModule/@init/@variable.2">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                          </item>

+                        </part>

+                      </source>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                        <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                      </eAnnotations>

+                      <part xsi:type="ocl.ecore:CollectionItem">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                        <item xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateModule/%.8/%/%/vars/select/p">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="ClientServerPortQN" referredVariable="/0/generateModule/@init/@variable.6">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                        </item>

+                      </part>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                </body>

+                <iterator xsi:type="ocl.ecore:Variable" name="p">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </iterator>

+              </initExpression>

+            </letVariable>

+          </body>

+          <letVariable name="trSet" eType="/3/Set(Transition)">

+            <initExpression xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Transition)">

+              <source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/3/Bag(Transition)">

+                <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Region)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="nominalModel" referredVariable="/0/generateModule/%.8/nominalModel">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine/region"/>

+                </source>

+                <body xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Transition)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/generateModule/%.8/%/trSet/%/collect/temp3">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region/transition"/>

+                </body>

+                <iterator xsi:type="ocl.ecore:Variable" name="temp3">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                </iterator>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Bag(T)_Class/asSet"/>

+            </initExpression>

+          </letVariable>

+        </body>

+        <letVariable name="nominalModel">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+          <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+            <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(StateMachine)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Behavior)">

+                <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//BehavioredClassifier/ownedBehavior"/>

+              </source>

+              <argument xsi:type="ocl.ecore:TypeExp" eType="/20/StateMachine">

+                <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+              </argument>

+            </source>

+            <body xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(Stereotype)">

+                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                </eAnnotations>

+                <part xsi:type="ocl.ecore:CollectionItem">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                  <item xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/generateModule/%.8/nominalModel/any/sm">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                    </source>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="ErrorModelQN" referredVariable="/0/generateModule/@init/@variable.3">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    </argument>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                  </item>

+                </part>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+            </body>

+            <iterator xsi:type="ocl.ecore:Variable" name="sm">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+            </iterator>

+          </initExpression>

+        </letVariable>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="-- END MODULE "/>

+      <body xsi:type="ocl.ecore:PropertyCallExp">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </source>

+        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+      </body>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" --&#xA;"/>

+      <body xsi:type="mtl:LetBlock">

+        <body xsi:type="mtl:ForBlock">

+          <body xsi:type="mtl:IfBlock">

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="mtl:LetBlock">

+                <body xsi:type="mtl:TemplateInvocation" definition="/0/generateModule">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="newblock" referredVariable="/0/generateModule/%.12/%/%/%/%/newblock">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  </argument>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="allBlocks" eType="/3/Set(Class)" referredVariable="/0/generateModule/allBlocks"/>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/generateModule/generated"/>

+                  <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  </argument>

+                </body>

+                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>

+                <letVariable name="newblock">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="allBlocks" eType="/3/Set(Class)" referredVariable="/0/generateModule/allBlocks"/>

+                    <body xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateModule/%.12/%/part">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="/0/generateModule/%.12/%/%/%/%/newblock/any/c">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>

+                    </body>

+                    <iterator xsi:type="ocl.ecore:Variable" name="c">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </iterator>

+                  </initExpression>

+                </letVariable>

+              </body>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="mtl:QueryInvocation">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <definition href="generate.emtl#/0/isPart"/>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateModule/%.12/%/part">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </argument>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="mtl:QueryInvocation">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <definition href="generate.emtl#/0/isAlreadyGenerated"/>

+                    <argument xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateModule/%.12/%/part">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </argument>

+                    <argument xsi:type="ocl.ecore:VariableExp" name="generated" eType="/3/Set(String)" referredVariable="/0/generateModule/generated"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+              </ifExpr>

+            </body>

+            <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/generateModule/%.12/%/part">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/oclIsInvalid"/>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+            </ifExpr>

+          </body>

+          <loopVariable name="part">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+          </loopVariable>

+          <iterSet xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/OrderedSet(Property)" referredVariable="/0/generateModule/%.12/parts"/>

+        </body>

+        <letVariable name="parts" eType="/3/OrderedSet(Property)">

+          <initExpression xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(Property)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">

+              <source xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/generateModule/block">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+              </source>

+              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+            </source>

+            <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Property">

+              <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </argument>

+          </initExpression>

+        </letVariable>

+      </body>

+      <parameter name="block">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </parameter>

+      <parameter name="allBlocks" eType="/3/Set(Class)"/>

+      <parameter name="generated" eType="/3/Set(String)"/>

+      <parameter name="isSystem">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+      </parameter>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getTransitionTarget" visibility="Public">

+      <parameter name="name">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="str">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/129">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getTransitionTarget(java.lang.String, java.lang.String)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(String)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="name" referredVariable="/0/getTransitionTarget/name">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </item>

+          </part>

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="str" referredVariable="/0/getTransitionTarget/str">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getType" visibility="Public">

+      <parameter name="type">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/132">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getType4FTA(org.eclipse.uml2.uml.Type)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Type)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/getType/type">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getInitCondition" visibility="Public">

+      <parameter name="sm">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/135">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getInitCondition(org.eclipse.uml2.uml.StateMachine)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(StateMachine)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/getInitCondition/sm">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getPropertyAffectedByTransition" visibility="Public">

+      <parameter name="t">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/138">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getPropertyAffectedByTransition(org.eclipse.uml2.uml.Transition)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Transition)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="t" referredVariable="/0/getPropertyAffectedByTransition/t">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getEffectOnProperty" visibility="Public">

+      <parameter name="sm">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+      </parameter>

+      <parameter name="propertyName">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/141">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getEffectOnProperty(org.eclipse.uml2.uml.StateMachine, java.lang.String)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(OclAny)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/getEffectOnProperty/sm">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+            </item>

+          </part>

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="propertyName" referredVariable="/0/getEffectOnProperty/propertyName">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getModuleFormalParameter" visibility="Public">

+      <parameter name="block">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/144">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getModuleFormalParameter(org.eclipse.uml2.uml.Class)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Class)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/getModuleFormalParameter/block">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getModuleInstanceActualParameter" visibility="Public">

+      <parameter name="block">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </parameter>

+      <parameter name="prop">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/147">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getModuleInstanceActualParameter(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Property)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(ParameterableElement)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="block" referredVariable="/0/getModuleInstanceActualParameter/block">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            </item>

+          </part>

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/getModuleInstanceActualParameter/prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getTypeNameForProperty" visibility="Public">

+      <parameter name="prop">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/150">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getTypeNameForProperty(org.eclipse.uml2.uml.Property)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Property)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/getTypeNameForProperty/prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+  </mtl:Module>

+  <ecore:EPackage name="additions">

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_String_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </eAnnotations>

+      <eOperations name="endsWith">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="substring">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="contains">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="substring">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="equalsIgnoreCase">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="other">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Integer_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Real_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ecore_EObject_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+      </eAnnotations>

+      <eOperations name="generateErrorModel">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/generateErrorModel"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="model">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+        </eParameters>

+        <eParameters name="sysQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="sysName">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="filename">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="generateModule">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/generateModule"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="block">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </eParameters>

+        <eParameters name="allBlocks" eType="/3/Set(Class)"/>

+        <eParameters name="generated" eType="/3/Set(String)"/>

+        <eParameters name="isSystem">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getTransitionTarget">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getTransitionTarget"/>

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <eParameters name="name">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="str">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getType">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getType"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="type">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getInitCondition">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getInitCondition"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="sm">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getPropertyAffectedByTransition">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getPropertyAffectedByTransition"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="t">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getEffectOnProperty">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getEffectOnProperty"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="sm">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+        </eParameters>

+        <eParameters name="propertyName">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getModuleFormalParameter">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getModuleFormalParameter"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="block">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getModuleInstanceActualParameter">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getModuleInstanceActualParameter"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="block">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </eParameters>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getTypeNameForProperty">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getTypeNameForProperty"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getSystem">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL">

+          <references href="generate.emtl#/0/getSystem"/>

+        </eAnnotations>

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        <eParameters name="classes">

+          <eType xsi:type="ocl.ecore:SetType" href="generate.emtl#/3/Set(Class)"/>

+        </eParameters>

+        <eParameters name="qname">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getAllBlocks">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL">

+          <references href="generate.emtl#/0/getAllBlocks"/>

+        </eAnnotations>

+        <eType xsi:type="ocl.ecore:SetType" href="generate.emtl#/3/Set(Class)"/>

+        <eParameters name="classes">

+          <eType xsi:type="ocl.ecore:SetType" href="generate.emtl#/3/Set(Class)"/>

+        </eParameters>

+        <eParameters name="blockQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="SubSystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="SystemQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getAllComponents">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL">

+          <references href="generate.emtl#/0/getAllComponents"/>

+        </eAnnotations>

+        <eType xsi:type="ocl.ecore:SetType" href="generate.emtl#/3/Set(Component)"/>

+        <eParameters name="hwcomps">

+          <eType xsi:type="ocl.ecore:SetType" href="generate.emtl#/3/Set(Component)"/>

+        </eParameters>

+        <eParameters name="comps">

+          <eType xsi:type="ocl.ecore:SetType" href="generate.emtl#/3/Set(Component)"/>

+        </eParameters>

+        <eParameters name="CompImplQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="PlatformQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="isPart">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL">

+          <references href="generate.emtl#/0/isPart"/>

+        </eAnnotations>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getEmptyStringSet">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL">

+          <references href="generate.emtl#/0/getEmptyStringSet"/>

+        </eAnnotations>

+        <eType xsi:type="ocl.ecore:SetType" href="generate.emtl#/3/Set(String)"/>

+        <eParameters name="traceCtx">

+          <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="addToGenerated">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL">

+          <references href="generate.emtl#/0/addToGenerated"/>

+        </eAnnotations>

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <eParameters name="name">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="generated">

+          <eType xsi:type="ocl.ecore:SetType" href="generate.emtl#/3/Set(String)"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="isAlreadyGenerated">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL">

+          <references href="generate.emtl#/0/isAlreadyGenerated"/>

+        </eAnnotations>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="name">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="generated">

+          <eType xsi:type="ocl.ecore:SetType" href="generate.emtl#/3/Set(String)"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OclAny_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+      </eAnnotations>

+      <eOperations name="toString">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </eOperations>

+      <eOperations name="invoke">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <eParameters name="class">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="method">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="arguments">

+          <eType xsi:type="ocl.ecore:SequenceType" href="http://www.eclipse.org/acceleo/mtl/3.0/mtlnonstdlib.ecore#//Sequence(OclAny)"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Collection(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>

+      </eAnnotations>

+      <eOperations name="filter">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>

+        <eParameters name="filter">

+          <eType xsi:type="ocl.ecore:TypeType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclType"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Sequence(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OrderedSet(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Model_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Class_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Type_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_StateMachine_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Transition_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Property_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Port_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Operation_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="collections_Set(Class)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="generate.emtl#/3/Set(Class)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="collections_Set(Component)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="generate.emtl#/3/Set(Component)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Connector_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="collections_Set(Property)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="generate.emtl#/3/Set(Property)"/>

+      </eAnnotations>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ecore:EPackage name="collections">

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Class)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(String)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Package)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Stereotype)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Element)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(Class)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Component)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Property)" instanceClassName="java.util.LinkedHashSet">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Constraint)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(String)" instanceClassName="java.util.LinkedHashSet">

+      <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List">

+      <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Behavior)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Region)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Transition)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(Transition)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Transition)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(StateMachine)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(OclAny)" instanceClassName="java.util.List">

+      <elementType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Type)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(StateMachine)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Class)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(ParameterableElement)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ParameterableElement"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Property)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ecore:EPackage name="types">

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Class">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Component">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="OpaqueExpression">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//OpaqueExpression"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="StateMachine">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Pseudostate">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Pseudostate"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Property">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ecore:EAnnotation source="positions">

+    <eAnnotations source="positions.0" references="/0/generateErrorModel">

+      <details key="start" value="845"/>

+      <details key="end" value="2457"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1" references="/0/generateErrorModel/@init">

+      <details key="start" value="949"/>

+      <details key="end" value="1416"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.2" references="/0/generateErrorModel/@init/@variable.0">

+      <details key="start" value="952"/>

+      <details key="end" value="995"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.3" references="/0/generateErrorModel/@init/@variable.0/%">

+      <details key="start" value="972"/>

+      <details key="end" value="995"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.4" references="/0/generateErrorModel/@init/@variable.1">

+      <details key="start" value="998"/>

+      <details key="end" value="1047"/>

+      <details key="line" value="24"/>

+    </eAnnotations>

+    <eAnnotations source="positions.5" references="/0/generateErrorModel/@init/@variable.1/%">

+      <details key="start" value="1021"/>

+      <details key="end" value="1047"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.6" references="/0/generateErrorModel/@init/@variable.2">

+      <details key="start" value="1051"/>

+      <details key="end" value="1112"/>

+      <details key="line" value="25"/>

+    </eAnnotations>

+    <eAnnotations source="positions.7" references="/0/generateErrorModel/@init/@variable.2/%">

+      <details key="start" value="1075"/>

+      <details key="end" value="1112"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.8" references="/0/generateErrorModel/@init/@variable.3">

+      <details key="start" value="1115"/>

+      <details key="end" value="1177"/>

+      <details key="line" value="26"/>

+    </eAnnotations>

+    <eAnnotations source="positions.9" references="/0/generateErrorModel/@init/@variable.3/%">

+      <details key="start" value="1137"/>

+      <details key="end" value="1177"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.10" references="/0/generateErrorModel/@init/@variable.4">

+      <details key="start" value="1180"/>

+      <details key="end" value="1243"/>

+      <details key="line" value="27"/>

+    </eAnnotations>

+    <eAnnotations source="positions.11" references="/0/generateErrorModel/@init/@variable.4/%">

+      <details key="start" value="1202"/>

+      <details key="end" value="1243"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.12" references="/0/generateErrorModel/@init/@variable.5">

+      <details key="start" value="1246"/>

+      <details key="end" value="1316"/>

+      <details key="line" value="28"/>

+    </eAnnotations>

+    <eAnnotations source="positions.13" references="/0/generateErrorModel/@init/@variable.5/%">

+      <details key="start" value="1268"/>

+      <details key="end" value="1316"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.14" references="/0/generateErrorModel/@init/@variable.6">

+      <details key="start" value="1319"/>

+      <details key="end" value="1360"/>

+      <details key="line" value="29"/>

+    </eAnnotations>

+    <eAnnotations source="positions.15" references="/0/generateErrorModel/@init/@variable.6/%">

+      <details key="start" value="1338"/>

+      <details key="end" value="1360"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.16" references="/0/generateErrorModel/@init/@variable.7">

+      <details key="start" value="1363"/>

+      <details key="end" value="1413"/>

+      <details key="line" value="30"/>

+    </eAnnotations>

+    <eAnnotations source="positions.17" references="/0/generateErrorModel/@init/@variable.7/%">

+      <details key="start" value="1384"/>

+      <details key="end" value="1413"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.18" references="/0/generateErrorModel/%">

+      <details key="start" value="1435"/>

+      <details key="end" value="2445"/>

+      <details key="line" value="33"/>

+    </eAnnotations>

+    <eAnnotations source="positions.19" references="/0/generateErrorModel/%/%">

+      <details key="start" value="1485"/>

+      <details key="end" value="2437"/>

+      <details key="line" value="34"/>

+    </eAnnotations>

+    <eAnnotations source="positions.20" references="/0/generateErrorModel/%/%/%">

+      <details key="start" value="1605"/>

+      <details key="end" value="2429"/>

+      <details key="line" value="35"/>

+    </eAnnotations>

+    <eAnnotations source="positions.21" references="/0/generateErrorModel/%/%/%/%">

+      <details key="start" value="1724"/>

+      <details key="end" value="2421"/>

+      <details key="line" value="36"/>

+    </eAnnotations>

+    <eAnnotations source="positions.22" references="/0/generateErrorModel/%/%/%/%/%">

+      <details key="start" value="1846"/>

+      <details key="end" value="2413"/>

+      <details key="line" value="37"/>

+    </eAnnotations>

+    <eAnnotations source="positions.23" references="/0/generateErrorModel/%/%/%/%/%/%">

+      <details key="start" value="2025"/>

+      <details key="end" value="2405"/>

+      <details key="line" value="38"/>

+    </eAnnotations>

+    <eAnnotations source="positions.24" references="/0/generateErrorModel/%/%/%/%/%/%/%">

+      <details key="start" value="2207"/>

+      <details key="end" value="2397"/>

+      <details key="line" value="39"/>

+    </eAnnotations>

+    <eAnnotations source="positions.25" references="/0/generateErrorModel/%/%/%/%/%/%/%/%">

+      <details key="start" value="2260"/>

+      <details key="end" value="2389"/>

+      <details key="line" value="40"/>

+    </eAnnotations>

+    <eAnnotations source="positions.26" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/%">

+      <details key="start" value="2312"/>

+      <details key="end" value="2379"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.27" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/%/system">

+      <details key="start" value="2327"/>

+      <details key="end" value="2333"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.28" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/%/%">

+      <details key="start" value="2335"/>

+      <details key="end" value="2361"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.29" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/%/%/allBlocks">

+      <details key="start" value="2335"/>

+      <details key="end" value="2344"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.30" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/%/%/allComps">

+      <details key="start" value="2352"/>

+      <details key="end" value="2360"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.31" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/%/generated">

+      <details key="start" value="2363"/>

+      <details key="end" value="2372"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.32" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/%/%.1">

+      <details key="start" value="2374"/>

+      <details key="end" value="2378"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.33" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/%.1">

+      <details key="start" value="2381"/>

+      <details key="end" value="2382"/>

+      <details key="line" value="42"/>

+    </eAnnotations>

+    <eAnnotations source="positions.34" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/system">

+      <details key="start" value="2265"/>

+      <details key="end" value="2309"/>

+      <details key="line" value="40"/>

+    </eAnnotations>

+    <eAnnotations source="positions.35" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/system/%">

+      <details key="start" value="2283"/>

+      <details key="end" value="2310"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.36" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/system/%/allBlocks">

+      <details key="start" value="2293"/>

+      <details key="end" value="2302"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.37" references="/0/generateErrorModel/%/%/%/%/%/%/%/%/system/%/sysQN">

+      <details key="start" value="2304"/>

+      <details key="end" value="2309"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.38" references="/0/generateErrorModel/%/%/%/%/%/%/%/generated">

+      <details key="start" value="2212"/>

+      <details key="end" value="2257"/>

+      <details key="line" value="39"/>

+    </eAnnotations>

+    <eAnnotations source="positions.39" references="/0/generateErrorModel/%/%/%/%/%/%/%/generated/%">

+      <details key="start" value="2239"/>

+      <details key="end" value="2258"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.40" references="/0/generateErrorModel/%/%/%/%/%/%/%/generated/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.41" references="/0/generateErrorModel/%/%/%/%/%/%/allComps">

+      <details key="start" value="2030"/>

+      <details key="end" value="2204"/>

+      <details key="line" value="38"/>

+    </eAnnotations>

+    <eAnnotations source="positions.42" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%">

+      <details key="start" value="2059"/>

+      <details key="end" value="2205"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.43" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/%">

+      <details key="start" value="2076"/>

+      <details key="end" value="2128"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.44" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/%/%">

+      <details key="start" value="2076"/>

+      <details key="end" value="2109"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.45" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/%/%/deploymentView">

+      <details key="start" value="2076"/>

+      <details key="end" value="2090"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.46" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/%/%.1">

+      <details key="start" value="2118"/>

+      <details key="end" value="2127"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.47" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/%.1">

+      <details key="start" value="2130"/>

+      <details key="end" value="2181"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.48" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/%.1/%">

+      <details key="start" value="2130"/>

+      <details key="end" value="2162"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.49" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/%.1/%/componentView">

+      <details key="start" value="2130"/>

+      <details key="end" value="2143"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.50" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/%.1/%.1">

+      <details key="start" value="2171"/>

+      <details key="end" value="2180"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.51" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/CompImplQN">

+      <details key="start" value="2183"/>

+      <details key="end" value="2193"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.52" references="/0/generateErrorModel/%/%/%/%/%/%/allComps/%/SRACompQN">

+      <details key="start" value="2195"/>

+      <details key="end" value="2204"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.53" references="/0/generateErrorModel/%/%/%/%/%/allBlocks">

+      <details key="start" value="1851"/>

+      <details key="end" value="2022"/>

+      <details key="line" value="37"/>

+    </eAnnotations>

+    <eAnnotations source="positions.54" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%">

+      <details key="start" value="1877"/>

+      <details key="end" value="2023"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.55" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/%">

+      <details key="start" value="1890"/>

+      <details key="end" value="1990"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.56" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/%/%">

+      <details key="start" value="1890"/>

+      <details key="end" value="1937"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.57" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/%/%/%">

+      <details key="start" value="1890"/>

+      <details key="end" value="1922"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.58" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/%/%/%/componentView">

+      <details key="start" value="1890"/>

+      <details key="end" value="1903"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.59" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/%/%/%.1">

+      <details key="start" value="1931"/>

+      <details key="end" value="1936"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.60" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/%/%.1">

+      <details key="start" value="1945"/>

+      <details key="end" value="1989"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.61" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/%/%.1/%">

+      <details key="start" value="1945"/>

+      <details key="end" value="1974"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.62" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/%/%.1/%/systemView">

+      <details key="start" value="1945"/>

+      <details key="end" value="1955"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.63" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/%/%.1/%.1">

+      <details key="start" value="1983"/>

+      <details key="end" value="1988"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.64" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/BlockQN">

+      <details key="start" value="1992"/>

+      <details key="end" value="1999"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.65" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/SubSystemQN">

+      <details key="start" value="2001"/>

+      <details key="end" value="2012"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.66" references="/0/generateErrorModel/%/%/%/%/%/allBlocks/%/SystemQN">

+      <details key="start" value="2014"/>

+      <details key="end" value="2022"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.67" references="/0/generateErrorModel/%/%/%/%/deploymentView">

+      <details key="start" value="1729"/>

+      <details key="end" value="1843"/>

+      <details key="line" value="36"/>

+    </eAnnotations>

+    <eAnnotations source="positions.68" references="/0/generateErrorModel/%/%/%/%/deploymentView/any">

+      <details key="start" value="1759"/>

+      <details key="end" value="1845"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.69" references="/0/generateErrorModel/%/%/%/%/deploymentView/any/%">

+      <details key="start" value="1759"/>

+      <details key="end" value="1778"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.70" references="/0/generateErrorModel/%/%/%/%/deploymentView/any/%/model">

+      <details key="start" value="1759"/>

+      <details key="end" value="1764"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.71" references="/0/generateErrorModel/%/%/%/%/deploymentView/any/%.1">

+      <details key="start" value="1798"/>

+      <details key="end" value="1844"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.72" references="/0/generateErrorModel/%/%/%/%/deploymentView/any/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.73" references="/0/generateErrorModel/%/%/%/%/deploymentView/any/%.1/%/%/%">

+      <details key="start" value="1798"/>

+      <details key="end" value="1832"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.74" references="/0/generateErrorModel/%/%/%/%/deploymentView/any/%.1/%/%/%/p">

+      <details key="start" value="1798"/>

+      <details key="end" value="1799"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.75" references="/0/generateErrorModel/%/%/%/%/deploymentView/any/%.1/%/%/%/DeplViewQN">

+      <details key="start" value="1821"/>

+      <details key="end" value="1831"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.76" references="/0/generateErrorModel/%/%/%/%/deploymentView/any/p">

+      <details key="start" value="1784"/>

+      <details key="end" value="1795"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.77" references="/0/generateErrorModel/%/%/%/systemView">

+      <details key="start" value="1610"/>

+      <details key="end" value="1721"/>

+      <details key="line" value="35"/>

+    </eAnnotations>

+    <eAnnotations source="positions.78" references="/0/generateErrorModel/%/%/%/systemView/any">

+      <details key="start" value="1634"/>

+      <details key="end" value="1722"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.79" references="/0/generateErrorModel/%/%/%/systemView/any/%">

+      <details key="start" value="1634"/>

+      <details key="end" value="1653"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.80" references="/0/generateErrorModel/%/%/%/systemView/any/%/model">

+      <details key="start" value="1634"/>

+      <details key="end" value="1639"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.81" references="/0/generateErrorModel/%/%/%/systemView/any/%.1">

+      <details key="start" value="1673"/>

+      <details key="end" value="1721"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.82" references="/0/generateErrorModel/%/%/%/systemView/any/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.83" references="/0/generateErrorModel/%/%/%/systemView/any/%.1/%/%/%">

+      <details key="start" value="1673"/>

+      <details key="end" value="1709"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.84" references="/0/generateErrorModel/%/%/%/systemView/any/%.1/%/%/%/p">

+      <details key="start" value="1673"/>

+      <details key="end" value="1674"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.85" references="/0/generateErrorModel/%/%/%/systemView/any/%.1/%/%/%/SystemViewQN">

+      <details key="start" value="1696"/>

+      <details key="end" value="1708"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.86" references="/0/generateErrorModel/%/%/%/systemView/any/p">

+      <details key="start" value="1659"/>

+      <details key="end" value="1670"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.87" references="/0/generateErrorModel/%/%/componentView">

+      <details key="start" value="1490"/>

+      <details key="end" value="1602"/>

+      <details key="line" value="34"/>

+    </eAnnotations>

+    <eAnnotations source="positions.88" references="/0/generateErrorModel/%/%/componentView/any">

+      <details key="start" value="1517"/>

+      <details key="end" value="1603"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.89" references="/0/generateErrorModel/%/%/componentView/any/%">

+      <details key="start" value="1517"/>

+      <details key="end" value="1536"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.90" references="/0/generateErrorModel/%/%/componentView/any/%/model">

+      <details key="start" value="1517"/>

+      <details key="end" value="1522"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.91" references="/0/generateErrorModel/%/%/componentView/any/%.1">

+      <details key="start" value="1556"/>

+      <details key="end" value="1602"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.92" references="/0/generateErrorModel/%/%/componentView/any/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.93" references="/0/generateErrorModel/%/%/componentView/any/%.1/%/%/%">

+      <details key="start" value="1556"/>

+      <details key="end" value="1590"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.94" references="/0/generateErrorModel/%/%/componentView/any/%.1/%/%/%/p">

+      <details key="start" value="1556"/>

+      <details key="end" value="1557"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.95" references="/0/generateErrorModel/%/%/componentView/any/%.1/%/%/%/CompViewQN">

+      <details key="start" value="1579"/>

+      <details key="end" value="1589"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.96" references="/0/generateErrorModel/%/%/componentView/any/p">

+      <details key="start" value="1542"/>

+      <details key="end" value="1553"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.97" references="/0/generateErrorModel/%/%.1">

+      <details key="start" value="1442"/>

+      <details key="end" value="1465"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.98" references="/0/generateErrorModel/%/%.1/filename">

+      <details key="start" value="1442"/>

+      <details key="end" value="1450"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.99" references="/0/generateErrorModel/%/%.1/%">

+      <details key="start" value="1458"/>

+      <details key="end" value="1464"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.100" references="/0/generateErrorModel/%/%.2">

+      <details key="start" value="1474"/>

+      <details key="end" value="1481"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.101" references="/0/generateErrorModel/model">

+      <details key="start" value="881"/>

+      <details key="end" value="894"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.102" references="/0/generateErrorModel/sysQN">

+      <details key="start" value="896"/>

+      <details key="end" value="910"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.103" references="/0/generateErrorModel/sysName">

+      <details key="start" value="913"/>

+      <details key="end" value="929"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.104" references="/0/generateErrorModel/filename">

+      <details key="start" value="931"/>

+      <details key="end" value="948"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.105" references="/0/generateModule">

+      <details key="start" value="2458"/>

+      <details key="end" value="9218"/>

+      <details key="line" value="51"/>

+    </eAnnotations>

+    <eAnnotations source="positions.106" references="/0/generateModule/@init">

+      <details key="start" value="2572"/>

+      <details key="end" value="3153"/>

+      <details key="line" value="51"/>

+    </eAnnotations>

+    <eAnnotations source="positions.107" references="/0/generateModule/@init/@variable.0">

+      <details key="start" value="2575"/>

+      <details key="end" value="2618"/>

+      <details key="line" value="52"/>

+    </eAnnotations>

+    <eAnnotations source="positions.108" references="/0/generateModule/@init/@variable.0/%">

+      <details key="start" value="2595"/>

+      <details key="end" value="2618"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.109" references="/0/generateModule/@init/@variable.1">

+      <details key="start" value="2621"/>

+      <details key="end" value="2680"/>

+      <details key="line" value="53"/>

+    </eAnnotations>

+    <eAnnotations source="positions.110" references="/0/generateModule/@init/@variable.1/%">

+      <details key="start" value="2647"/>

+      <details key="end" value="2680"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.111" references="/0/generateModule/@init/@variable.2">

+      <details key="start" value="2683"/>

+      <details key="end" value="2736"/>

+      <details key="line" value="54"/>

+    </eAnnotations>

+    <eAnnotations source="positions.112" references="/0/generateModule/@init/@variable.2/%">

+      <details key="start" value="2705"/>

+      <details key="end" value="2736"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.113" references="/0/generateModule/@init/@variable.3">

+      <details key="start" value="2739"/>

+      <details key="end" value="2817"/>

+      <details key="line" value="55"/>

+    </eAnnotations>

+    <eAnnotations source="positions.114" references="/0/generateModule/@init/@variable.3/%">

+      <details key="start" value="2763"/>

+      <details key="end" value="2817"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.115" references="/0/generateModule/@init/@variable.4">

+      <details key="start" value="2820"/>

+      <details key="end" value="2910"/>

+      <details key="line" value="56"/>

+    </eAnnotations>

+    <eAnnotations source="positions.116" references="/0/generateModule/@init/@variable.4/%">

+      <details key="start" value="2847"/>

+      <details key="end" value="2910"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.117" references="/0/generateModule/@init/@variable.5">

+      <details key="start" value="2913"/>

+      <details key="end" value="2997"/>

+      <details key="line" value="57"/>

+    </eAnnotations>

+    <eAnnotations source="positions.118" references="/0/generateModule/@init/@variable.5/%">

+      <details key="start" value="2940"/>

+      <details key="end" value="2997"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.119" references="/0/generateModule/@init/@variable.6">

+      <details key="start" value="3000"/>

+      <details key="end" value="3079"/>

+      <details key="line" value="58"/>

+    </eAnnotations>

+    <eAnnotations source="positions.120" references="/0/generateModule/@init/@variable.6/%">

+      <details key="start" value="3030"/>

+      <details key="end" value="3079"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.121" references="/0/generateModule/@init/@variable.7">

+      <details key="start" value="3082"/>

+      <details key="end" value="3150"/>

+      <details key="line" value="59"/>

+    </eAnnotations>

+    <eAnnotations source="positions.122" references="/0/generateModule/@init/@variable.7/%">

+      <details key="start" value="3109"/>

+      <details key="end" value="3150"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.123" references="/0/generateModule/%">

+      <details key="start" value="3155"/>

+      <details key="end" value="3156"/>

+      <details key="line" value="61"/>

+    </eAnnotations>

+    <eAnnotations source="positions.124" references="/0/generateModule/%.1">

+      <details key="start" value="3157"/>

+      <details key="end" value="3194"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.125" references="/0/generateModule/%.1/%">

+      <details key="start" value="3172"/>

+      <details key="end" value="3182"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.126" references="/0/generateModule/%.1/%/block">

+      <details key="start" value="3172"/>

+      <details key="end" value="3177"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.127" references="/0/generateModule/%.1/generated">

+      <details key="start" value="3184"/>

+      <details key="end" value="3193"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.128" references="/0/generateModule/%.2">

+      <details key="start" value="3196"/>

+      <details key="end" value="3197"/>

+      <details key="line" value="62"/>

+    </eAnnotations>

+    <eAnnotations source="positions.129" references="/0/generateModule/%.3">

+      <details key="start" value="3197"/>

+      <details key="end" value="3294"/>

+      <details key="line" value="62"/>

+    </eAnnotations>

+    <eAnnotations source="positions.130" references="/0/generateModule/%.3/%">

+      <details key="start" value="3213"/>

+      <details key="end" value="3225"/>

+      <details key="line" value="63"/>

+    </eAnnotations>

+    <eAnnotations source="positions.131" references="/0/generateModule/%.3/isSystem">

+      <details key="start" value="3201"/>

+      <details key="end" value="3211"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.132" references="/0/generateModule/%.3/%.1">

+      <details key="start" value="3225"/>

+      <details key="end" value="3289"/>

+      <details key="line" value="64"/>

+    </eAnnotations>

+    <eAnnotations source="positions.133" references="/0/generateModule/%.3/%.1/%">

+      <details key="start" value="3232"/>

+      <details key="end" value="3239"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.134" references="/0/generateModule/%.3/%.1/%.1">

+      <details key="start" value="3240"/>

+      <details key="end" value="3250"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.135" references="/0/generateModule/%.3/%.1/%.1/block">

+      <details key="start" value="3240"/>

+      <details key="end" value="3245"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.136" references="/0/generateModule/%.3/%.1/%.2">

+      <details key="start" value="3252"/>

+      <details key="end" value="3253"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.137" references="/0/generateModule/%.3/%.1/%.3">

+      <details key="start" value="3254"/>

+      <details key="end" value="3285"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.138" references="/0/generateModule/%.3/%.1/%.3/block">

+      <details key="start" value="3279"/>

+      <details key="end" value="3284"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.139" references="/0/generateModule/%.3/%.1/%.4">

+      <details key="start" value="3287"/>

+      <details key="end" value="3289"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.140" references="/0/generateModule/%.4">

+      <details key="start" value="3295"/>

+      <details key="end" value="3300"/>

+      <details key="line" value="67"/>

+    </eAnnotations>

+    <eAnnotations source="positions.141" references="/0/generateModule/%.5">

+      <details key="start" value="3301"/>

+      <details key="end" value="5815"/>

+      <details key="line" value="68"/>

+    </eAnnotations>

+    <eAnnotations source="positions.142" references="/0/generateModule/%.5/%">

+      <details key="start" value="3597"/>

+      <details key="end" value="3959"/>

+      <details key="line" value="71"/>

+    </eAnnotations>

+    <eAnnotations source="positions.143" references="/0/generateModule/%.5/%/%">

+      <details key="start" value="3629"/>

+      <details key="end" value="3951"/>

+      <details key="line" value="72"/>

+    </eAnnotations>

+    <eAnnotations source="positions.144" references="/0/generateModule/%.5/%/%/%">

+      <details key="start" value="3847"/>

+      <details key="end" value="3849"/>

+      <details key="line" value="74"/>

+    </eAnnotations>

+    <eAnnotations source="positions.145" references="/0/generateModule/%.5/%/%/%.1">

+      <details key="start" value="3850"/>

+      <details key="end" value="3859"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.146" references="/0/generateModule/%.5/%/%/%.1/prop">

+      <details key="start" value="3850"/>

+      <details key="end" value="3854"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.147" references="/0/generateModule/%.5/%/%/%.2">

+      <details key="start" value="3861"/>

+      <details key="end" value="3864"/>

+      <details key="line" value="74"/>

+    </eAnnotations>

+    <eAnnotations source="positions.148" references="/0/generateModule/%.5/%/%/%.3">

+      <details key="start" value="3865"/>

+      <details key="end" value="3893"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.149" references="/0/generateModule/%.5/%/%/%.3/prop">

+      <details key="start" value="3888"/>

+      <details key="end" value="3892"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.150" references="/0/generateModule/%.5/%/%/%.4">

+      <details key="start" value="3896"/>

+      <details key="end" value="3941"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.151" references="/0/generateModule/%.5/%/%/%.4/block">

+      <details key="start" value="3929"/>

+      <details key="end" value="3934"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.152" references="/0/generateModule/%.5/%/%/%.4/prop">

+      <details key="start" value="3936"/>

+      <details key="end" value="3940"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.153" references="/0/generateModule/%.5/%/%/%.5">

+      <details key="start" value="3943"/>

+      <details key="end" value="3945"/>

+      <details key="line" value="74"/>

+    </eAnnotations>

+    <eAnnotations source="positions.154" references="/0/generateModule/%.5/%/%/%.6">

+      <details key="start" value="3633"/>

+      <details key="end" value="3723"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.155" references="/0/generateModule/%.5/%/%/%.6/%">

+      <details key="start" value="3634"/>

+      <details key="end" value="3667"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.156" references="/0/generateModule/%.5/%/%/%.6/%/%">

+      <details key="start" value="3638"/>

+      <details key="end" value="3667"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.157" references="/0/generateModule/%.5/%/%/%.6/%/%/%">

+      <details key="start" value="3638"/>

+      <details key="end" value="3652"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.158" references="/0/generateModule/%.5/%/%/%.6/%/%/%/%">

+      <details key="start" value="3638"/>

+      <details key="end" value="3647"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.159" references="/0/generateModule/%.5/%/%/%.6/%/%/%/%/prop">

+      <details key="start" value="3638"/>

+      <details key="end" value="3642"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.160" references="/0/generateModule/%.5/%/%/%.6/%.1">

+      <details key="start" value="3672"/>

+      <details key="end" value="3722"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.161" references="/0/generateModule/%.5/%/%/%.6/%.1/%">

+      <details key="start" value="3676"/>

+      <details key="end" value="3722"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.162" references="/0/generateModule/%.5/%/%/%.6/%.1/%/%">

+      <details key="start" value="3677"/>

+      <details key="end" value="3695"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.163" references="/0/generateModule/%.5/%/%/%.6/%.1/%/%/%">

+      <details key="start" value="3685"/>

+      <details key="end" value="3694"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.164" references="/0/generateModule/%.5/%/%/%.6/%.1/%/%/%/prop">

+      <details key="start" value="3685"/>

+      <details key="end" value="3689"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.165" references="/0/generateModule/%.5/%/%/%.6/%.1/%/%.1">

+      <details key="start" value="3713"/>

+      <details key="end" value="3720"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.166" references="/0/generateModule/%.5/%/prop">

+      <details key="start" value="3603"/>

+      <details key="end" value="3618"/>

+      <details key="line" value="71"/>

+    </eAnnotations>

+    <eAnnotations source="positions.167" references="/0/generateModule/%.5/%/vars">

+      <details key="start" value="3621"/>

+      <details key="end" value="3625"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.168" references="/0/generateModule/%.5/%.1">

+      <details key="start" value="3961"/>

+      <details key="end" value="4741"/>

+      <details key="line" value="77"/>

+    </eAnnotations>

+    <eAnnotations source="positions.169" references="/0/generateModule/%.5/%.1/%">

+      <details key="start" value="4259"/>

+      <details key="end" value="4733"/>

+      <details key="line" value="80"/>

+    </eAnnotations>

+    <eAnnotations source="positions.170" references="/0/generateModule/%.5/%.1/%/%">

+      <details key="start" value="4292"/>

+      <details key="end" value="4725"/>

+      <details key="line" value="81"/>

+    </eAnnotations>

+    <eAnnotations source="positions.171" references="/0/generateModule/%.5/%.1/%/%/%">

+      <details key="start" value="4436"/>

+      <details key="end" value="4718"/>

+      <details key="line" value="83"/>

+    </eAnnotations>

+    <eAnnotations source="positions.172" references="/0/generateModule/%.5/%.1/%/%/%/%">

+      <details key="start" value="4518"/>

+      <details key="end" value="4709"/>

+      <details key="line" value="84"/>

+    </eAnnotations>

+    <eAnnotations source="positions.173" references="/0/generateModule/%.5/%.1/%/%/%/%/%">

+      <details key="start" value="4604"/>

+      <details key="end" value="4606"/>

+      <details key="line" value="84"/>

+    </eAnnotations>

+    <eAnnotations source="positions.174" references="/0/generateModule/%.5/%.1/%/%/%/%/%.1">

+      <details key="start" value="4607"/>

+      <details key="end" value="4616"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.175" references="/0/generateModule/%.5/%.1/%/%/%/%/%.1/prop">

+      <details key="start" value="4607"/>

+      <details key="end" value="4611"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.176" references="/0/generateModule/%.5/%.1/%/%/%/%/%.2">

+      <details key="start" value="4618"/>

+      <details key="end" value="4621"/>

+      <details key="line" value="85"/>

+    </eAnnotations>

+    <eAnnotations source="positions.177" references="/0/generateModule/%.5/%.1/%/%/%/%/%.3">

+      <details key="start" value="4622"/>

+      <details key="end" value="4650"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.178" references="/0/generateModule/%.5/%.1/%/%/%/%/%.3/prop">

+      <details key="start" value="4645"/>

+      <details key="end" value="4649"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.179" references="/0/generateModule/%.5/%.1/%/%/%/%/%.4">

+      <details key="start" value="4653"/>

+      <details key="end" value="4698"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.180" references="/0/generateModule/%.5/%.1/%/%/%/%/%.4/block">

+      <details key="start" value="4686"/>

+      <details key="end" value="4691"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.181" references="/0/generateModule/%.5/%.1/%/%/%/%/%.4/prop">

+      <details key="start" value="4693"/>

+      <details key="end" value="4697"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.182" references="/0/generateModule/%.5/%.1/%/%/%/%/%.5">

+      <details key="start" value="4700"/>

+      <details key="end" value="4702"/>

+      <details key="line" value="85"/>

+    </eAnnotations>

+    <eAnnotations source="positions.183" references="/0/generateModule/%.5/%.1/%/%/%/%/%.6">

+      <details key="start" value="4522"/>

+      <details key="end" value="4601"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.184" references="/0/generateModule/%.5/%.1/%/%/%/%/%.6/%">

+      <details key="start" value="4523"/>

+      <details key="end" value="4576"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.185" references="/0/generateModule/%.5/%.1/%/%/%/%/%.6/%/%">

+      <details key="start" value="4523"/>

+      <details key="end" value="4565"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.186" references="/0/generateModule/%.5/%.1/%/%/%/%/%.6/%/%/prop">

+      <details key="start" value="4523"/>

+      <details key="end" value="4527"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.187" references="/0/generateModule/%.5/%.1/%/%/%/%/%.6/%/%/flowPortStereo">

+      <details key="start" value="4537"/>

+      <details key="end" value="4551"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.188" references="/0/generateModule/%.5/%.1/%/%/%/%/%.6/%/%/%">

+      <details key="start" value="4553"/>

+      <details key="end" value="4564"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.189" references="/0/generateModule/%.5/%.1/%/%/%/%/%.6/%.1">

+      <details key="start" value="4594"/>

+      <details key="end" value="4599"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.190" references="/0/generateModule/%.5/%.1/%/%/%/flowPortStereo">

+      <details key="start" value="4441"/>

+      <details key="end" value="4513"/>

+      <details key="line" value="83"/>

+    </eAnnotations>

+    <eAnnotations source="positions.191" references="/0/generateModule/%.5/%.1/%/%/%/flowPortStereo/%">

+      <details key="start" value="4472"/>

+      <details key="end" value="4514"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.192" references="/0/generateModule/%.5/%.1/%/%/%/flowPortStereo/%/prop">

+      <details key="start" value="4472"/>

+      <details key="end" value="4476"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.193" references="/0/generateModule/%.5/%.1/%/%/%/flowPortStereo/%/MARTEFlowPortQN">

+      <details key="start" value="4498"/>

+      <details key="end" value="4513"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.194" references="/0/generateModule/%.5/%.1/%/%/%.1">

+      <details key="start" value="4296"/>

+      <details key="end" value="4386"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.195" references="/0/generateModule/%.5/%.1/%/%/%.1/%">

+      <details key="start" value="4297"/>

+      <details key="end" value="4330"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.196" references="/0/generateModule/%.5/%.1/%/%/%.1/%/%">

+      <details key="start" value="4301"/>

+      <details key="end" value="4330"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.197" references="/0/generateModule/%.5/%.1/%/%/%.1/%/%/%">

+      <details key="start" value="4301"/>

+      <details key="end" value="4315"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.198" references="/0/generateModule/%.5/%.1/%/%/%.1/%/%/%/%">

+      <details key="start" value="4301"/>

+      <details key="end" value="4310"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.199" references="/0/generateModule/%.5/%.1/%/%/%.1/%/%/%/%/prop">

+      <details key="start" value="4301"/>

+      <details key="end" value="4305"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.200" references="/0/generateModule/%.5/%.1/%/%/%.1/%.1">

+      <details key="start" value="4335"/>

+      <details key="end" value="4385"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.201" references="/0/generateModule/%.5/%.1/%/%/%.1/%.1/%">

+      <details key="start" value="4339"/>

+      <details key="end" value="4385"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.202" references="/0/generateModule/%.5/%.1/%/%/%.1/%.1/%/%">

+      <details key="start" value="4340"/>

+      <details key="end" value="4358"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.203" references="/0/generateModule/%.5/%.1/%/%/%.1/%.1/%/%/%">

+      <details key="start" value="4348"/>

+      <details key="end" value="4357"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.204" references="/0/generateModule/%.5/%.1/%/%/%.1/%.1/%/%/%/prop">

+      <details key="start" value="4348"/>

+      <details key="end" value="4352"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.205" references="/0/generateModule/%.5/%.1/%/%/%.1/%.1/%/%.1">

+      <details key="start" value="4376"/>

+      <details key="end" value="4383"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.206" references="/0/generateModule/%.5/%.1/%/prop">

+      <details key="start" value="4265"/>

+      <details key="end" value="4280"/>

+      <details key="line" value="80"/>

+    </eAnnotations>

+    <eAnnotations source="positions.207" references="/0/generateModule/%.5/%.1/%/ports">

+      <details key="start" value="4283"/>

+      <details key="end" value="4288"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.208" references="/0/generateModule/%.5/%.1/ports">

+      <details key="start" value="3966"/>

+      <details key="end" value="4256"/>

+      <details key="line" value="77"/>

+    </eAnnotations>

+    <eAnnotations source="positions.209" references="/0/generateModule/%.5/%.1/ports/select">

+      <details key="start" value="3998"/>

+      <details key="end" value="4257"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.210" references="/0/generateModule/%.5/%.1/ports/select/%">

+      <details key="start" value="3998"/>

+      <details key="end" value="4013"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.211" references="/0/generateModule/%.5/%.1/ports/select/%/block">

+      <details key="start" value="3998"/>

+      <details key="end" value="4003"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.212" references="/0/generateModule/%.5/%.1/ports/select/%.1">

+      <details key="start" value="4037"/>

+      <details key="end" value="4256"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.213" references="/0/generateModule/%.5/%.1/ports/select/%.1/%">

+      <details key="start" value="4037"/>

+      <details key="end" value="4197"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.214" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%">

+      <details key="start" value="4037"/>

+      <details key="end" value="4139"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.215" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%">

+      <details key="start" value="4037"/>

+      <details key="end" value="4086"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.216" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.217" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%/%/%/%">

+      <details key="start" value="4037"/>

+      <details key="end" value="4075"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.218" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%/%/%/%/p">

+      <details key="start" value="4037"/>

+      <details key="end" value="4038"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.219" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%/%/%/%/ContractPropQN">

+      <details key="start" value="4060"/>

+      <details key="end" value="4074"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.220" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%.1">

+      <details key="start" value="4094"/>

+      <details key="end" value="4139"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.221" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.222" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%.1/%/%/%">

+      <details key="start" value="4094"/>

+      <details key="end" value="4128"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.223" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%.1/%/%/%/p">

+      <details key="start" value="4094"/>

+      <details key="end" value="4095"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.224" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%/%.1/%/%/%/FlowPortQN">

+      <details key="start" value="4117"/>

+      <details key="end" value="4127"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.225" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%.1">

+      <details key="start" value="4144"/>

+      <details key="end" value="4197"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.226" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.227" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%.1/%/%/%">

+      <details key="start" value="4144"/>

+      <details key="end" value="4186"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.228" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%.1/%/%/%/p">

+      <details key="start" value="4144"/>

+      <details key="end" value="4145"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.229" references="/0/generateModule/%.5/%.1/ports/select/%.1/%/%.1/%/%/%/ClientServerPortQN">

+      <details key="start" value="4167"/>

+      <details key="end" value="4185"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.230" references="/0/generateModule/%.5/%.1/ports/select/%.1/%.1">

+      <details key="start" value="4205"/>

+      <details key="end" value="4256"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.231" references="/0/generateModule/%.5/%.1/ports/select/%.1/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.232" references="/0/generateModule/%.5/%.1/ports/select/%.1/%.1/%/%/%">

+      <details key="start" value="4205"/>

+      <details key="end" value="4244"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.233" references="/0/generateModule/%.5/%.1/ports/select/%.1/%.1/%/%/%/p">

+      <details key="start" value="4205"/>

+      <details key="end" value="4206"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.234" references="/0/generateModule/%.5/%.1/ports/select/%.1/%.1/%/%/%/MARTEFlowPortQN">

+      <details key="start" value="4228"/>

+      <details key="end" value="4243"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.235" references="/0/generateModule/%.5/%.1/ports/select/p">

+      <details key="start" value="4022"/>

+      <details key="end" value="4034"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.236" references="/0/generateModule/%.5/%.2">

+      <details key="start" value="4743"/>

+      <details key="end" value="5297"/>

+      <details key="line" value="91"/>

+    </eAnnotations>

+    <eAnnotations source="positions.237" references="/0/generateModule/%.5/%.2/%">

+      <details key="start" value="4792"/>

+      <details key="end" value="5289"/>

+      <details key="line" value="92"/>

+    </eAnnotations>

+    <eAnnotations source="positions.238" references="/0/generateModule/%.5/%.2/%/%">

+      <details key="start" value="4827"/>

+      <details key="end" value="5281"/>

+      <details key="line" value="93"/>

+    </eAnnotations>

+    <eAnnotations source="positions.239" references="/0/generateModule/%.5/%.2/%/%/%">

+      <details key="start" value="5000"/>

+      <details key="end" value="5274"/>

+      <details key="line" value="95"/>

+    </eAnnotations>

+    <eAnnotations source="positions.240" references="/0/generateModule/%.5/%.2/%/%/%/%">

+      <details key="start" value="5098"/>

+      <details key="end" value="5266"/>

+      <details key="line" value="96"/>

+    </eAnnotations>

+    <eAnnotations source="positions.241" references="/0/generateModule/%.5/%.2/%/%/%/%/%">

+      <details key="start" value="5184"/>

+      <details key="end" value="5193"/>

+      <details key="line" value="97"/>

+    </eAnnotations>

+    <eAnnotations source="positions.242" references="/0/generateModule/%.5/%.2/%/%/%/%/%.1">

+      <details key="start" value="5194"/>

+      <details key="end" value="5209"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.243" references="/0/generateModule/%.5/%.2/%/%/%/%/%.1/rule">

+      <details key="start" value="5194"/>

+      <details key="end" value="5198"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.244" references="/0/generateModule/%.5/%.2/%/%/%/%/%.2">

+      <details key="start" value="5211"/>

+      <details key="end" value="5215"/>

+      <details key="line" value="98"/>

+    </eAnnotations>

+    <eAnnotations source="positions.245" references="/0/generateModule/%.5/%.2/%/%/%/%/spec">

+      <details key="start" value="5216"/>

+      <details key="end" value="5220"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.246" references="/0/generateModule/%.5/%.2/%/%/%/%/%.3">

+      <details key="start" value="5222"/>

+      <details key="end" value="5258"/>

+      <details key="line" value="98"/>

+    </eAnnotations>

+    <eAnnotations source="positions.247" references="/0/generateModule/%.5/%.2/%/%/%/%/%.3/%">

+      <details key="start" value="5250"/>

+      <details key="end" value="5252"/>

+      <details key="line" value="98"/>

+    </eAnnotations>

+    <eAnnotations source="positions.248" references="/0/generateModule/%.5/%.2/%/%/%/%/%.3/%.1">

+      <details key="start" value="5226"/>

+      <details key="end" value="5249"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.249" references="/0/generateModule/%.5/%.2/%/%/%/%/%.3/%.1/%">

+      <details key="start" value="5229"/>

+      <details key="end" value="5249"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.250" references="/0/generateModule/%.5/%.2/%/%/%/%/%.3/%.1/%/spec">

+      <details key="start" value="5230"/>

+      <details key="end" value="5234"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.251" references="/0/generateModule/%.5/%.2/%/%/%/%/%.3/%.1/%/%">

+      <details key="start" value="5244"/>

+      <details key="end" value="5247"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.252" references="/0/generateModule/%.5/%.2/%/%/%/%/spec.1">

+      <details key="start" value="5103"/>

+      <details key="end" value="5182"/>

+      <details key="line" value="96"/>

+    </eAnnotations>

+    <eAnnotations source="positions.253" references="/0/generateModule/%.5/%.2/%/%/%/%/spec.1/%">

+      <details key="start" value="5120"/>

+      <details key="end" value="5183"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.254" references="/0/generateModule/%.5/%.2/%/%/%/%/spec.1/%/%">

+      <details key="start" value="5120"/>

+      <details key="end" value="5172"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.255" references="/0/generateModule/%.5/%.2/%/%/%/%/spec.1/%/%/%">

+      <details key="start" value="5120"/>

+      <details key="end" value="5166"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.256" references="/0/generateModule/%.5/%.2/%/%/%/%/spec.1/%/%/%/%">

+      <details key="start" value="5120"/>

+      <details key="end" value="5138"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.257" references="/0/generateModule/%.5/%.2/%/%/%/%/spec.1/%/%/%/%/rule">

+      <details key="start" value="5120"/>

+      <details key="end" value="5124"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.258" references="/0/generateModule/%.5/%.2/%/%/%/%/spec.1/%/%/%/%.1">

+      <details key="start" value="5149"/>

+      <details key="end" value="5165"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.259" references="/0/generateModule/%.5/%.2/%/%/%/%/spec.1/%/index">

+      <details key="start" value="5177"/>

+      <details key="end" value="5182"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.260" references="/0/generateModule/%.5/%.2/%/%/%/index">

+      <details key="start" value="5006"/>

+      <details key="end" value="5095"/>

+      <details key="line" value="95"/>

+    </eAnnotations>

+    <eAnnotations source="positions.261" references="/0/generateModule/%.5/%.2/%/%/%/index/%">

+      <details key="start" value="5025"/>

+      <details key="end" value="5096"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.262" references="/0/generateModule/%.5/%.2/%/%/%/index/%/%">

+      <details key="start" value="5025"/>

+      <details key="end" value="5080"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.263" references="/0/generateModule/%.5/%.2/%/%/%/index/%/%/%">

+      <details key="start" value="5025"/>

+      <details key="end" value="5071"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.264" references="/0/generateModule/%.5/%.2/%/%/%/index/%/%/%/%">

+      <details key="start" value="5025"/>

+      <details key="end" value="5043"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.265" references="/0/generateModule/%.5/%.2/%/%/%/index/%/%/%/%/rule">

+      <details key="start" value="5025"/>

+      <details key="end" value="5029"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.266" references="/0/generateModule/%.5/%.2/%/%/%/index/%/%/%/%.1">

+      <details key="start" value="5054"/>

+      <details key="end" value="5070"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.267" references="/0/generateModule/%.5/%.2/%/%/%/index/%/%.1">

+      <details key="start" value="5090"/>

+      <details key="end" value="5095"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.268" references="/0/generateModule/%.5/%.2/%/%/%.1">

+      <details key="start" value="4831"/>

+      <details key="end" value="4997"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.269" references="/0/generateModule/%.5/%.2/%/%/%.1/%">

+      <details key="start" value="4832"/>

+      <details key="end" value="4880"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.270" references="/0/generateModule/%.5/%.2/%/%/%.1/%/%">

+      <details key="start" value="4832"/>

+      <details key="end" value="4850"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.271" references="/0/generateModule/%.5/%.2/%/%/%.1/%/%/rule">

+      <details key="start" value="4832"/>

+      <details key="end" value="4836"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.272" references="/0/generateModule/%.5/%.2/%/%/%.1/%/%.1">

+      <details key="start" value="4863"/>

+      <details key="end" value="4879"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.273" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1">

+      <details key="start" value="4888"/>

+      <details key="end" value="4996"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.274" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select">

+      <details key="start" value="4888"/>

+      <details key="end" value="4984"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.275" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/%">

+      <details key="start" value="4888"/>

+      <details key="end" value="4943"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.276" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/%/%">

+      <details key="start" value="4888"/>

+      <details key="end" value="4934"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.277" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/%/%/%">

+      <details key="start" value="4888"/>

+      <details key="end" value="4906"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.278" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/%/%/%/rule">

+      <details key="start" value="4888"/>

+      <details key="end" value="4892"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.279" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/%/%/%.1">

+      <details key="start" value="4917"/>

+      <details key="end" value="4933"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.280" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/%.1">

+      <details key="start" value="4966"/>

+      <details key="end" value="4983"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.281" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/%.1/l">

+      <details key="start" value="4966"/>

+      <details key="end" value="4967"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.282" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/%.1/%">

+      <details key="start" value="4977"/>

+      <details key="end" value="4982"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.283" references="/0/generateModule/%.5/%.2/%/%/%.1/%.1/select/l">

+      <details key="start" value="4953"/>

+      <details key="end" value="4963"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.284" references="/0/generateModule/%.5/%.2/%/rule">

+      <details key="start" value="4798"/>

+      <details key="end" value="4815"/>

+      <details key="line" value="92"/>

+    </eAnnotations>

+    <eAnnotations source="positions.285" references="/0/generateModule/%.5/%.2/%/rules">

+      <details key="start" value="4818"/>

+      <details key="end" value="4823"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.286" references="/0/generateModule/%.5/%.2/rules">

+      <details key="start" value="4748"/>

+      <details key="end" value="4789"/>

+      <details key="line" value="91"/>

+    </eAnnotations>

+    <eAnnotations source="positions.287" references="/0/generateModule/%.5/%.2/rules/%">

+      <details key="start" value="4775"/>

+      <details key="end" value="4790"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.288" references="/0/generateModule/%.5/%.2/rules/%/block">

+      <details key="start" value="4775"/>

+      <details key="end" value="4780"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.289" references="/0/generateModule/%.5/%.3">

+      <details key="start" value="5299"/>

+      <details key="end" value="5636"/>

+      <details key="line" value="105"/>

+    </eAnnotations>

+    <eAnnotations source="positions.290" references="/0/generateModule/%.5/%.3/%">

+      <details key="start" value="5558"/>

+      <details key="end" value="5628"/>

+      <details key="line" value="108"/>

+    </eAnnotations>

+    <eAnnotations source="positions.291" references="/0/generateModule/%.5/%.3/%/%">

+      <details key="start" value="5589"/>

+      <details key="end" value="5600"/>

+      <details key="line" value="109"/>

+    </eAnnotations>

+    <eAnnotations source="positions.292" references="/0/generateModule/%.5/%.3/%/%.1">

+      <details key="start" value="5601"/>

+      <details key="end" value="5618"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.293" references="/0/generateModule/%.5/%.3/%/%.1/prop">

+      <details key="start" value="5601"/>

+      <details key="end" value="5605"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.294" references="/0/generateModule/%.5/%.3/%/%.2">

+      <details key="start" value="5620"/>

+      <details key="end" value="5621"/>

+      <details key="line" value="110"/>

+    </eAnnotations>

+    <eAnnotations source="positions.295" references="/0/generateModule/%.5/%.3/%/prop">

+      <details key="start" value="5564"/>

+      <details key="end" value="5579"/>

+      <details key="line" value="108"/>

+    </eAnnotations>

+    <eAnnotations source="positions.296" references="/0/generateModule/%.5/%.3/%/vars">

+      <details key="start" value="5582"/>

+      <details key="end" value="5586"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.297" references="/0/generateModule/%.5/%.3/vars">

+      <details key="start" value="5304"/>

+      <details key="end" value="5555"/>

+      <details key="line" value="105"/>

+    </eAnnotations>

+    <eAnnotations source="positions.298" references="/0/generateModule/%.5/%.3/vars/select">

+      <details key="start" value="5335"/>

+      <details key="end" value="5556"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.299" references="/0/generateModule/%.5/%.3/vars/select/%">

+      <details key="start" value="5335"/>

+      <details key="end" value="5350"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.300" references="/0/generateModule/%.5/%.3/vars/select/%/block">

+      <details key="start" value="5335"/>

+      <details key="end" value="5340"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.301" references="/0/generateModule/%.5/%.3/vars/select/%.1">

+      <details key="start" value="5374"/>

+      <details key="end" value="5555"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.302" references="/0/generateModule/%.5/%.3/vars/select/%.1/%">

+      <details key="start" value="5374"/>

+      <details key="end" value="5497"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.303" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%">

+      <details key="start" value="5374"/>

+      <details key="end" value="5439"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.304" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%/%">

+      <details key="start" value="5374"/>

+      <details key="end" value="5386"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.305" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%/%/p">

+      <details key="start" value="5374"/>

+      <details key="end" value="5375"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.306" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%/%.1">

+      <details key="start" value="5394"/>

+      <details key="end" value="5439"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.307" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.308" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%/%.1/%/%/%">

+      <details key="start" value="5394"/>

+      <details key="end" value="5428"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.309" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%/%.1/%/%/%/p">

+      <details key="start" value="5394"/>

+      <details key="end" value="5395"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.310" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%/%.1/%/%/%/FlowPortQN">

+      <details key="start" value="5417"/>

+      <details key="end" value="5427"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.311" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%.1">

+      <details key="start" value="5444"/>

+      <details key="end" value="5497"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.312" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.313" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%.1/%/%/%">

+      <details key="start" value="5444"/>

+      <details key="end" value="5486"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.314" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%.1/%/%/%/p">

+      <details key="start" value="5444"/>

+      <details key="end" value="5445"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.315" references="/0/generateModule/%.5/%.3/vars/select/%.1/%/%.1/%/%/%/ClientServerPortQN">

+      <details key="start" value="5467"/>

+      <details key="end" value="5485"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.316" references="/0/generateModule/%.5/%.3/vars/select/%.1/%.1">

+      <details key="start" value="5505"/>

+      <details key="end" value="5555"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.317" references="/0/generateModule/%.5/%.3/vars/select/%.1/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.318" references="/0/generateModule/%.5/%.3/vars/select/%.1/%.1/%/%/%">

+      <details key="start" value="5505"/>

+      <details key="end" value="5544"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.319" references="/0/generateModule/%.5/%.3/vars/select/%.1/%.1/%/%/%/p">

+      <details key="start" value="5505"/>

+      <details key="end" value="5506"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.320" references="/0/generateModule/%.5/%.3/vars/select/%.1/%.1/%/%/%/MARTEFlowPortQN">

+      <details key="start" value="5528"/>

+      <details key="end" value="5543"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.321" references="/0/generateModule/%.5/%.3/vars/select/p">

+      <details key="start" value="5359"/>

+      <details key="end" value="5371"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.322" references="/0/generateModule/%.5/%.4">

+      <details key="start" value="5637"/>

+      <details key="end" value="5644"/>

+      <details key="line" value="112"/>

+    </eAnnotations>

+    <eAnnotations source="positions.323" references="/0/generateModule/%.5/%.5">

+      <details key="start" value="5645"/>

+      <details key="end" value="5807"/>

+      <details key="line" value="113"/>

+    </eAnnotations>

+    <eAnnotations source="positions.324" references="/0/generateModule/%.5/%.5/%">

+      <details key="start" value="5677"/>

+      <details key="end" value="5799"/>

+      <details key="line" value="114"/>

+    </eAnnotations>

+    <eAnnotations source="positions.325" references="/0/generateModule/%.5/%.5/%/%">

+      <details key="start" value="5767"/>

+      <details key="end" value="5769"/>

+      <details key="line" value="115"/>

+    </eAnnotations>

+    <eAnnotations source="positions.326" references="/0/generateModule/%.5/%.5/%/%.1">

+      <details key="start" value="5770"/>

+      <details key="end" value="5779"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.327" references="/0/generateModule/%.5/%.5/%/%.1/prop">

+      <details key="start" value="5770"/>

+      <details key="end" value="5774"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.328" references="/0/generateModule/%.5/%.5/%/%.2">

+      <details key="start" value="5781"/>

+      <details key="end" value="5793"/>

+      <details key="line" value="115"/>

+    </eAnnotations>

+    <eAnnotations source="positions.329" references="/0/generateModule/%.5/%.5/%/%.3">

+      <details key="start" value="5681"/>

+      <details key="end" value="5765"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.330" references="/0/generateModule/%.5/%.5/%/%.3/%">

+      <details key="start" value="5682"/>

+      <details key="end" value="5715"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.331" references="/0/generateModule/%.5/%.5/%/%.3/%/%">

+      <details key="start" value="5686"/>

+      <details key="end" value="5715"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.332" references="/0/generateModule/%.5/%.5/%/%.3/%/%/%">

+      <details key="start" value="5686"/>

+      <details key="end" value="5700"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.333" references="/0/generateModule/%.5/%.5/%/%.3/%/%/%/%">

+      <details key="start" value="5686"/>

+      <details key="end" value="5695"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.334" references="/0/generateModule/%.5/%.5/%/%.3/%/%/%/%/prop">

+      <details key="start" value="5686"/>

+      <details key="end" value="5690"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.335" references="/0/generateModule/%.5/%.5/%/%.3/%.1">

+      <details key="start" value="5720"/>

+      <details key="end" value="5764"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.336" references="/0/generateModule/%.5/%.5/%/%.3/%.1/%">

+      <details key="start" value="5720"/>

+      <details key="end" value="5738"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.337" references="/0/generateModule/%.5/%.5/%/%.3/%.1/%/%">

+      <details key="start" value="5728"/>

+      <details key="end" value="5737"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.338" references="/0/generateModule/%.5/%.5/%/%.3/%.1/%/%/prop">

+      <details key="start" value="5728"/>

+      <details key="end" value="5732"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.339" references="/0/generateModule/%.5/%.5/%/%.3/%.1/%.1">

+      <details key="start" value="5756"/>

+      <details key="end" value="5763"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.340" references="/0/generateModule/%.5/%.5/prop">

+      <details key="start" value="5651"/>

+      <details key="end" value="5666"/>

+      <details key="line" value="113"/>

+    </eAnnotations>

+    <eAnnotations source="positions.341" references="/0/generateModule/%.5/%.5/vars">

+      <details key="start" value="5669"/>

+      <details key="end" value="5673"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.342" references="/0/generateModule/%.5/vars">

+      <details key="start" value="3306"/>

+      <details key="end" value="3594"/>

+      <details key="line" value="68"/>

+    </eAnnotations>

+    <eAnnotations source="positions.343" references="/0/generateModule/%.5/vars/select">

+      <details key="start" value="3337"/>

+      <details key="end" value="3595"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.344" references="/0/generateModule/%.5/vars/select/%">

+      <details key="start" value="3337"/>

+      <details key="end" value="3352"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.345" references="/0/generateModule/%.5/vars/select/%/block">

+      <details key="start" value="3337"/>

+      <details key="end" value="3342"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.346" references="/0/generateModule/%.5/vars/select/%.1">

+      <details key="start" value="3376"/>

+      <details key="end" value="3594"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.347" references="/0/generateModule/%.5/vars/select/%.1/%">

+      <details key="start" value="3376"/>

+      <details key="end" value="3536"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.348" references="/0/generateModule/%.5/vars/select/%.1/%/%">

+      <details key="start" value="3376"/>

+      <details key="end" value="3478"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.349" references="/0/generateModule/%.5/vars/select/%.1/%/%/%">

+      <details key="start" value="3376"/>

+      <details key="end" value="3425"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.350" references="/0/generateModule/%.5/vars/select/%.1/%/%/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.351" references="/0/generateModule/%.5/vars/select/%.1/%/%/%/%/%/%">

+      <details key="start" value="3376"/>

+      <details key="end" value="3414"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.352" references="/0/generateModule/%.5/vars/select/%.1/%/%/%/%/%/%/p">

+      <details key="start" value="3376"/>

+      <details key="end" value="3377"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.353" references="/0/generateModule/%.5/vars/select/%.1/%/%/%/%/%/%/ContractPropQN">

+      <details key="start" value="3399"/>

+      <details key="end" value="3413"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.354" references="/0/generateModule/%.5/vars/select/%.1/%/%/%.1">

+      <details key="start" value="3433"/>

+      <details key="end" value="3478"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.355" references="/0/generateModule/%.5/vars/select/%.1/%/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.356" references="/0/generateModule/%.5/vars/select/%.1/%/%/%.1/%/%/%">

+      <details key="start" value="3433"/>

+      <details key="end" value="3467"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.357" references="/0/generateModule/%.5/vars/select/%.1/%/%/%.1/%/%/%/p">

+      <details key="start" value="3433"/>

+      <details key="end" value="3434"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.358" references="/0/generateModule/%.5/vars/select/%.1/%/%/%.1/%/%/%/FlowPortQN">

+      <details key="start" value="3456"/>

+      <details key="end" value="3466"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.359" references="/0/generateModule/%.5/vars/select/%.1/%/%.1">

+      <details key="start" value="3483"/>

+      <details key="end" value="3536"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.360" references="/0/generateModule/%.5/vars/select/%.1/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.361" references="/0/generateModule/%.5/vars/select/%.1/%/%.1/%/%/%">

+      <details key="start" value="3483"/>

+      <details key="end" value="3525"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.362" references="/0/generateModule/%.5/vars/select/%.1/%/%.1/%/%/%/p">

+      <details key="start" value="3483"/>

+      <details key="end" value="3484"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.363" references="/0/generateModule/%.5/vars/select/%.1/%/%.1/%/%/%/ClientServerPortQN">

+      <details key="start" value="3506"/>

+      <details key="end" value="3524"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.364" references="/0/generateModule/%.5/vars/select/%.1/%.1">

+      <details key="start" value="3544"/>

+      <details key="end" value="3594"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.365" references="/0/generateModule/%.5/vars/select/%.1/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.366" references="/0/generateModule/%.5/vars/select/%.1/%.1/%/%/%">

+      <details key="start" value="3544"/>

+      <details key="end" value="3583"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.367" references="/0/generateModule/%.5/vars/select/%.1/%.1/%/%/%/p">

+      <details key="start" value="3544"/>

+      <details key="end" value="3545"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.368" references="/0/generateModule/%.5/vars/select/%.1/%.1/%/%/%/MARTEFlowPortQN">

+      <details key="start" value="3567"/>

+      <details key="end" value="3582"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.369" references="/0/generateModule/%.5/vars/select/p">

+      <details key="start" value="3361"/>

+      <details key="end" value="3373"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.370" references="/0/generateModule/%.6">

+      <details key="start" value="5818"/>

+      <details key="end" value="7371"/>

+      <details key="line" value="119"/>

+    </eAnnotations>

+    <eAnnotations source="positions.371" references="/0/generateModule/%.6/%">

+      <details key="start" value="6056"/>

+      <details key="end" value="6057"/>

+      <details key="line" value="121"/>

+    </eAnnotations>

+    <eAnnotations source="positions.372" references="/0/generateModule/%.6/%.1">

+      <details key="start" value="6058"/>

+      <details key="end" value="6260"/>

+      <details key="line" value="122"/>

+    </eAnnotations>

+    <eAnnotations source="positions.373" references="/0/generateModule/%.6/%.1/%">

+      <details key="start" value="6090"/>

+      <details key="end" value="6252"/>

+      <details key="line" value="123"/>

+    </eAnnotations>

+    <eAnnotations source="positions.374" references="/0/generateModule/%.6/%.1/%/%">

+      <details key="start" value="6094"/>

+      <details key="end" value="6184"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.375" references="/0/generateModule/%.6/%.1/%/%/%">

+      <details key="start" value="6095"/>

+      <details key="end" value="6128"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.376" references="/0/generateModule/%.6/%.1/%/%/%/%">

+      <details key="start" value="6099"/>

+      <details key="end" value="6128"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.377" references="/0/generateModule/%.6/%.1/%/%/%/%/%">

+      <details key="start" value="6099"/>

+      <details key="end" value="6113"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.378" references="/0/generateModule/%.6/%.1/%/%/%/%/%/%">

+      <details key="start" value="6099"/>

+      <details key="end" value="6108"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.379" references="/0/generateModule/%.6/%.1/%/%/%/%/%/%/prop">

+      <details key="start" value="6099"/>

+      <details key="end" value="6103"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.380" references="/0/generateModule/%.6/%.1/%/%/%.1">

+      <details key="start" value="6133"/>

+      <details key="end" value="6183"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.381" references="/0/generateModule/%.6/%.1/%/%/%.1/%">

+      <details key="start" value="6137"/>

+      <details key="end" value="6183"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.382" references="/0/generateModule/%.6/%.1/%/%/%.1/%/%">

+      <details key="start" value="6138"/>

+      <details key="end" value="6156"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.383" references="/0/generateModule/%.6/%.1/%/%/%.1/%/%/%">

+      <details key="start" value="6146"/>

+      <details key="end" value="6155"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.384" references="/0/generateModule/%.6/%.1/%/%/%.1/%/%/%/prop">

+      <details key="start" value="6146"/>

+      <details key="end" value="6150"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.385" references="/0/generateModule/%.6/%.1/%/%/%.1/%/%.1">

+      <details key="start" value="6174"/>

+      <details key="end" value="6181"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.386" references="/0/generateModule/%.6/%.1/prop">

+      <details key="start" value="6064"/>

+      <details key="end" value="6079"/>

+      <details key="line" value="122"/>

+    </eAnnotations>

+    <eAnnotations source="positions.387" references="/0/generateModule/%.6/%.1/vars">

+      <details key="start" value="6082"/>

+      <details key="end" value="6086"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.388" references="/0/generateModule/%.6/%.2">

+      <details key="start" value="6301"/>

+      <details key="end" value="7363"/>

+      <details key="line" value="128"/>

+    </eAnnotations>

+    <eAnnotations source="positions.389" references="/0/generateModule/%.6/%.2/%">

+      <details key="start" value="6424"/>

+      <details key="end" value="6853"/>

+      <details key="line" value="129"/>

+    </eAnnotations>

+    <eAnnotations source="positions.390" references="/0/generateModule/%.6/%.2/%/%">

+      <details key="start" value="6646"/>

+      <details key="end" value="6845"/>

+      <details key="line" value="130"/>

+    </eAnnotations>

+    <eAnnotations source="positions.391" references="/0/generateModule/%.6/%.2/%/%/%">

+      <details key="start" value="6685"/>

+      <details key="end" value="6837"/>

+      <details key="line" value="131"/>

+    </eAnnotations>

+    <eAnnotations source="positions.392" references="/0/generateModule/%.6/%.2/%/%/%/%">

+      <details key="start" value="6801"/>

+      <details key="end" value="6803"/>

+      <details key="line" value="132"/>

+    </eAnnotations>

+    <eAnnotations source="positions.393" references="/0/generateModule/%.6/%.2/%/%/%/%.1">

+      <details key="start" value="6804"/>

+      <details key="end" value="6817"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.394" references="/0/generateModule/%.6/%.2/%/%/%/%.1/tr">

+      <details key="start" value="6804"/>

+      <details key="end" value="6806"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.395" references="/0/generateModule/%.6/%.2/%/%/%/%.2">

+      <details key="start" value="6819"/>

+      <details key="end" value="6831"/>

+      <details key="line" value="132"/>

+    </eAnnotations>

+    <eAnnotations source="positions.396" references="/0/generateModule/%.6/%.2/%/%/%/%.3">

+      <details key="start" value="6689"/>

+      <details key="end" value="6799"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.397" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%">

+      <details key="start" value="6690"/>

+      <details key="end" value="6742"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.398" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.399" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%/%/%/%">

+      <details key="start" value="6690"/>

+      <details key="end" value="6730"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.400" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%/%/%/%/tr">

+      <details key="start" value="6690"/>

+      <details key="end" value="6692"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.401" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%/%/%/%/InternalFaultQN">

+      <details key="start" value="6714"/>

+      <details key="end" value="6729"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.402" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%.1">

+      <details key="start" value="6746"/>

+      <details key="end" value="6798"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.403" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.404" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%.1/%/%/%">

+      <details key="start" value="6746"/>

+      <details key="end" value="6786"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.405" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%.1/%/%/%/tr">

+      <details key="start" value="6746"/>

+      <details key="end" value="6748"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.406" references="/0/generateModule/%.6/%.2/%/%/%/%.3/%.1/%/%/%/ExternalFaultQN">

+      <details key="start" value="6770"/>

+      <details key="end" value="6785"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.407" references="/0/generateModule/%.6/%.2/%/%/tr">

+      <details key="start" value="6652"/>

+      <details key="end" value="6667"/>

+      <details key="line" value="130"/>

+    </eAnnotations>

+    <eAnnotations source="positions.408" references="/0/generateModule/%.6/%.2/%/%/transitions">

+      <details key="start" value="6670"/>

+      <details key="end" value="6681"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.409" references="/0/generateModule/%.6/%.2/%/transitions">

+      <details key="start" value="6429"/>

+      <details key="end" value="6643"/>

+      <details key="line" value="129"/>

+    </eAnnotations>

+    <eAnnotations source="positions.410" references="/0/generateModule/%.6/%.2/%/transitions/%">

+      <details key="start" value="6467"/>

+      <details key="end" value="6644"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.411" references="/0/generateModule/%.6/%.2/%/transitions/%/select">

+      <details key="start" value="6467"/>

+      <details key="end" value="6630"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.412" references="/0/generateModule/%.6/%.2/%/transitions/%/select/collect">

+      <details key="start" value="6467"/>

+      <details key="end" value="6519"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.413" references="/0/generateModule/%.6/%.2/%/transitions/%/select/collect/%">

+      <details key="start" value="6467"/>

+      <details key="end" value="6508"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.414" references="/0/generateModule/%.6/%.2/%/transitions/%/select/collect/%/%">

+      <details key="start" value="6467"/>

+      <details key="end" value="6501"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.415" references="/0/generateModule/%.6/%.2/%/transitions/%/select/collect/%/%/errorModel">

+      <details key="start" value="6467"/>

+      <details key="end" value="6477"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.416" references="/0/generateModule/%.6/%.2/%/transitions/%/select/collect/%/%/%">

+      <details key="start" value="6488"/>

+      <details key="end" value="6500"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.417" references="/0/generateModule/%.6/%.2/%/transitions/%/select/collect/%.1">

+      <details key="start" value="6509"/>

+      <details key="end" value="6519"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.418" references="/0/generateModule/%.6/%.2/%/transitions/%/select/collect/%.1/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.419" references="/0/generateModule/%.6/%.2/%/transitions/%/select/collect/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.420" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%">

+      <details key="start" value="6546"/>

+      <details key="end" value="6629"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.421" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%">

+      <details key="start" value="6546"/>

+      <details key="end" value="6585"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.422" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%/%">

+      <details key="start" value="6549"/>

+      <details key="end" value="6585"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.423" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%/%/%">

+      <details key="start" value="6550"/>

+      <details key="end" value="6559"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.424" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%/%/%/tr">

+      <details key="start" value="6550"/>

+      <details key="end" value="6552"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.425" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%/%/%.1">

+      <details key="start" value="6572"/>

+      <details key="end" value="6583"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.426" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%.1">

+      <details key="start" value="6590"/>

+      <details key="end" value="6629"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.427" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%.1/%">

+      <details key="start" value="6593"/>

+      <details key="end" value="6629"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.428" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%.1/%/%">

+      <details key="start" value="6594"/>

+      <details key="end" value="6603"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.429" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%.1/%/%/tr">

+      <details key="start" value="6594"/>

+      <details key="end" value="6596"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.430" references="/0/generateModule/%.6/%.2/%/transitions/%/select/%/%.1/%/%.1">

+      <details key="start" value="6616"/>

+      <details key="end" value="6627"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.431" references="/0/generateModule/%.6/%.2/%/transitions/%/select/tr">

+      <details key="start" value="6528"/>

+      <details key="end" value="6543"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.432" references="/0/generateModule/%.6/%.2/%.1">

+      <details key="start" value="6854"/>

+      <details key="end" value="6881"/>

+      <details key="line" value="136"/>

+    </eAnnotations>

+    <eAnnotations source="positions.433" references="/0/generateModule/%.6/%.2/%.2">

+      <details key="start" value="7023"/>

+      <details key="end" value="7355"/>

+      <details key="line" value="138"/>

+    </eAnnotations>

+    <eAnnotations source="positions.434" references="/0/generateModule/%.6/%.2/%.2/%">

+      <details key="start" value="7239"/>

+      <details key="end" value="7347"/>

+      <details key="line" value="139"/>

+    </eAnnotations>

+    <eAnnotations source="positions.435" references="/0/generateModule/%.6/%.2/%.2/%/%">

+      <details key="start" value="7267"/>

+      <details key="end" value="7302"/>

+      <details key="line" value="140"/>

+    </eAnnotations>

+    <eAnnotations source="positions.436" references="/0/generateModule/%.6/%.2/%.2/%/%.1">

+      <details key="start" value="7243"/>

+      <details key="end" value="7265"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.437" references="/0/generateModule/%.6/%.2/%.2/%/%.1/toNominal">

+      <details key="start" value="7244"/>

+      <details key="end" value="7253"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.438" references="/0/generateModule/%.6/%.2/%.2/%/%.2">

+      <details key="start" value="7303"/>

+      <details key="end" value="7342"/>

+      <details key="line" value="142"/>

+    </eAnnotations>

+    <eAnnotations source="positions.439" references="/0/generateModule/%.6/%.2/%.2/%/%.2/%">

+      <details key="start" value="7310"/>

+      <details key="end" value="7341"/>

+      <details key="line" value="143"/>

+    </eAnnotations>

+    <eAnnotations source="positions.440" references="/0/generateModule/%.6/%.2/%.2/toNominal">

+      <details key="start" value="7028"/>

+      <details key="end" value="7236"/>

+      <details key="line" value="138"/>

+    </eAnnotations>

+    <eAnnotations source="positions.441" references="/0/generateModule/%.6/%.2/%.2/toNominal/%">

+      <details key="start" value="7064"/>

+      <details key="end" value="7237"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.442" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select">

+      <details key="start" value="7064"/>

+      <details key="end" value="7223"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.443" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/collect">

+      <details key="start" value="7064"/>

+      <details key="end" value="7116"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.444" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/collect/%">

+      <details key="start" value="7064"/>

+      <details key="end" value="7105"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.445" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/collect/%/%">

+      <details key="start" value="7064"/>

+      <details key="end" value="7098"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.446" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/collect/%/%/errorModel">

+      <details key="start" value="7064"/>

+      <details key="end" value="7074"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.447" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/collect/%/%/%">

+      <details key="start" value="7085"/>

+      <details key="end" value="7097"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.448" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/collect/%.1">

+      <details key="start" value="7106"/>

+      <details key="end" value="7116"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.449" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/collect/%.1/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.450" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/collect/temp2">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.451" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%">

+      <details key="start" value="7143"/>

+      <details key="end" value="7222"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.452" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%">

+      <details key="start" value="7143"/>

+      <details key="end" value="7182"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.453" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%/%">

+      <details key="start" value="7146"/>

+      <details key="end" value="7182"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.454" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%/%/%">

+      <details key="start" value="7147"/>

+      <details key="end" value="7156"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.455" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%/%/%/tr">

+      <details key="start" value="7147"/>

+      <details key="end" value="7149"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.456" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%/%/%.1">

+      <details key="start" value="7169"/>

+      <details key="end" value="7180"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.457" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%.1">

+      <details key="start" value="7187"/>

+      <details key="end" value="7222"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.458" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%.1/%">

+      <details key="start" value="7187"/>

+      <details key="end" value="7207"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.459" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%.1/%/%">

+      <details key="start" value="7187"/>

+      <details key="end" value="7196"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.460" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%.1/%/%/tr">

+      <details key="start" value="7187"/>

+      <details key="end" value="7189"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.461" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/%/%.1/%.1">

+      <details key="start" value="7208"/>

+      <details key="end" value="7222"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.462" references="/0/generateModule/%.6/%.2/%.2/toNominal/%/select/tr">

+      <details key="start" value="7125"/>

+      <details key="end" value="7140"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.463" references="/0/generateModule/%.6/%.2/errorModel">

+      <details key="start" value="6306"/>

+      <details key="end" value="6421"/>

+      <details key="line" value="128"/>

+    </eAnnotations>

+    <eAnnotations source="positions.464" references="/0/generateModule/%.6/%.2/errorModel/any">

+      <details key="start" value="6331"/>

+      <details key="end" value="6422"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.465" references="/0/generateModule/%.6/%.2/errorModel/any/%">

+      <details key="start" value="6331"/>

+      <details key="end" value="6350"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.466" references="/0/generateModule/%.6/%.2/errorModel/any/%/block">

+      <details key="start" value="6331"/>

+      <details key="end" value="6336"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.467" references="/0/generateModule/%.6/%.2/errorModel/any/%.1">

+      <details key="start" value="6372"/>

+      <details key="end" value="6421"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.468" references="/0/generateModule/%.6/%.2/errorModel/any/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.469" references="/0/generateModule/%.6/%.2/errorModel/any/%.1/%/%/%">

+      <details key="start" value="6372"/>

+      <details key="end" value="6409"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.470" references="/0/generateModule/%.6/%.2/errorModel/any/%.1/%/%/%/em">

+      <details key="start" value="6372"/>

+      <details key="end" value="6374"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.471" references="/0/generateModule/%.6/%.2/errorModel/any/%.1/%/%/%/ErrorModelQN">

+      <details key="start" value="6396"/>

+      <details key="end" value="6408"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.472" references="/0/generateModule/%.6/%.2/errorModel/any/em">

+      <details key="start" value="6356"/>

+      <details key="end" value="6369"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.473" references="/0/generateModule/%.6/vars">

+      <details key="start" value="5823"/>

+      <details key="end" value="6054"/>

+      <details key="line" value="119"/>

+    </eAnnotations>

+    <eAnnotations source="positions.474" references="/0/generateModule/%.6/vars/select">

+      <details key="start" value="5854"/>

+      <details key="end" value="6055"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.475" references="/0/generateModule/%.6/vars/select/%">

+      <details key="start" value="5854"/>

+      <details key="end" value="5869"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.476" references="/0/generateModule/%.6/vars/select/%/block">

+      <details key="start" value="5854"/>

+      <details key="end" value="5859"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.477" references="/0/generateModule/%.6/vars/select/%.1">

+      <details key="start" value="5893"/>

+      <details key="end" value="6053"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.478" references="/0/generateModule/%.6/vars/select/%.1/%">

+      <details key="start" value="5893"/>

+      <details key="end" value="5942"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.479" references="/0/generateModule/%.6/vars/select/%.1/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.480" references="/0/generateModule/%.6/vars/select/%.1/%/%/%/%">

+      <details key="start" value="5893"/>

+      <details key="end" value="5931"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.481" references="/0/generateModule/%.6/vars/select/%.1/%/%/%/%/p">

+      <details key="start" value="5893"/>

+      <details key="end" value="5894"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.482" references="/0/generateModule/%.6/vars/select/%.1/%/%/%/%/ContractPropQN">

+      <details key="start" value="5916"/>

+      <details key="end" value="5930"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.483" references="/0/generateModule/%.6/vars/select/%.1/%.1">

+      <details key="start" value="5950"/>

+      <details key="end" value="6053"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.484" references="/0/generateModule/%.6/vars/select/%.1/%.1/%">

+      <details key="start" value="5951"/>

+      <details key="end" value="5997"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.485" references="/0/generateModule/%.6/vars/select/%.1/%.1/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.486" references="/0/generateModule/%.6/vars/select/%.1/%.1/%/%/%/%">

+      <details key="start" value="5951"/>

+      <details key="end" value="5985"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.487" references="/0/generateModule/%.6/vars/select/%.1/%.1/%/%/%/%/p">

+      <details key="start" value="5951"/>

+      <details key="end" value="5952"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.488" references="/0/generateModule/%.6/vars/select/%.1/%.1/%/%/%/%/FlowPortQN">

+      <details key="start" value="5974"/>

+      <details key="end" value="5984"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.489" references="/0/generateModule/%.6/vars/select/%.1/%.1/%.1">

+      <details key="start" value="6001"/>

+      <details key="end" value="6052"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.490" references="/0/generateModule/%.6/vars/select/%.1/%.1/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.491" references="/0/generateModule/%.6/vars/select/%.1/%.1/%.1/%/%/%">

+      <details key="start" value="6001"/>

+      <details key="end" value="6040"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.492" references="/0/generateModule/%.6/vars/select/%.1/%.1/%.1/%/%/%/p">

+      <details key="start" value="6001"/>

+      <details key="end" value="6002"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.493" references="/0/generateModule/%.6/vars/select/%.1/%.1/%.1/%/%/%/MARTEFlowPortQN">

+      <details key="start" value="6024"/>

+      <details key="end" value="6039"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.494" references="/0/generateModule/%.6/vars/select/p">

+      <details key="start" value="5878"/>

+      <details key="end" value="5890"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.495" references="/0/generateModule/%.7">

+      <details key="start" value="7737"/>

+      <details key="end" value="7739"/>

+      <details key="line" value="157"/>

+    </eAnnotations>

+    <eAnnotations source="positions.496" references="/0/generateModule/%.8">

+      <details key="start" value="7739"/>

+      <details key="end" value="8783"/>

+      <details key="line" value="158"/>

+    </eAnnotations>

+    <eAnnotations source="positions.497" references="/0/generateModule/%.8/%">

+      <details key="start" value="7892"/>

+      <details key="end" value="8776"/>

+      <details key="line" value="159"/>

+    </eAnnotations>

+    <eAnnotations source="positions.498" references="/0/generateModule/%.8/%/%">

+      <details key="start" value="7964"/>

+      <details key="end" value="8769"/>

+      <details key="line" value="160"/>

+    </eAnnotations>

+    <eAnnotations source="positions.499" references="/0/generateModule/%.8/%/%/%">

+      <details key="start" value="8204"/>

+      <details key="end" value="8762"/>

+      <details key="line" value="163"/>

+    </eAnnotations>

+    <eAnnotations source="positions.500" references="/0/generateModule/%.8/%/%/%/%">

+      <details key="start" value="8236"/>

+      <details key="end" value="8464"/>

+      <details key="line" value="164"/>

+    </eAnnotations>

+    <eAnnotations source="positions.501" references="/0/generateModule/%.8/%/%/%/%/%">

+      <details key="start" value="8296"/>

+      <details key="end" value="8457"/>

+      <details key="line" value="165"/>

+    </eAnnotations>

+    <eAnnotations source="positions.502" references="/0/generateModule/%.8/%/%/%/%/%/%">

+      <details key="start" value="8352"/>

+      <details key="end" value="8366"/>

+      <details key="line" value="166"/>

+    </eAnnotations>

+    <eAnnotations source="positions.503" references="/0/generateModule/%.8/%/%/%/%/%/%.1">

+      <details key="start" value="8367"/>

+      <details key="end" value="8376"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.504" references="/0/generateModule/%.8/%/%/%/%/%/%.1/prop">

+      <details key="start" value="8367"/>

+      <details key="end" value="8371"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.505" references="/0/generateModule/%.8/%/%/%/%/%/%.2">

+      <details key="start" value="8378"/>

+      <details key="end" value="8393"/>

+      <details key="line" value="167"/>

+    </eAnnotations>

+    <eAnnotations source="positions.506" references="/0/generateModule/%.8/%/%/%/%/%/%.3">

+      <details key="start" value="8394"/>

+      <details key="end" value="8438"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.507" references="/0/generateModule/%.8/%/%/%/%/%/%.3/nominalModel">

+      <details key="start" value="8414"/>

+      <details key="end" value="8426"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.508" references="/0/generateModule/%.8/%/%/%/%/%/%.3/%">

+      <details key="start" value="8428"/>

+      <details key="end" value="8437"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.509" references="/0/generateModule/%.8/%/%/%/%/%/%.3/%/prop">

+      <details key="start" value="8428"/>

+      <details key="end" value="8432"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.510" references="/0/generateModule/%.8/%/%/%/%/%/%.4">

+      <details key="start" value="8440"/>

+      <details key="end" value="8450"/>

+      <details key="line" value="170"/>

+    </eAnnotations>

+    <eAnnotations source="positions.511" references="/0/generateModule/%.8/%/%/%/%/%/%.5">

+      <details key="start" value="8300"/>

+      <details key="end" value="8350"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.512" references="/0/generateModule/%.8/%/%/%/%/%/%.5/%">

+      <details key="start" value="8300"/>

+      <details key="end" value="8344"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.513" references="/0/generateModule/%.8/%/%/%/%/%/%.5/%/nominalModel">

+      <details key="start" value="8320"/>

+      <details key="end" value="8332"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.514" references="/0/generateModule/%.8/%/%/%/%/%/%.5/%/%">

+      <details key="start" value="8334"/>

+      <details key="end" value="8343"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.515" references="/0/generateModule/%.8/%/%/%/%/%/%.5/%/%/prop">

+      <details key="start" value="8334"/>

+      <details key="end" value="8338"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.516" references="/0/generateModule/%.8/%/%/%/%/%/%.5/%.1">

+      <details key="start" value="8348"/>

+      <details key="end" value="8350"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.517" references="/0/generateModule/%.8/%/%/%/%/%.1">

+      <details key="start" value="8240"/>

+      <details key="end" value="8292"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.518" references="/0/generateModule/%.8/%/%/%/%/%.1/%">

+      <details key="start" value="8245"/>

+      <details key="end" value="8291"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.519" references="/0/generateModule/%.8/%/%/%/%/%.1/%/%">

+      <details key="start" value="8246"/>

+      <details key="end" value="8264"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.520" references="/0/generateModule/%.8/%/%/%/%/%.1/%/%/%">

+      <details key="start" value="8254"/>

+      <details key="end" value="8263"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.521" references="/0/generateModule/%.8/%/%/%/%/%.1/%/%/%/prop">

+      <details key="start" value="8254"/>

+      <details key="end" value="8258"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.522" references="/0/generateModule/%.8/%/%/%/%/%.1/%/%.1">

+      <details key="start" value="8282"/>

+      <details key="end" value="8289"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.523" references="/0/generateModule/%.8/%/%/%/%.1">

+      <details key="start" value="8466"/>

+      <details key="end" value="8755"/>

+      <details key="line" value="173"/>

+    </eAnnotations>

+    <eAnnotations source="positions.524" references="/0/generateModule/%.8/%/%/%/%.1/%">

+      <details key="start" value="8509"/>

+      <details key="end" value="8748"/>

+      <details key="line" value="174"/>

+    </eAnnotations>

+    <eAnnotations source="positions.525" references="/0/generateModule/%.8/%/%/%/%.1/%/%">

+      <details key="start" value="8582"/>

+      <details key="end" value="8740"/>

+      <details key="line" value="175"/>

+    </eAnnotations>

+    <eAnnotations source="positions.526" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%">

+      <details key="start" value="8635"/>

+      <details key="end" value="8650"/>

+      <details key="line" value="176"/>

+    </eAnnotations>

+    <eAnnotations source="positions.527" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.1">

+      <details key="start" value="8651"/>

+      <details key="end" value="8660"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.528" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.1/prop">

+      <details key="start" value="8651"/>

+      <details key="end" value="8655"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.529" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.2">

+      <details key="start" value="8662"/>

+      <details key="end" value="8667"/>

+      <details key="line" value="177"/>

+    </eAnnotations>

+    <eAnnotations source="positions.530" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.3">

+      <details key="start" value="8668"/>

+      <details key="end" value="8728"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.531" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.3/%">

+      <details key="start" value="8668"/>

+      <details key="end" value="8719"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.532" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.3/%/%">

+      <details key="start" value="8668"/>

+      <details key="end" value="8713"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.533" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.3/%/%/%">

+      <details key="start" value="8668"/>

+      <details key="end" value="8685"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.534" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.3/%/%/%/prop">

+      <details key="start" value="8668"/>

+      <details key="end" value="8672"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.535" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.3/%/%/%.1">

+      <details key="start" value="8696"/>

+      <details key="end" value="8712"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.536" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.4">

+      <details key="start" value="8730"/>

+      <details key="end" value="8732"/>

+      <details key="line" value="177"/>

+    </eAnnotations>

+    <eAnnotations source="positions.537" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.5">

+      <details key="start" value="8586"/>

+      <details key="end" value="8633"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.538" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.5/%">

+      <details key="start" value="8586"/>

+      <details key="end" value="8603"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.539" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.5/%/prop">

+      <details key="start" value="8586"/>

+      <details key="end" value="8590"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.540" references="/0/generateModule/%.8/%/%/%/%.1/%/%/%.5/%.1">

+      <details key="start" value="8616"/>

+      <details key="end" value="8632"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.541" references="/0/generateModule/%.8/%/%/%/%.1/%/%.1">

+      <details key="start" value="8513"/>

+      <details key="end" value="8577"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.542" references="/0/generateModule/%.8/%/%/%/%.1/%/%.1/%">

+      <details key="start" value="8513"/>

+      <details key="end" value="8553"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.543" references="/0/generateModule/%.8/%/%/%/%.1/%/%.1/%/%">

+      <details key="start" value="8517"/>

+      <details key="end" value="8553"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.544" references="/0/generateModule/%.8/%/%/%/%.1/%/%.1/%/%/%">

+      <details key="start" value="8518"/>

+      <details key="end" value="8535"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.545" references="/0/generateModule/%.8/%/%/%/%.1/%/%.1/%/%/%/prop">

+      <details key="start" value="8518"/>

+      <details key="end" value="8522"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.546" references="/0/generateModule/%.8/%/%/%/%.1/%/%.1/%.1">

+      <details key="start" value="8558"/>

+      <details key="end" value="8577"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.547" references="/0/generateModule/%.8/%/%/%/%.1/%/%.1/%.1/%">

+      <details key="start" value="8562"/>

+      <details key="end" value="8577"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.548" references="/0/generateModule/%.8/%/%/%/%.1/%/%.1/%.1/%/prop">

+      <details key="start" value="8562"/>

+      <details key="end" value="8566"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.549" references="/0/generateModule/%.8/%/%/%/%.1/%.1">

+      <details key="start" value="8470"/>

+      <details key="end" value="8504"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.550" references="/0/generateModule/%.8/%/%/%/%.1/%.1/%">

+      <details key="start" value="8473"/>

+      <details key="end" value="8491"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.551" references="/0/generateModule/%.8/%/%/%/%.1/%.1/%/%">

+      <details key="start" value="8481"/>

+      <details key="end" value="8490"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.552" references="/0/generateModule/%.8/%/%/%/%.1/%.1/%/%/prop">

+      <details key="start" value="8481"/>

+      <details key="end" value="8485"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.553" references="/0/generateModule/%.8/%/%/%/%.1/%.1/%.1">

+      <details key="start" value="8495"/>

+      <details key="end" value="8502"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.554" references="/0/generateModule/%.8/%/%/%/prop">

+      <details key="start" value="8210"/>

+      <details key="end" value="8225"/>

+      <details key="line" value="163"/>

+    </eAnnotations>

+    <eAnnotations source="positions.555" references="/0/generateModule/%.8/%/%/%/vars">

+      <details key="start" value="8228"/>

+      <details key="end" value="8232"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.556" references="/0/generateModule/%.8/%/%/vars">

+      <details key="start" value="7969"/>

+      <details key="end" value="8202"/>

+      <details key="line" value="160"/>

+    </eAnnotations>

+    <eAnnotations source="positions.557" references="/0/generateModule/%.8/%/%/vars/select">

+      <details key="start" value="8000"/>

+      <details key="end" value="8203"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.558" references="/0/generateModule/%.8/%/%/vars/select/%">

+      <details key="start" value="8000"/>

+      <details key="end" value="8015"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.559" references="/0/generateModule/%.8/%/%/vars/select/%/block">

+      <details key="start" value="8000"/>

+      <details key="end" value="8005"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.560" references="/0/generateModule/%.8/%/%/vars/select/%.1">

+      <details key="start" value="8039"/>

+      <details key="end" value="8199"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.561" references="/0/generateModule/%.8/%/%/vars/select/%.1/%">

+      <details key="start" value="8039"/>

+      <details key="end" value="8141"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.562" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%">

+      <details key="start" value="8039"/>

+      <details key="end" value="8088"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.563" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.564" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%/%/%/%">

+      <details key="start" value="8039"/>

+      <details key="end" value="8077"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.565" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%/%/%/%/p">

+      <details key="start" value="8039"/>

+      <details key="end" value="8040"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.566" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%/%/%/%/ContractPropQN">

+      <details key="start" value="8062"/>

+      <details key="end" value="8076"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.567" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%.1">

+      <details key="start" value="8096"/>

+      <details key="end" value="8141"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.568" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.569" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%.1/%/%/%">

+      <details key="start" value="8096"/>

+      <details key="end" value="8130"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.570" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%.1/%/%/%/p">

+      <details key="start" value="8096"/>

+      <details key="end" value="8097"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.571" references="/0/generateModule/%.8/%/%/vars/select/%.1/%/%.1/%/%/%/FlowPortQN">

+      <details key="start" value="8119"/>

+      <details key="end" value="8129"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.572" references="/0/generateModule/%.8/%/%/vars/select/%.1/%.1">

+      <details key="start" value="8146"/>

+      <details key="end" value="8199"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.573" references="/0/generateModule/%.8/%/%/vars/select/%.1/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.574" references="/0/generateModule/%.8/%/%/vars/select/%.1/%.1/%/%/%">

+      <details key="start" value="8146"/>

+      <details key="end" value="8188"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.575" references="/0/generateModule/%.8/%/%/vars/select/%.1/%.1/%/%/%/p">

+      <details key="start" value="8146"/>

+      <details key="end" value="8147"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.576" references="/0/generateModule/%.8/%/%/vars/select/%.1/%.1/%/%/%/ClientServerPortQN">

+      <details key="start" value="8169"/>

+      <details key="end" value="8187"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.577" references="/0/generateModule/%.8/%/%/vars/select/p">

+      <details key="start" value="8024"/>

+      <details key="end" value="8036"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.578" references="/0/generateModule/%.8/%/trSet">

+      <details key="start" value="7897"/>

+      <details key="end" value="7962"/>

+      <details key="line" value="159"/>

+    </eAnnotations>

+    <eAnnotations source="positions.579" references="/0/generateModule/%.8/%/trSet/%">

+      <details key="start" value="7924"/>

+      <details key="end" value="7963"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.580" references="/0/generateModule/%.8/%/trSet/%/collect">

+      <details key="start" value="7924"/>

+      <details key="end" value="7954"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.581" references="/0/generateModule/%.8/%/trSet/%/collect/%">

+      <details key="start" value="7924"/>

+      <details key="end" value="7943"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.582" references="/0/generateModule/%.8/%/trSet/%/collect/%/nominalModel">

+      <details key="start" value="7924"/>

+      <details key="end" value="7936"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.583" references="/0/generateModule/%.8/%/trSet/%/collect/%.1">

+      <details key="start" value="7944"/>

+      <details key="end" value="7954"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.584" references="/0/generateModule/%.8/%/trSet/%/collect/%.1/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.585" references="/0/generateModule/%.8/%/trSet/%/collect/temp3">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.586" references="/0/generateModule/%.8/nominalModel">

+      <details key="start" value="7744"/>

+      <details key="end" value="7890"/>

+      <details key="line" value="158"/>

+    </eAnnotations>

+    <eAnnotations source="positions.587" references="/0/generateModule/%.8/nominalModel/any">

+      <details key="start" value="7775"/>

+      <details key="end" value="7891"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.588" references="/0/generateModule/%.8/nominalModel/any/%">

+      <details key="start" value="7775"/>

+      <details key="end" value="7816"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.589" references="/0/generateModule/%.8/nominalModel/any/%/%">

+      <details key="start" value="7775"/>

+      <details key="end" value="7794"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.590" references="/0/generateModule/%.8/nominalModel/any/%/%/block">

+      <details key="start" value="7775"/>

+      <details key="end" value="7780"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.591" references="/0/generateModule/%.8/nominalModel/any/%/%.1">

+      <details key="start" value="7803"/>

+      <details key="end" value="7815"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.592" references="/0/generateModule/%.8/nominalModel/any/%.1">

+      <details key="start" value="7842"/>

+      <details key="end" value="7890"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.593" references="/0/generateModule/%.8/nominalModel/any/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.594" references="/0/generateModule/%.8/nominalModel/any/%.1/%/%/%">

+      <details key="start" value="7842"/>

+      <details key="end" value="7879"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.595" references="/0/generateModule/%.8/nominalModel/any/%.1/%/%/%/sm">

+      <details key="start" value="7842"/>

+      <details key="end" value="7844"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.596" references="/0/generateModule/%.8/nominalModel/any/%.1/%/%/%/ErrorModelQN">

+      <details key="start" value="7866"/>

+      <details key="end" value="7878"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.597" references="/0/generateModule/%.8/nominalModel/any/sm">

+      <details key="start" value="7822"/>

+      <details key="end" value="7839"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.598" references="/0/generateModule/%.9">

+      <details key="start" value="8784"/>

+      <details key="end" value="8798"/>

+      <details key="line" value="185"/>

+    </eAnnotations>

+    <eAnnotations source="positions.599" references="/0/generateModule/%.10">

+      <details key="start" value="8799"/>

+      <details key="end" value="8809"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.600" references="/0/generateModule/%.10/block">

+      <details key="start" value="8799"/>

+      <details key="end" value="8804"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.601" references="/0/generateModule/%.11">

+      <details key="start" value="8811"/>

+      <details key="end" value="8815"/>

+      <details key="line" value="185"/>

+    </eAnnotations>

+    <eAnnotations source="positions.602" references="/0/generateModule/%.12">

+      <details key="start" value="8816"/>

+      <details key="end" value="9206"/>

+      <details key="line" value="186"/>

+    </eAnnotations>

+    <eAnnotations source="positions.603" references="/0/generateModule/%.12/%">

+      <details key="start" value="8893"/>

+      <details key="end" value="9198"/>

+      <details key="line" value="187"/>

+    </eAnnotations>

+    <eAnnotations source="positions.604" references="/0/generateModule/%.12/%/%">

+      <details key="start" value="8926"/>

+      <details key="end" value="9190"/>

+      <details key="line" value="188"/>

+    </eAnnotations>

+    <eAnnotations source="positions.605" references="/0/generateModule/%.12/%/%/%">

+      <details key="start" value="8968"/>

+      <details key="end" value="9183"/>

+      <details key="line" value="189"/>

+    </eAnnotations>

+    <eAnnotations source="positions.606" references="/0/generateModule/%.12/%/%/%/%">

+      <details key="start" value="9044"/>

+      <details key="end" value="9176"/>

+      <details key="line" value="190"/>

+    </eAnnotations>

+    <eAnnotations source="positions.607" references="/0/generateModule/%.12/%/%/%/%/%">

+      <details key="start" value="9112"/>

+      <details key="end" value="9165"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.608" references="/0/generateModule/%.12/%/%/%/%/%/newblock">

+      <details key="start" value="9127"/>

+      <details key="end" value="9135"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.609" references="/0/generateModule/%.12/%/%/%/%/%/allBlocks">

+      <details key="start" value="9137"/>

+      <details key="end" value="9146"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.610" references="/0/generateModule/%.12/%/%/%/%/%/generated">

+      <details key="start" value="9148"/>

+      <details key="end" value="9157"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.611" references="/0/generateModule/%.12/%/%/%/%/%/%">

+      <details key="start" value="9159"/>

+      <details key="end" value="9164"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.612" references="/0/generateModule/%.12/%/%/%/%/%.1">

+      <details key="start" value="9167"/>

+      <details key="end" value="9168"/>

+      <details key="line" value="192"/>

+    </eAnnotations>

+    <eAnnotations source="positions.613" references="/0/generateModule/%.12/%/%/%/%/newblock">

+      <details key="start" value="9049"/>

+      <details key="end" value="9109"/>

+      <details key="line" value="190"/>

+    </eAnnotations>

+    <eAnnotations source="positions.614" references="/0/generateModule/%.12/%/%/%/%/newblock/any">

+      <details key="start" value="9069"/>

+      <details key="end" value="9110"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.615" references="/0/generateModule/%.12/%/%/%/%/newblock/any/allBlocks">

+      <details key="start" value="9069"/>

+      <details key="end" value="9078"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.616" references="/0/generateModule/%.12/%/%/%/%/newblock/any/%">

+      <details key="start" value="9096"/>

+      <details key="end" value="9109"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.617" references="/0/generateModule/%.12/%/%/%/%/newblock/any/%/%">

+      <details key="start" value="9096"/>

+      <details key="end" value="9105"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.618" references="/0/generateModule/%.12/%/%/%/%/newblock/any/%/%/part">

+      <details key="start" value="9096"/>

+      <details key="end" value="9100"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.619" references="/0/generateModule/%.12/%/%/%/%/newblock/any/%/c">

+      <details key="start" value="9108"/>

+      <details key="end" value="9109"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.620" references="/0/generateModule/%.12/%/%/%/%/newblock/any/c">

+      <details key="start" value="9084"/>

+      <details key="end" value="9093"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.621" references="/0/generateModule/%.12/%/%/%/%.1">

+      <details key="start" value="8972"/>

+      <details key="end" value="9040"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.622" references="/0/generateModule/%.12/%/%/%/%.1/%">

+      <details key="start" value="8973"/>

+      <details key="end" value="8985"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.623" references="/0/generateModule/%.12/%/%/%/%.1/%/part">

+      <details key="start" value="8980"/>

+      <details key="end" value="8984"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.624" references="/0/generateModule/%.12/%/%/%/%.1/%.1">

+      <details key="start" value="8990"/>

+      <details key="end" value="9039"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.625" references="/0/generateModule/%.12/%/%/%/%.1/%.1/%">

+      <details key="start" value="8994"/>

+      <details key="end" value="9039"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.626" references="/0/generateModule/%.12/%/%/%/%.1/%.1/%/%">

+      <details key="start" value="9013"/>

+      <details key="end" value="9027"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.627" references="/0/generateModule/%.12/%/%/%/%.1/%.1/%/%/%">

+      <details key="start" value="9013"/>

+      <details key="end" value="9022"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.628" references="/0/generateModule/%.12/%/%/%/%.1/%.1/%/%/%/part">

+      <details key="start" value="9013"/>

+      <details key="end" value="9017"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.629" references="/0/generateModule/%.12/%/%/%/%.1/%.1/%/generated">

+      <details key="start" value="9029"/>

+      <details key="end" value="9038"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.630" references="/0/generateModule/%.12/%/%/%.1">

+      <details key="start" value="8930"/>

+      <details key="end" value="8965"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.631" references="/0/generateModule/%.12/%/%/%.1/%">

+      <details key="start" value="8935"/>

+      <details key="end" value="8964"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.632" references="/0/generateModule/%.12/%/%/%.1/%/%">

+      <details key="start" value="8935"/>

+      <details key="end" value="8949"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.633" references="/0/generateModule/%.12/%/%/%.1/%/%/%">

+      <details key="start" value="8935"/>

+      <details key="end" value="8944"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.634" references="/0/generateModule/%.12/%/%/%.1/%/%/%/part">

+      <details key="start" value="8935"/>

+      <details key="end" value="8939"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.635" references="/0/generateModule/%.12/%/part">

+      <details key="start" value="8899"/>

+      <details key="end" value="8914"/>

+      <details key="line" value="187"/>

+    </eAnnotations>

+    <eAnnotations source="positions.636" references="/0/generateModule/%.12/%/parts">

+      <details key="start" value="8917"/>

+      <details key="end" value="8922"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.637" references="/0/generateModule/%.12/parts">

+      <details key="start" value="8821"/>

+      <details key="end" value="8890"/>

+      <details key="line" value="186"/>

+    </eAnnotations>

+    <eAnnotations source="positions.638" references="/0/generateModule/%.12/parts/%">

+      <details key="start" value="8853"/>

+      <details key="end" value="8891"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.639" references="/0/generateModule/%.12/parts/%/%">

+      <details key="start" value="8853"/>

+      <details key="end" value="8873"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.640" references="/0/generateModule/%.12/parts/%/%/block">

+      <details key="start" value="8853"/>

+      <details key="end" value="8858"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.641" references="/0/generateModule/%.12/parts/%/%.1">

+      <details key="start" value="8882"/>

+      <details key="end" value="8890"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.642" references="/0/generateModule/block">

+      <details key="start" value="2490"/>

+      <details key="end" value="2503"/>

+      <details key="line" value="51"/>

+    </eAnnotations>

+    <eAnnotations source="positions.643" references="/0/generateModule/allBlocks">

+      <details key="start" value="2505"/>

+      <details key="end" value="2527"/>

+      <details key="line" value="51"/>

+    </eAnnotations>

+    <eAnnotations source="positions.644" references="/0/generateModule/generated">

+      <details key="start" value="2529"/>

+      <details key="end" value="2552"/>

+      <details key="line" value="51"/>

+    </eAnnotations>

+    <eAnnotations source="positions.645" references="/0/generateModule/isSystem">

+      <details key="start" value="2554"/>

+      <details key="end" value="2571"/>

+      <details key="line" value="51"/>

+    </eAnnotations>

+    <eAnnotations source="positions.646" references="/0/getTransitionTarget">

+      <details key="start" value="9220"/>

+      <details key="end" value="9448"/>

+      <details key="line" value="199"/>

+    </eAnnotations>

+    <eAnnotations source="positions.647" references="/0/getTransitionTarget/name">

+      <details key="start" value="9254"/>

+      <details key="end" value="9267"/>

+      <details key="line" value="199"/>

+    </eAnnotations>

+    <eAnnotations source="positions.648" references="/0/getTransitionTarget/str">

+      <details key="start" value="9269"/>

+      <details key="end" value="9281"/>

+      <details key="line" value="199"/>

+    </eAnnotations>

+    <eAnnotations source="positions.649" references="/0/getTransitionTarget/%">

+      <details key="start" value="9295"/>

+      <details key="end" value="9445"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.650" references="/0/getTransitionTarget/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.651" references="/0/getTransitionTarget/%/%">

+      <details key="start" value="9302"/>

+      <details key="end" value="9364"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.652" references="/0/getTransitionTarget/%/%.1">

+      <details key="start" value="9366"/>

+      <details key="end" value="9423"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.653" references="/0/getTransitionTarget/%/%.2">

+      <details key="start" value="9425"/>

+      <details key="end" value="9444"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.654" references="/0/getTransitionTarget/%/%.2/%/name">

+      <details key="start" value="9434"/>

+      <details key="end" value="9438"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.655" references="/0/getTransitionTarget/%/%.2/%.1/str">

+      <details key="start" value="9440"/>

+      <details key="end" value="9443"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.656" references="/0/getType">

+      <details key="start" value="9450"/>

+      <details key="end" value="9626"/>

+      <details key="line" value="202"/>

+    </eAnnotations>

+    <eAnnotations source="positions.657" references="/0/getType/type">

+      <details key="start" value="9472"/>

+      <details key="end" value="9483"/>

+      <details key="line" value="202"/>

+    </eAnnotations>

+    <eAnnotations source="positions.658" references="/0/getType/%">

+      <details key="start" value="9496"/>

+      <details key="end" value="9624"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.659" references="/0/getType/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.660" references="/0/getType/%/%">

+      <details key="start" value="9503"/>

+      <details key="end" value="9565"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.661" references="/0/getType/%/%.1">

+      <details key="start" value="9567"/>

+      <details key="end" value="9607"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.662" references="/0/getType/%/%.2">

+      <details key="start" value="9609"/>

+      <details key="end" value="9623"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.663" references="/0/getType/%/%.2/%/type">

+      <details key="start" value="9618"/>

+      <details key="end" value="9622"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.664" references="/0/getInitCondition">

+      <details key="start" value="9628"/>

+      <details key="end" value="9831"/>

+      <details key="line" value="205"/>

+    </eAnnotations>

+    <eAnnotations source="positions.665" references="/0/getInitCondition/sm">

+      <details key="start" value="9659"/>

+      <details key="end" value="9676"/>

+      <details key="line" value="205"/>

+    </eAnnotations>

+    <eAnnotations source="positions.666" references="/0/getInitCondition/%">

+      <details key="start" value="9690"/>

+      <details key="end" value="9828"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.667" references="/0/getInitCondition/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.668" references="/0/getInitCondition/%/%">

+      <details key="start" value="9697"/>

+      <details key="end" value="9759"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.669" references="/0/getInitCondition/%/%.1">

+      <details key="start" value="9760"/>

+      <details key="end" value="9813"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.670" references="/0/getInitCondition/%/%.2">

+      <details key="start" value="9815"/>

+      <details key="end" value="9827"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.671" references="/0/getInitCondition/%/%.2/%/sm">

+      <details key="start" value="9824"/>

+      <details key="end" value="9826"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.672" references="/0/getPropertyAffectedByTransition">

+      <details key="start" value="9835"/>

+      <details key="end" value="10060"/>

+      <details key="line" value="210"/>

+    </eAnnotations>

+    <eAnnotations source="positions.673" references="/0/getPropertyAffectedByTransition/t">

+      <details key="start" value="9881"/>

+      <details key="end" value="9894"/>

+      <details key="line" value="210"/>

+    </eAnnotations>

+    <eAnnotations source="positions.674" references="/0/getPropertyAffectedByTransition/%">

+      <details key="start" value="9907"/>

+      <details key="end" value="10057"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.675" references="/0/getPropertyAffectedByTransition/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.676" references="/0/getPropertyAffectedByTransition/%/%">

+      <details key="start" value="9914"/>

+      <details key="end" value="9976"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.677" references="/0/getPropertyAffectedByTransition/%/%.1">

+      <details key="start" value="9977"/>

+      <details key="end" value="10043"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.678" references="/0/getPropertyAffectedByTransition/%/%.2">

+      <details key="start" value="10045"/>

+      <details key="end" value="10056"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.679" references="/0/getPropertyAffectedByTransition/%/%.2/%/t">

+      <details key="start" value="10054"/>

+      <details key="end" value="10055"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.680" references="/0/getEffectOnProperty">

+      <details key="start" value="10062"/>

+      <details key="end" value="10321"/>

+      <details key="line" value="213"/>

+    </eAnnotations>

+    <eAnnotations source="positions.681" references="/0/getEffectOnProperty/sm">

+      <details key="start" value="10096"/>

+      <details key="end" value="10111"/>

+      <details key="line" value="213"/>

+    </eAnnotations>

+    <eAnnotations source="positions.682" references="/0/getEffectOnProperty/propertyName">

+      <details key="start" value="10113"/>

+      <details key="end" value="10132"/>

+      <details key="line" value="213"/>

+    </eAnnotations>

+    <eAnnotations source="positions.683" references="/0/getEffectOnProperty/%">

+      <details key="start" value="10145"/>

+      <details key="end" value="10318"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.684" references="/0/getEffectOnProperty/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.685" references="/0/getEffectOnProperty/%/%">

+      <details key="start" value="10152"/>

+      <details key="end" value="10214"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.686" references="/0/getEffectOnProperty/%/%.1">

+      <details key="start" value="10215"/>

+      <details key="end" value="10289"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.687" references="/0/getEffectOnProperty/%/%.2">

+      <details key="start" value="10291"/>

+      <details key="end" value="10317"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.688" references="/0/getEffectOnProperty/%/%.2/%/sm">

+      <details key="start" value="10300"/>

+      <details key="end" value="10302"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.689" references="/0/getEffectOnProperty/%/%.2/%.1/propertyName">

+      <details key="start" value="10304"/>

+      <details key="end" value="10316"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.690" references="/0/getModuleFormalParameter">

+      <details key="start" value="10323"/>

+      <details key="end" value="10533"/>

+      <details key="line" value="216"/>

+    </eAnnotations>

+    <eAnnotations source="positions.691" references="/0/getModuleFormalParameter/block">

+      <details key="start" value="10362"/>

+      <details key="end" value="10375"/>

+      <details key="line" value="216"/>

+    </eAnnotations>

+    <eAnnotations source="positions.692" references="/0/getModuleFormalParameter/%">

+      <details key="start" value="10388"/>

+      <details key="end" value="10530"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.693" references="/0/getModuleFormalParameter/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.694" references="/0/getModuleFormalParameter/%/%">

+      <details key="start" value="10395"/>

+      <details key="end" value="10457"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.695" references="/0/getModuleFormalParameter/%/%.1">

+      <details key="start" value="10458"/>

+      <details key="end" value="10512"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.696" references="/0/getModuleFormalParameter/%/%.2">

+      <details key="start" value="10514"/>

+      <details key="end" value="10529"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.697" references="/0/getModuleFormalParameter/%/%.2/%/block">

+      <details key="start" value="10523"/>

+      <details key="end" value="10528"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.698" references="/0/getModuleInstanceActualParameter">

+      <details key="start" value="10535"/>

+      <details key="end" value="10815"/>

+      <details key="line" value="219"/>

+    </eAnnotations>

+    <eAnnotations source="positions.699" references="/0/getModuleInstanceActualParameter/block">

+      <details key="start" value="10582"/>

+      <details key="end" value="10595"/>

+      <details key="line" value="219"/>

+    </eAnnotations>

+    <eAnnotations source="positions.700" references="/0/getModuleInstanceActualParameter/prop">

+      <details key="start" value="10597"/>

+      <details key="end" value="10612"/>

+      <details key="line" value="219"/>

+    </eAnnotations>

+    <eAnnotations source="positions.701" references="/0/getModuleInstanceActualParameter/%">

+      <details key="start" value="10625"/>

+      <details key="end" value="10812"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.702" references="/0/getModuleInstanceActualParameter/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.703" references="/0/getModuleInstanceActualParameter/%/%">

+      <details key="start" value="10632"/>

+      <details key="end" value="10694"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.704" references="/0/getModuleInstanceActualParameter/%/%.1">

+      <details key="start" value="10695"/>

+      <details key="end" value="10788"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.705" references="/0/getModuleInstanceActualParameter/%/%.2">

+      <details key="start" value="10790"/>

+      <details key="end" value="10811"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.706" references="/0/getModuleInstanceActualParameter/%/%.2/%/block">

+      <details key="start" value="10799"/>

+      <details key="end" value="10804"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.707" references="/0/getModuleInstanceActualParameter/%/%.2/%.1/prop">

+      <details key="start" value="10806"/>

+      <details key="end" value="10810"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.708" references="/0/getTypeNameForProperty">

+      <details key="start" value="10817"/>

+      <details key="end" value="11027"/>

+      <details key="line" value="222"/>

+    </eAnnotations>

+    <eAnnotations source="positions.709" references="/0/getTypeNameForProperty/prop">

+      <details key="start" value="10854"/>

+      <details key="end" value="10869"/>

+      <details key="line" value="222"/>

+    </eAnnotations>

+    <eAnnotations source="positions.710" references="/0/getTypeNameForProperty/%">

+      <details key="start" value="10882"/>

+      <details key="end" value="11024"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.711" references="/0/getTypeNameForProperty/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.712" references="/0/getTypeNameForProperty/%/%">

+      <details key="start" value="10889"/>

+      <details key="end" value="10951"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.713" references="/0/getTypeNameForProperty/%/%.1">

+      <details key="start" value="10952"/>

+      <details key="end" value="11007"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.714" references="/0/getTypeNameForProperty/%/%.2">

+      <details key="start" value="11009"/>

+      <details key="end" value="11023"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.715" references="/0/getTypeNameForProperty/%/%.2/%/prop">

+      <details key="start" value="11018"/>

+      <details key="end" value="11022"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+  </ecore:EAnnotation>

+</xmi:XMI>

diff --git a/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generateFaultExtensions.emtl b/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generateFaultExtensions.emtl
new file mode 100644
index 0000000..9a39d25
--- /dev/null
+++ b/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generateFaultExtensions.emtl
@@ -0,0 +1,3119 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:mtl="http://www.eclipse.org/acceleo/mtl/3.0" xmlns:ocl.ecore="http://www.eclipse.org/ocl/1.1.0/Ecore">

+  <mtl:Module name="generateFaultExtensions" nsURI="org::polarsys::chess::contracts::transformations::main::generateFaultExtensions" startHeaderPosition="699" endHeaderPosition="1554">

+    <input>

+      <takesTypesFrom href="http://www.eclipse.org/uml2/5.0.0/UML#/"/>

+    </input>

+    <ownedModuleElement xsi:type="mtl:Template" name="generateFaultExtensions" visibility="Public" main="true">

+      <init>

+        <variable name="ErrorModelQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::ErrorModel">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="ErrorQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::ErrorState">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="StuckAtQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::StuckAt">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="StuckAtFixedQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::StuckAtFixed">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="InvertedQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::Inverted">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="RampDownQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::RampDown">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="InternalFaultQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::InternalFault">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+        <variable name="ExternalFaultQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESS::Dependability::ThreatsPropagation::InternalPropagation">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+      </init>

+      <body xsi:type="mtl:FileBlock" openMode="OverWrite">

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&lt;fault_extension_info name=&quot;"/>

+          <body xsi:type="ocl.ecore:PropertyCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <source xsi:type="ocl.ecore:VariableExp" name="system" referredVariable="/0/generateFaultExtensions/%/%/system">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            </source>

+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot; desc=&quot;Generated by CHESS&quot; smv_file=&quot;"/>

+          <body xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <source xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <source xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <source xsi:type="ocl.ecore:PropertyCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/generateFaultExtensions/model">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                </source>

+                <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+              </source>

+              <argument xsi:type="ocl.ecore:VariableExp" name="sysName" referredVariable="/0/generateFaultExtensions/sysName">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+            </source>

+            <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".smv">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </argument>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;>&#xA;  &lt;extensions>&#xA;"/>

+          <body xsi:type="mtl:LetBlock">

+            <body xsi:type="mtl:LetBlock">

+              <body xsi:type="mtl:LetBlock">

+                <body xsi:type="mtl:ForBlock">

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="    &lt;nominal_component_extensions module=&quot;"/>

+                  <body xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/cl">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;>&#xA;      &lt;fault_models>&#xA;"/>

+                  <body xsi:type="mtl:ForBlock">

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="        &lt;fault_model name=&quot;"/>

+                    <body xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="errorModel" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/errorModel">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;>&#xA;          &lt;fault_modes>&#xA;"/>

+                    <body xsi:type="mtl:ForBlock">

+                      <body xsi:type="mtl:LetBlock">

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="            &lt;fault_mode enabled=&quot;yes&quot; probability=&quot;"/>

+                        <body xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                          </source>

+                          <argument xsi:type="ocl.ecore:VariableExp" name="errorStereo" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/errorStereo">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          </argument>

+                          <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="probability">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          </argument>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;>&#xA;              &lt;user_info>&#xA;                &lt;name>"/>

+                        <body xsi:type="ocl.ecore:PropertyCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                          <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                        </body>

+                        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&lt;/name>&#xA;                &lt;desc>&lt;/desc>&#xA;              &lt;/user_info>&#xA;"/>

+                        <body xsi:type="mtl:IfBlock">

+                          <body xsi:type="mtl:LetBlock">

+                            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="              &lt;effects_model name=&quot;StuckAtByReference_D&quot; desc=&quot;&quot;>&#xA;                &lt;values>&#xA;                  &lt;input reads=&quot;term&quot; value=&quot;"/>

+                            <body xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                              <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                              </source>

+                              <argument xsi:type="ocl.ecore:VariableExp" name="stuckAtStereo" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/stuckAtStereo">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                              </argument>

+                              <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="value">

+                                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                              </argument>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                            </body>

+                            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;/>&#xA;"/>

+                            <body xsi:type="mtl:LetBlock">

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="                  &lt;output writes=&quot;varout&quot; reads=&quot;input&quot; binds=&quot;"/>

+                              <body xsi:type="ocl.ecore:PropertyCallExp">

+                                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/prop">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                              </body>

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot; type=&quot;"/>

+                              <body xsi:type="mtl:QueryInvocation" definition="/0/getTypeNameForProperty">

+                                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                <argument xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/prop">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                </argument>

+                              </body>

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;/>&#xA;"/>

+                              <letVariable name="prop">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                  <source xsi:type="ocl.ecore:OperationCallExp">

+                                    <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                                    <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                    </source>

+                                    <argument xsi:type="ocl.ecore:VariableExp" name="stuckAtStereo" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/stuckAtStereo">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                    </argument>

+                                    <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="property">

+                                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                    </argument>

+                                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                                  </source>

+                                  <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Property">

+                                    <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                  </argument>

+                                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                                </initExpression>

+                              </letVariable>

+                            </body>

+                            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="                &lt;/values>&#xA;              &lt;/effects_model>&#xA;"/>

+                            <letVariable name="stuckAtStereo">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                              <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                </source>

+                                <argument xsi:type="ocl.ecore:VariableExp" name="StuckAtQN" referredVariable="/0/generateFaultExtensions/@init/@variable.2">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                </argument>

+                                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                              </initExpression>

+                            </letVariable>

+                          </body>

+                          <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                            <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(Stereotype)">

+                              <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                                <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                              </eAnnotations>

+                              <part xsi:type="ocl.ecore:CollectionItem">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                <item xsi:type="ocl.ecore:OperationCallExp">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                  <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                  </source>

+                                  <argument xsi:type="ocl.ecore:VariableExp" name="StuckAtQN" referredVariable="/0/generateFaultExtensions/@init/@variable.2">

+                                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  </argument>

+                                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                                </item>

+                              </part>

+                            </source>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                          </ifExpr>

+                          <elseIf>

+                            <body xsi:type="mtl:LetBlock">

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;&#x9;  &lt;effects_model name=&quot;Inverted&quot; desc=&quot;&quot;>&#xA;                &lt;values>&#xA;"/>

+                              <body xsi:type="mtl:LetBlock">

+                                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="                  &lt;output writes=&quot;varout&quot; reads=&quot;input&quot; binds=&quot;"/>

+                                <body xsi:type="ocl.ecore:PropertyCallExp">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/prop">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                  </source>

+                                  <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                                </body>

+                                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot; type=&quot;"/>

+                                <body xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  <argument xsi:type="ocl.ecore:PropertyCallExp">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/prop">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                    </source>

+                                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                                  </argument>

+                                </body>

+                                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;/>&#xA;"/>

+                                <letVariable name="prop">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                  <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                    <source xsi:type="ocl.ecore:OperationCallExp">

+                                      <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                                      <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                      </source>

+                                      <argument xsi:type="ocl.ecore:VariableExp" name="invertedStereo" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/invertedStereo">

+                                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                      </argument>

+                                      <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="property">

+                                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                      </argument>

+                                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                                    </source>

+                                    <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Property">

+                                      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                    </argument>

+                                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                                  </initExpression>

+                                </letVariable>

+                              </body>

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="                &lt;/values>&#xA;              &lt;/effects_model>&#xA;"/>

+                              <letVariable name="invertedStereo">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                  <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                  </source>

+                                  <argument xsi:type="ocl.ecore:VariableExp" name="InvertedQN" referredVariable="/0/generateFaultExtensions/@init/@variable.4">

+                                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  </argument>

+                                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                                </initExpression>

+                              </letVariable>

+                            </body>

+                            <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(Stereotype)">

+                                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                                </eAnnotations>

+                                <part xsi:type="ocl.ecore:CollectionItem">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                  <item xsi:type="ocl.ecore:OperationCallExp">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                    <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                    </source>

+                                    <argument xsi:type="ocl.ecore:VariableExp" name="InvertedQN" referredVariable="/0/generateFaultExtensions/@init/@variable.4">

+                                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                    </argument>

+                                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                                  </item>

+                                </part>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                            </ifExpr>

+                          </elseIf>

+                          <elseIf>

+                            <body xsi:type="mtl:LetBlock">

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;&#x9;  &lt;effects_model name=&quot;StuckAtFixed&quot; desc=&quot;&quot;>&#xA;                &lt;values>&#xA;"/>

+                              <body xsi:type="mtl:LetBlock">

+                                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="                  &lt;output writes=&quot;varout&quot; reads=&quot;input&quot; binds=&quot;"/>

+                                <body xsi:type="ocl.ecore:PropertyCallExp">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/prop">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                  </source>

+                                  <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                                </body>

+                                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot; type=&quot;"/>

+                                <body xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  <argument xsi:type="ocl.ecore:PropertyCallExp">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/prop">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                    </source>

+                                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                                  </argument>

+                                </body>

+                                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;/>&#xA;"/>

+                                <letVariable name="prop">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                  <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                    <source xsi:type="ocl.ecore:OperationCallExp">

+                                      <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                                      <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                      </source>

+                                      <argument xsi:type="ocl.ecore:VariableExp" name="stuckAtFixedStereo" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/stuckAtFixedStereo">

+                                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                      </argument>

+                                      <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="property">

+                                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                      </argument>

+                                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                                    </source>

+                                    <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Property">

+                                      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                    </argument>

+                                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                                  </initExpression>

+                                </letVariable>

+                              </body>

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="                &lt;/values>&#xA;              &lt;/effects_model>&#xA;"/>

+                              <letVariable name="stuckAtFixedStereo">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                  <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                  </source>

+                                  <argument xsi:type="ocl.ecore:VariableExp" name="InvertedQN" referredVariable="/0/generateFaultExtensions/@init/@variable.4">

+                                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  </argument>

+                                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                                </initExpression>

+                              </letVariable>

+                            </body>

+                            <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(Stereotype)">

+                                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                                </eAnnotations>

+                                <part xsi:type="ocl.ecore:CollectionItem">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                  <item xsi:type="ocl.ecore:OperationCallExp">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                    <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                    </source>

+                                    <argument xsi:type="ocl.ecore:VariableExp" name="StuckAtFixedQN" referredVariable="/0/generateFaultExtensions/@init/@variable.3">

+                                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                    </argument>

+                                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                                  </item>

+                                </part>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                            </ifExpr>

+                          </elseIf>

+                          <elseIf>

+                            <body xsi:type="mtl:LetBlock">

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;&#x9;  &lt;effects_model name=&quot;RampDown&quot; desc=&quot;&quot;>&#xA;                &lt;values>&#xA;&#x9;&#x9;&#x9;&#x9;  &lt;input reads=&quot;decr&quot; value=&quot;"/>

+                              <body xsi:type="ocl.ecore:OperationCallExp">

+                                <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                                <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                </source>

+                                <argument xsi:type="ocl.ecore:VariableExp" name="rampDownStereo" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/rampDownStereo">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                </argument>

+                                <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="decr">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                </argument>

+                                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                              </body>

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;/>&#xA;                  &lt;input reads=&quot;end_value&quot; value=&quot;"/>

+                              <body xsi:type="ocl.ecore:OperationCallExp">

+                                <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                                <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                </source>

+                                <argument xsi:type="ocl.ecore:VariableExp" name="rampDownStereo" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/rampDownStereo">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                </argument>

+                                <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="endValue">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                </argument>

+                                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                              </body>

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;/>&#xA;"/>

+                              <body xsi:type="mtl:LetBlock">

+                                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="                  &lt;output writes=&quot;varout&quot; reads=&quot;input&quot; binds=&quot;"/>

+                                <body xsi:type="ocl.ecore:PropertyCallExp">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/prop">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                  </source>

+                                  <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+                                </body>

+                                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot; type=&quot;"/>

+                                <body xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  <argument xsi:type="ocl.ecore:PropertyCallExp">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/prop">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                    </source>

+                                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                                  </argument>

+                                </body>

+                                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;/>&#xA;"/>

+                                <letVariable name="prop">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                  <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                    <source xsi:type="ocl.ecore:OperationCallExp">

+                                      <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+                                      <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                      </source>

+                                      <argument xsi:type="ocl.ecore:VariableExp" name="rampDownStereo" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/rampDownStereo">

+                                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                      </argument>

+                                      <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="property">

+                                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                      </argument>

+                                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getValue"/>

+                                    </source>

+                                    <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Property">

+                                      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                                    </argument>

+                                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                                  </initExpression>

+                                </letVariable>

+                              </body>

+                              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="                &lt;/values>&#xA;              &lt;/effects_model>&#xA;"/>

+                              <letVariable name="rampDownStereo">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                  <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                  </source>

+                                  <argument xsi:type="ocl.ecore:VariableExp" name="InvertedQN" referredVariable="/0/generateFaultExtensions/@init/@variable.4">

+                                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                  </argument>

+                                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                                </initExpression>

+                              </letVariable>

+                            </body>

+                            <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                              <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(Stereotype)">

+                                <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                                  <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                                </eAnnotations>

+                                <part xsi:type="ocl.ecore:CollectionItem">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                  <item xsi:type="ocl.ecore:OperationCallExp">

+                                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                    <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                    </source>

+                                    <argument xsi:type="ocl.ecore:VariableExp" name="RampDownQN" referredVariable="/0/generateFaultExtensions/@init/@variable.5">

+                                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                    </argument>

+                                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                                  </item>

+                                </part>

+                              </source>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                            </ifExpr>

+                          </elseIf>

+                        </body>

+                        <body xsi:type="mtl:LetBlock">

+                          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="              &lt;local_dynamics_model name=&quot;Permanent&quot; desc=&quot;&quot;>&#xA;                &lt;events>&#xA;                  &lt;event type=&quot;output&quot; name=&quot;failure&quot; connected=&quot;no&quot;/>&#xA;                &lt;/events>&#xA;              &lt;/local_dynamics_model>&#xA;"/>

+                          <letVariable name="tr">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                            <initExpression xsi:type="ocl.ecore:IteratorExp" name="any">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/19/Set(Transition)">

+                                <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                </source>

+                                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex/incoming"/>

+                              </source>

+                              <body xsi:type="ocl.ecore:OperationCallExp">

+                                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                                <source xsi:type="ocl.ecore:OperationCallExp">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(Stereotype)">

+                                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                                    </eAnnotations>

+                                    <part xsi:type="ocl.ecore:CollectionItem">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                      <item xsi:type="ocl.ecore:OperationCallExp">

+                                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                        <source xsi:type="ocl.ecore:VariableExp" name="fault" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/fault">

+                                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                                        </source>

+                                        <argument xsi:type="ocl.ecore:VariableExp" name="InternalFaultQN" referredVariable="/0/generateFaultExtensions/@init/@variable.6">

+                                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                        </argument>

+                                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                                      </item>

+                                    </part>

+                                  </source>

+                                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                                </source>

+                                <argument xsi:type="ocl.ecore:OperationCallExp">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(Stereotype)">

+                                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                                    </eAnnotations>

+                                    <part xsi:type="ocl.ecore:CollectionItem">

+                                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                      <item xsi:type="ocl.ecore:OperationCallExp">

+                                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                        <source xsi:type="ocl.ecore:VariableExp" name="fault" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/fault">

+                                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                                        </source>

+                                        <argument xsi:type="ocl.ecore:VariableExp" name="ExternalFaultQN" referredVariable="/0/generateFaultExtensions/@init/@variable.7">

+                                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                        </argument>

+                                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                                      </item>

+                                    </part>

+                                  </source>

+                                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                                </argument>

+                                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>

+                              </body>

+                              <iterator xsi:type="ocl.ecore:Variable" name="fault">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                              </iterator>

+                            </initExpression>

+                          </letVariable>

+                        </body>

+                        <letVariable name="errorStereo">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                          <initExpression xsi:type="ocl.ecore:OperationCallExp">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <source xsi:type="ocl.ecore:VariableExp" name="errorState" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                            </source>

+                            <argument xsi:type="ocl.ecore:VariableExp" name="ErrorQN" referredVariable="/0/generateFaultExtensions/@init/@variable.1">

+                              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                            </argument>

+                            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                          </initExpression>

+                        </letVariable>

+                      </body>

+                      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="            &lt;/fault_mode>&#xA;"/>

+                      <loopVariable name="errorState">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                      </loopVariable>

+                      <iterSet xsi:type="ocl.ecore:IteratorExp" name="select" eType="/19/Bag(State)">

+                        <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Bag(State)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                          <source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/19/Bag(Vertex)">

+                            <source xsi:type="ocl.ecore:PropertyCallExp" eType="/19/Set(Region)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="errorModel" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/errorModel">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine/region"/>

+                            </source>

+                            <body xsi:type="ocl.ecore:PropertyCallExp" eType="/19/Set(Vertex)">

+                              <source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%/collect/temp1">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                              </source>

+                              <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region/subvertex"/>

+                            </body>

+                            <iterator xsi:type="ocl.ecore:Variable" name="temp1">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                            </iterator>

+                          </source>

+                          <argument xsi:type="ocl.ecore:TypeExp" eType="/20/State">

+                            <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                          </argument>

+                        </source>

+                        <body xsi:type="ocl.ecore:OperationCallExp">

+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                          <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(Stereotype)">

+                            <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                              <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                            </eAnnotations>

+                            <part xsi:type="ocl.ecore:CollectionItem">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                              <item xsi:type="ocl.ecore:OperationCallExp">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                                <source xsi:type="ocl.ecore:VariableExp" name="error" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/error">

+                                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                                </source>

+                                <argument xsi:type="ocl.ecore:VariableExp" name="ErrorQN" referredVariable="/0/generateFaultExtensions/@init/@variable.1">

+                                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                                </argument>

+                                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                              </item>

+                            </part>

+                          </source>

+                          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                        </body>

+                        <iterator xsi:type="ocl.ecore:Variable" name="error">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                        </iterator>

+                      </iterSet>

+                    </body>

+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="          &lt;/fault_modes>&#xA;        &lt;/fault_model>&#xA;"/>

+                    <loopVariable name="errorModel">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                    </loopVariable>

+                    <iterSet xsi:type="ocl.ecore:IteratorExp" name="select" eType="/19/Set(StateMachine)">

+                      <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Set(StateMachine)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:PropertyCallExp" eType="/19/Set(Behavior)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/cl">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//BehavioredClassifier/ownedBehavior"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/StateMachine">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                        </argument>

+                      </source>

+                      <body xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(Stereotype)">

+                          <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                            <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                          </eAnnotations>

+                          <part xsi:type="ocl.ecore:CollectionItem">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <item xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                              <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/sm">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                              </source>

+                              <argument xsi:type="ocl.ecore:VariableExp" name="ErrorModelQN" referredVariable="/0/generateFaultExtensions/@init/@variable.0">

+                                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                              </argument>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                            </item>

+                          </part>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                      </body>

+                      <iterator xsi:type="ocl.ecore:Variable" name="sm">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                      </iterator>

+                    </iterSet>

+                  </body>

+                  <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="      &lt;/fault_models>&#xA;    &lt;/nominal_component_extensions>&#xA;"/>

+                  <loopVariable name="cl">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  </loopVariable>

+                  <iterSet xsi:type="ocl.ecore:VariableExp" name="nominalComponents" eType="/19/Set(Class)" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents"/>

+                </body>

+                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="  &lt;/extensions>&#xA;&lt;/fault_extension_info>&#xA;"/>

+                <letVariable name="nominalComponents" eType="/19/Set(Class)">

+                  <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/19/Set(Class)">

+                    <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Set(Class)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                      <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Set(Element)">

+                        <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/generateFaultExtensions/model">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Class">

+                        <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      </argument>

+                    </source>

+                    <body xsi:type="ocl.ecore:IteratorExp" name="exists">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Set(StateMachine)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                        <source xsi:type="ocl.ecore:PropertyCallExp" eType="/19/Set(Behavior)">

+                          <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/cl">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                          </source>

+                          <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//BehavioredClassifier/ownedBehavior"/>

+                        </source>

+                        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/StateMachine">

+                          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                        </argument>

+                      </source>

+                      <body xsi:type="ocl.ecore:OperationCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                        <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(Stereotype)">

+                          <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                            <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                          </eAnnotations>

+                          <part xsi:type="ocl.ecore:CollectionItem">

+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                            <item xsi:type="ocl.ecore:OperationCallExp">

+                              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                              <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/sm">

+                                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                              </source>

+                              <argument xsi:type="ocl.ecore:VariableExp" name="ErrorModelQN" referredVariable="/0/generateFaultExtensions/@init/@variable.0">

+                                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                              </argument>

+                              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                            </item>

+                          </part>

+                        </source>

+                        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                      </body>

+                      <iterator xsi:type="ocl.ecore:Variable" name="sm">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                      </iterator>

+                    </body>

+                    <iterator xsi:type="ocl.ecore:Variable" name="cl">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </iterator>

+                  </initExpression>

+                </letVariable>

+              </body>

+              <letVariable name="systemClasses" eType="/19/Set(Class)">

+                <initExpression xsi:type="ocl.ecore:OperationCallExp" eType="/19/Set(Class)">

+                  <source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/19/Bag(Class)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="systemProps" eType="/19/Set(Property)" referredVariable="/0/generateFaultExtensions/%/%/%.5/systemProps"/>

+                    <body xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="pr" referredVariable="/0/generateFaultExtensions/%/%/%.5/%/systemClasses/%/collect/pr">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Class">

+                        <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+                    </body>

+                    <iterator xsi:type="ocl.ecore:Variable" name="pr">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </iterator>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Bag(T)_Class/asSet"/>

+                </initExpression>

+              </letVariable>

+            </body>

+            <letVariable name="systemProps" eType="/19/Set(Property)">

+              <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/19/Set(Property)">

+                <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Set(Property)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                  <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Set(Element)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="system" referredVariable="/0/generateFaultExtensions/%/%/system">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Property">

+                    <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </argument>

+                </source>

+                <body xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateFaultExtensions/%/%/%.5/systemProps/select/prop">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Class">

+                    <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+                </body>

+                <iterator xsi:type="ocl.ecore:Variable" name="prop">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </iterator>

+              </initExpression>

+            </letVariable>

+          </body>

+          <letVariable name="system">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+            <initExpression xsi:type="mtl:QueryInvocation" definition="/0/getSystem">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+              <argument xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/generateFaultExtensions/model">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+              </argument>

+              <argument xsi:type="ocl.ecore:VariableExp" name="sysQN" referredVariable="/0/generateFaultExtensions/sysQN">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              </argument>

+            </initExpression>

+          </letVariable>

+        </body>

+        <fileUrl xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <source xsi:type="ocl.ecore:OperationCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <source xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <source xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="model" referredVariable="/0/generateFaultExtensions/model">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                </source>

+                <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+              </source>

+              <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+            </source>

+            <argument xsi:type="ocl.ecore:VariableExp" name="sysName" referredVariable="/0/generateFaultExtensions/sysName">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            </argument>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+          </source>

+          <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".fei">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </argument>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+        </fileUrl>

+        <charset xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="UTF-8">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </charset>

+      </body>

+      <parameter name="model">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+      </parameter>

+      <parameter name="sysQN">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="sysName">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <parameter name="filename">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getSystem" visibility="Public">

+      <parameter name="model">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+      </parameter>

+      <parameter name="sysQN">

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        <source xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+          <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Sequence(NamedElement)">

+            <source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/19/Set(NamedElement)">

+              <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Set(NamedElement)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                <source xsi:type="ocl.ecore:OperationCallExp" eType="/19/Set(Element)">

+                  <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/67">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/allOwnedElements"/>

+                </source>

+                <argument xsi:type="ocl.ecore:TypeExp" eType="/20/NamedElement">

+                  <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+                </argument>

+              </source>

+              <body xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Set(String)">

+                    <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                      <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                    </eAnnotations>

+                    <part xsi:type="ocl.ecore:CollectionItem">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      <item xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="elem" referredVariable="/0/getSystem/%/%/%/select/elem">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/qualifiedName"/>

+                      </item>

+                    </part>

+                  </source>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_String_Class/equalsIgnoreCase">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="elem" referredVariable="/0/getSystem/%/%/%/select/elem">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/qualifiedName"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:VariableExp" name="sysQN" referredVariable="/0/getSystem/sysQN">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  </argument>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+              </body>

+              <iterator xsi:type="ocl.ecore:Variable" name="elem">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+              </iterator>

+            </source>

+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/asSequence"/>

+          </source>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/first"/>

+        </source>

+        <argument xsi:type="ocl.ecore:TypeExp" eType="/20/Class">

+          <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </argument>

+        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+      </expression>

+      <type xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getType" visibility="Public">

+      <parameter name="type">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/70">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getType(org.eclipse.uml2.uml.Type)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Sequence(Type)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/getType/type">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getTypeNameForProperty" visibility="Public">

+      <parameter name="prop">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/73">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getTypeNameForProperty(org.eclipse.uml2.uml.Property)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/19/Sequence(Property)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/getTypeNameForProperty/prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+  </mtl:Module>

+  <ecore:EPackage name="additions">

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_String_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </eAnnotations>

+      <eOperations name="equalsIgnoreCase">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+        <eParameters name="other">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Integer_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Real_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ecore_EObject_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+      </eAnnotations>

+      <eOperations name="generateFaultExtensions">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/generateFaultExtensions"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="model">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+        </eParameters>

+        <eParameters name="sysQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="sysName">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="filename">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getSystem">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getSystem"/>

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        <eParameters name="model">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+        </eParameters>

+        <eParameters name="sysQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getType">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getType"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="type">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getTypeNameForProperty">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getTypeNameForProperty"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="prop">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OclAny_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+      </eAnnotations>

+      <eOperations name="invoke">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <eParameters name="class">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="method">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="arguments">

+          <eType xsi:type="ocl.ecore:SequenceType" href="http://www.eclipse.org/acceleo/mtl/3.0/mtlnonstdlib.ecore#//Sequence(OclAny)"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Collection(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>

+      </eAnnotations>

+      <eOperations name="filter">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>

+        <eParameters name="filter">

+          <eType xsi:type="ocl.ecore:TypeType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclType"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Sequence(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OrderedSet(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Model_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Type_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Property_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+      </eAnnotations>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ecore:EPackage name="collections">

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Element)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Property)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(Class)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Class)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Behavior)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(StateMachine)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Stereotype)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Region)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Vertex)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(Vertex)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(State)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Transition)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(NamedElement)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(String)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(NamedElement)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Type)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(OclAny)" instanceClassName="java.util.List">

+      <elementType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Property)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ecore:EPackage name="types">

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Property">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Class">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="StateMachine">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="State">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="NamedElement">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Model"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ecore:EAnnotation source="positions">

+    <eAnnotations source="positions.0" references="/0/generateFaultExtensions">

+      <details key="start" value="775"/>

+      <details key="end" value="6246"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1" references="/0/generateFaultExtensions/@init">

+      <details key="start" value="884"/>

+      <details key="end" value="1538"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.2" references="/0/generateFaultExtensions/@init/@variable.0">

+      <details key="start" value="887"/>

+      <details key="end" value="965"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.3" references="/0/generateFaultExtensions/@init/@variable.0/%">

+      <details key="start" value="911"/>

+      <details key="end" value="965"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.4" references="/0/generateFaultExtensions/@init/@variable.1">

+      <details key="start" value="968"/>

+      <details key="end" value="1041"/>

+      <details key="line" value="24"/>

+    </eAnnotations>

+    <eAnnotations source="positions.5" references="/0/generateFaultExtensions/@init/@variable.1/%">

+      <details key="start" value="987"/>

+      <details key="end" value="1041"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.6" references="/0/generateFaultExtensions/@init/@variable.2">

+      <details key="start" value="1044"/>

+      <details key="end" value="1116"/>

+      <details key="line" value="25"/>

+    </eAnnotations>

+    <eAnnotations source="positions.7" references="/0/generateFaultExtensions/@init/@variable.2/%">

+      <details key="start" value="1065"/>

+      <details key="end" value="1116"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.8" references="/0/generateFaultExtensions/@init/@variable.3">

+      <details key="start" value="1119"/>

+      <details key="end" value="1201"/>

+      <details key="line" value="26"/>

+    </eAnnotations>

+    <eAnnotations source="positions.9" references="/0/generateFaultExtensions/@init/@variable.3/%">

+      <details key="start" value="1145"/>

+      <details key="end" value="1201"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.10" references="/0/generateFaultExtensions/@init/@variable.4">

+      <details key="start" value="1204"/>

+      <details key="end" value="1278"/>

+      <details key="line" value="27"/>

+    </eAnnotations>

+    <eAnnotations source="positions.11" references="/0/generateFaultExtensions/@init/@variable.4/%">

+      <details key="start" value="1226"/>

+      <details key="end" value="1278"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.12" references="/0/generateFaultExtensions/@init/@variable.5">

+      <details key="start" value="1281"/>

+      <details key="end" value="1355"/>

+      <details key="line" value="28"/>

+    </eAnnotations>

+    <eAnnotations source="positions.13" references="/0/generateFaultExtensions/@init/@variable.5/%">

+      <details key="start" value="1303"/>

+      <details key="end" value="1355"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.14" references="/0/generateFaultExtensions/@init/@variable.6">

+      <details key="start" value="1358"/>

+      <details key="end" value="1442"/>

+      <details key="line" value="29"/>

+    </eAnnotations>

+    <eAnnotations source="positions.15" references="/0/generateFaultExtensions/@init/@variable.6/%">

+      <details key="start" value="1385"/>

+      <details key="end" value="1442"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.16" references="/0/generateFaultExtensions/@init/@variable.7">

+      <details key="start" value="1445"/>

+      <details key="end" value="1535"/>

+      <details key="line" value="30"/>

+    </eAnnotations>

+    <eAnnotations source="positions.17" references="/0/generateFaultExtensions/@init/@variable.7/%">

+      <details key="start" value="1472"/>

+      <details key="end" value="1535"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.18" references="/0/generateFaultExtensions/%">

+      <details key="start" value="1557"/>

+      <details key="end" value="6234"/>

+      <details key="line" value="33"/>

+    </eAnnotations>

+    <eAnnotations source="positions.19" references="/0/generateFaultExtensions/%/%">

+      <details key="start" value="1636"/>

+      <details key="end" value="6226"/>

+      <details key="line" value="34"/>

+    </eAnnotations>

+    <eAnnotations source="positions.20" references="/0/generateFaultExtensions/%/%/%">

+      <details key="start" value="1683"/>

+      <details key="end" value="1711"/>

+      <details key="line" value="35"/>

+    </eAnnotations>

+    <eAnnotations source="positions.21" references="/0/generateFaultExtensions/%/%/%.1">

+      <details key="start" value="1712"/>

+      <details key="end" value="1723"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.22" references="/0/generateFaultExtensions/%/%/%.1/system">

+      <details key="start" value="1712"/>

+      <details key="end" value="1718"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.23" references="/0/generateFaultExtensions/%/%/%.2">

+      <details key="start" value="1725"/>

+      <details key="end" value="1763"/>

+      <details key="line" value="35"/>

+    </eAnnotations>

+    <eAnnotations source="positions.24" references="/0/generateFaultExtensions/%/%/%.3">

+      <details key="start" value="1764"/>

+      <details key="end" value="1817"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.25" references="/0/generateFaultExtensions/%/%/%.3/%">

+      <details key="start" value="1764"/>

+      <details key="end" value="1802"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.26" references="/0/generateFaultExtensions/%/%/%.3/%/%">

+      <details key="start" value="1764"/>

+      <details key="end" value="1786"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.27" references="/0/generateFaultExtensions/%/%/%.3/%/%/%">

+      <details key="start" value="1764"/>

+      <details key="end" value="1774"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.28" references="/0/generateFaultExtensions/%/%/%.3/%/%/%/model">

+      <details key="start" value="1764"/>

+      <details key="end" value="1769"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.29" references="/0/generateFaultExtensions/%/%/%.3/%/%/%.1">

+      <details key="start" value="1782"/>

+      <details key="end" value="1785"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.30" references="/0/generateFaultExtensions/%/%/%.3/%/sysName">

+      <details key="start" value="1794"/>

+      <details key="end" value="1801"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.31" references="/0/generateFaultExtensions/%/%/%.3/%.1">

+      <details key="start" value="1810"/>

+      <details key="end" value="1816"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.32" references="/0/generateFaultExtensions/%/%/%.4">

+      <details key="start" value="1819"/>

+      <details key="end" value="1837"/>

+      <details key="line" value="35"/>

+    </eAnnotations>

+    <eAnnotations source="positions.33" references="/0/generateFaultExtensions/%/%/%.5">

+      <details key="start" value="1837"/>

+      <details key="end" value="6219"/>

+      <details key="line" value="37"/>

+    </eAnnotations>

+    <eAnnotations source="positions.34" references="/0/generateFaultExtensions/%/%/%.5/%">

+      <details key="start" value="1974"/>

+      <details key="end" value="6212"/>

+      <details key="line" value="38"/>

+    </eAnnotations>

+    <eAnnotations source="positions.35" references="/0/generateFaultExtensions/%/%/%.5/%/%">

+      <details key="start" value="2081"/>

+      <details key="end" value="6205"/>

+      <details key="line" value="39"/>

+    </eAnnotations>

+    <eAnnotations source="positions.36" references="/0/generateFaultExtensions/%/%/%.5/%/%/%">

+      <details key="start" value="2303"/>

+      <details key="end" value="6158"/>

+      <details key="line" value="41"/>

+    </eAnnotations>

+    <eAnnotations source="positions.37" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%">

+      <details key="start" value="2342"/>

+      <details key="end" value="2384"/>

+      <details key="line" value="42"/>

+    </eAnnotations>

+    <eAnnotations source="positions.38" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.1">

+      <details key="start" value="2385"/>

+      <details key="end" value="2392"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.39" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.1/cl">

+      <details key="start" value="2385"/>

+      <details key="end" value="2387"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.40" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.2">

+      <details key="start" value="2394"/>

+      <details key="end" value="2418"/>

+      <details key="line" value="42"/>

+    </eAnnotations>

+    <eAnnotations source="positions.41" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3">

+      <details key="start" value="2421"/>

+      <details key="end" value="6091"/>

+      <details key="line" value="44"/>

+    </eAnnotations>

+    <eAnnotations source="positions.42" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%">

+      <details key="start" value="2575"/>

+      <details key="end" value="2602"/>

+      <details key="line" value="45"/>

+    </eAnnotations>

+    <eAnnotations source="positions.43" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.1">

+      <details key="start" value="2603"/>

+      <details key="end" value="2618"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.44" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.1/errorModel">

+      <details key="start" value="2603"/>

+      <details key="end" value="2613"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.45" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.2">

+      <details key="start" value="2620"/>

+      <details key="end" value="2647"/>

+      <details key="line" value="45"/>

+    </eAnnotations>

+    <eAnnotations source="positions.46" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3">

+      <details key="start" value="2657"/>

+      <details key="end" value="6030"/>

+      <details key="line" value="47"/>

+    </eAnnotations>

+    <eAnnotations source="positions.47" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%">

+      <details key="start" value="2805"/>

+      <details key="end" value="5987"/>

+      <details key="line" value="48"/>

+    </eAnnotations>

+    <eAnnotations source="positions.48" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%">

+      <details key="start" value="2879"/>

+      <details key="end" value="2930"/>

+      <details key="line" value="49"/>

+    </eAnnotations>

+    <eAnnotations source="positions.49" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.1">

+      <details key="start" value="2931"/>

+      <details key="end" value="2978"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.50" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.1/errorState">

+      <details key="start" value="2931"/>

+      <details key="end" value="2941"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.51" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.1/errorStereo">

+      <details key="start" value="2951"/>

+      <details key="end" value="2962"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.52" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.1/%">

+      <details key="start" value="2964"/>

+      <details key="end" value="2977"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.53" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.2">

+      <details key="start" value="2980"/>

+      <details key="end" value="3031"/>

+      <details key="line" value="49"/>

+    </eAnnotations>

+    <eAnnotations source="positions.54" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.3">

+      <details key="start" value="3032"/>

+      <details key="end" value="3047"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.55" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.3/errorState">

+      <details key="start" value="3032"/>

+      <details key="end" value="3042"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.56" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.4">

+      <details key="start" value="3049"/>

+      <details key="end" value="3114"/>

+      <details key="line" value="51"/>

+    </eAnnotations>

+    <eAnnotations source="positions.57" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5">

+      <details key="start" value="3119"/>

+      <details key="end" value="5531"/>

+      <details key="line" value="54"/>

+    </eAnnotations>

+    <eAnnotations source="positions.58" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%">

+      <details key="start" value="3188"/>

+      <details key="end" value="3754"/>

+      <details key="line" value="55"/>

+    </eAnnotations>

+    <eAnnotations source="positions.59" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%">

+      <details key="start" value="3266"/>

+      <details key="end" value="3402"/>

+      <details key="line" value="56"/>

+    </eAnnotations>

+    <eAnnotations source="positions.60" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.1">

+      <details key="start" value="3403"/>

+      <details key="end" value="3446"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.61" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.1/errorState">

+      <details key="start" value="3403"/>

+      <details key="end" value="3413"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.62" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.1/stuckAtStereo">

+      <details key="start" value="3423"/>

+      <details key="end" value="3436"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.63" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.1/%">

+      <details key="start" value="3438"/>

+      <details key="end" value="3445"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.64" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.2">

+      <details key="start" value="3448"/>

+      <details key="end" value="3452"/>

+      <details key="line" value="58"/>

+    </eAnnotations>

+    <eAnnotations source="positions.65" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3">

+      <details key="start" value="3458"/>

+      <details key="end" value="3685"/>

+      <details key="line" value="59"/>

+    </eAnnotations>

+    <eAnnotations source="positions.66" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/%">

+      <details key="start" value="3554"/>

+      <details key="end" value="3617"/>

+      <details key="line" value="59"/>

+    </eAnnotations>

+    <eAnnotations source="positions.67" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/%.1">

+      <details key="start" value="3618"/>

+      <details key="end" value="3627"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.68" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/%.1/prop">

+      <details key="start" value="3618"/>

+      <details key="end" value="3622"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.69" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/%.2">

+      <details key="start" value="3629"/>

+      <details key="end" value="3637"/>

+      <details key="line" value="60"/>

+    </eAnnotations>

+    <eAnnotations source="positions.70" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/%.3">

+      <details key="start" value="3638"/>

+      <details key="end" value="3666"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.71" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/%.3/prop">

+      <details key="start" value="3661"/>

+      <details key="end" value="3665"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.72" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/%.4">

+      <details key="start" value="3668"/>

+      <details key="end" value="3672"/>

+      <details key="line" value="60"/>

+    </eAnnotations>

+    <eAnnotations source="positions.73" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/prop">

+      <details key="start" value="3463"/>

+      <details key="end" value="3547"/>

+      <details key="line" value="59"/>

+    </eAnnotations>

+    <eAnnotations source="positions.74" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/prop/%">

+      <details key="start" value="3482"/>

+      <details key="end" value="3548"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.75" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/prop/%/%">

+      <details key="start" value="3482"/>

+      <details key="end" value="3528"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.76" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/prop/%/%/errorState">

+      <details key="start" value="3482"/>

+      <details key="end" value="3492"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.77" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/prop/%/%/stuckAtStereo">

+      <details key="start" value="3502"/>

+      <details key="end" value="3515"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.78" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/prop/%/%/%">

+      <details key="start" value="3517"/>

+      <details key="end" value="3527"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.79" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.3/prop/%/%.1">

+      <details key="start" value="3539"/>

+      <details key="end" value="3547"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.80" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/%.4">

+      <details key="start" value="3686"/>

+      <details key="end" value="3743"/>

+      <details key="line" value="62"/>

+    </eAnnotations>

+    <eAnnotations source="positions.81" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/stuckAtStereo">

+      <details key="start" value="3193"/>

+      <details key="end" value="3264"/>

+      <details key="line" value="55"/>

+    </eAnnotations>

+    <eAnnotations source="positions.82" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/stuckAtStereo/%">

+      <details key="start" value="3223"/>

+      <details key="end" value="3265"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.83" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/stuckAtStereo/%/errorState">

+      <details key="start" value="3223"/>

+      <details key="end" value="3233"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.84" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%/stuckAtStereo/%/StuckAtQN">

+      <details key="start" value="3255"/>

+      <details key="end" value="3264"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.85" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.1">

+      <details key="start" value="3123"/>

+      <details key="end" value="3179"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.86" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.87" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.1/%/%/%">

+      <details key="start" value="3124"/>

+      <details key="end" value="3166"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.88" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.1/%/%/%/errorState">

+      <details key="start" value="3124"/>

+      <details key="end" value="3134"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.89" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.1/%/%/%/StuckAtQN">

+      <details key="start" value="3156"/>

+      <details key="end" value="3165"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.90" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2">

+      <details key="start" value="3760"/>

+      <details key="end" value="4281"/>

+      <details key="line" value="65"/>

+    </eAnnotations>

+    <eAnnotations source="positions.91" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%">

+      <details key="start" value="3832"/>

+      <details key="end" value="4275"/>

+      <details key="line" value="66"/>

+    </eAnnotations>

+    <eAnnotations source="positions.92" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%">

+      <details key="start" value="3912"/>

+      <details key="end" value="3982"/>

+      <details key="line" value="67"/>

+    </eAnnotations>

+    <eAnnotations source="positions.93" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1">

+      <details key="start" value="3988"/>

+      <details key="end" value="4206"/>

+      <details key="line" value="69"/>

+    </eAnnotations>

+    <eAnnotations source="positions.94" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/%">

+      <details key="start" value="4085"/>

+      <details key="end" value="4148"/>

+      <details key="line" value="69"/>

+    </eAnnotations>

+    <eAnnotations source="positions.95" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/%.1">

+      <details key="start" value="4149"/>

+      <details key="end" value="4158"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.96" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/%.1/prop">

+      <details key="start" value="4149"/>

+      <details key="end" value="4153"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.97" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/%.2">

+      <details key="start" value="4160"/>

+      <details key="end" value="4168"/>

+      <details key="line" value="70"/>

+    </eAnnotations>

+    <eAnnotations source="positions.98" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/%.3">

+      <details key="start" value="4169"/>

+      <details key="end" value="4187"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.99" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/%.3/%">

+      <details key="start" value="4177"/>

+      <details key="end" value="4186"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.100" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/%.3/%/prop">

+      <details key="start" value="4177"/>

+      <details key="end" value="4181"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.101" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/%.4">

+      <details key="start" value="4189"/>

+      <details key="end" value="4193"/>

+      <details key="line" value="70"/>

+    </eAnnotations>

+    <eAnnotations source="positions.102" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/prop">

+      <details key="start" value="3993"/>

+      <details key="end" value="4078"/>

+      <details key="line" value="69"/>

+    </eAnnotations>

+    <eAnnotations source="positions.103" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/prop/%">

+      <details key="start" value="4012"/>

+      <details key="end" value="4079"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.104" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/prop/%/%">

+      <details key="start" value="4012"/>

+      <details key="end" value="4059"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.105" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/prop/%/%/errorState">

+      <details key="start" value="4012"/>

+      <details key="end" value="4022"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.106" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/prop/%/%/invertedStereo">

+      <details key="start" value="4032"/>

+      <details key="end" value="4046"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.107" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/prop/%/%/%">

+      <details key="start" value="4048"/>

+      <details key="end" value="4058"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.108" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.1/prop/%/%.1">

+      <details key="start" value="4070"/>

+      <details key="end" value="4078"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.109" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/%.2">

+      <details key="start" value="4207"/>

+      <details key="end" value="4264"/>

+      <details key="line" value="72"/>

+    </eAnnotations>

+    <eAnnotations source="positions.110" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/invertedStereo">

+      <details key="start" value="3837"/>

+      <details key="end" value="3910"/>

+      <details key="line" value="66"/>

+    </eAnnotations>

+    <eAnnotations source="positions.111" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/invertedStereo/%">

+      <details key="start" value="3868"/>

+      <details key="end" value="3911"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.112" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/invertedStereo/%/errorState">

+      <details key="start" value="3868"/>

+      <details key="end" value="3878"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.113" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%/invertedStereo/%/InvertedQN">

+      <details key="start" value="3900"/>

+      <details key="end" value="3910"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.114" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%.1">

+      <details key="start" value="3768"/>

+      <details key="end" value="3825"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.115" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.116" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%.1/%/%/%">

+      <details key="start" value="3769"/>

+      <details key="end" value="3812"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.117" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%.1/%/%/%/errorState">

+      <details key="start" value="3769"/>

+      <details key="end" value="3779"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.118" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.2/%.1/%/%/%/InvertedQN">

+      <details key="start" value="3801"/>

+      <details key="end" value="3811"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.119" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3">

+      <details key="start" value="4281"/>

+      <details key="end" value="4818"/>

+      <details key="line" value="75"/>

+    </eAnnotations>

+    <eAnnotations source="positions.120" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%">

+      <details key="start" value="4357"/>

+      <details key="end" value="4812"/>

+      <details key="line" value="76"/>

+    </eAnnotations>

+    <eAnnotations source="positions.121" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%">

+      <details key="start" value="4441"/>

+      <details key="end" value="4515"/>

+      <details key="line" value="77"/>

+    </eAnnotations>

+    <eAnnotations source="positions.122" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1">

+      <details key="start" value="4521"/>

+      <details key="end" value="4743"/>

+      <details key="line" value="79"/>

+    </eAnnotations>

+    <eAnnotations source="positions.123" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/%">

+      <details key="start" value="4622"/>

+      <details key="end" value="4685"/>

+      <details key="line" value="79"/>

+    </eAnnotations>

+    <eAnnotations source="positions.124" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/%.1">

+      <details key="start" value="4686"/>

+      <details key="end" value="4695"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.125" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/%.1/prop">

+      <details key="start" value="4686"/>

+      <details key="end" value="4690"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.126" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/%.2">

+      <details key="start" value="4697"/>

+      <details key="end" value="4705"/>

+      <details key="line" value="80"/>

+    </eAnnotations>

+    <eAnnotations source="positions.127" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/%.3">

+      <details key="start" value="4706"/>

+      <details key="end" value="4724"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.128" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/%.3/%">

+      <details key="start" value="4714"/>

+      <details key="end" value="4723"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.129" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/%.3/%/prop">

+      <details key="start" value="4714"/>

+      <details key="end" value="4718"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.130" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/%.4">

+      <details key="start" value="4726"/>

+      <details key="end" value="4730"/>

+      <details key="line" value="80"/>

+    </eAnnotations>

+    <eAnnotations source="positions.131" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/prop">

+      <details key="start" value="4526"/>

+      <details key="end" value="4615"/>

+      <details key="line" value="79"/>

+    </eAnnotations>

+    <eAnnotations source="positions.132" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/prop/%">

+      <details key="start" value="4545"/>

+      <details key="end" value="4616"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.133" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/prop/%/%">

+      <details key="start" value="4545"/>

+      <details key="end" value="4596"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.134" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/prop/%/%/errorState">

+      <details key="start" value="4545"/>

+      <details key="end" value="4555"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.135" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/prop/%/%/stuckAtFixedStereo">

+      <details key="start" value="4565"/>

+      <details key="end" value="4583"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.136" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/prop/%/%/%">

+      <details key="start" value="4585"/>

+      <details key="end" value="4595"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.137" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.1/prop/%/%.1">

+      <details key="start" value="4607"/>

+      <details key="end" value="4615"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.138" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/%.2">

+      <details key="start" value="4744"/>

+      <details key="end" value="4801"/>

+      <details key="line" value="82"/>

+    </eAnnotations>

+    <eAnnotations source="positions.139" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/stuckAtFixedStereo">

+      <details key="start" value="4362"/>

+      <details key="end" value="4439"/>

+      <details key="line" value="76"/>

+    </eAnnotations>

+    <eAnnotations source="positions.140" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/stuckAtFixedStereo/%">

+      <details key="start" value="4397"/>

+      <details key="end" value="4440"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.141" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/stuckAtFixedStereo/%/errorState">

+      <details key="start" value="4397"/>

+      <details key="end" value="4407"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.142" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%/stuckAtFixedStereo/%/InvertedQN">

+      <details key="start" value="4429"/>

+      <details key="end" value="4439"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.143" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%.1">

+      <details key="start" value="4289"/>

+      <details key="end" value="4350"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.144" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.145" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%.1/%/%/%">

+      <details key="start" value="4290"/>

+      <details key="end" value="4337"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.146" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%.1/%/%/%/errorState">

+      <details key="start" value="4290"/>

+      <details key="end" value="4300"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.147" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.3/%.1/%/%/%/StuckAtFixedQN">

+      <details key="start" value="4322"/>

+      <details key="end" value="4336"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.148" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4">

+      <details key="start" value="4818"/>

+      <details key="end" value="5526"/>

+      <details key="line" value="85"/>

+    </eAnnotations>

+    <eAnnotations source="positions.149" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%">

+      <details key="start" value="4890"/>

+      <details key="end" value="5520"/>

+      <details key="line" value="86"/>

+    </eAnnotations>

+    <eAnnotations source="positions.150" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%">

+      <details key="start" value="4970"/>

+      <details key="end" value="5073"/>

+      <details key="line" value="87"/>

+    </eAnnotations>

+    <eAnnotations source="positions.151" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.1">

+      <details key="start" value="5074"/>

+      <details key="end" value="5117"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.152" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.1/errorState">

+      <details key="start" value="5074"/>

+      <details key="end" value="5084"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.153" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.1/rampDownStereo">

+      <details key="start" value="5094"/>

+      <details key="end" value="5108"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.154" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.1/%">

+      <details key="start" value="5110"/>

+      <details key="end" value="5116"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.155" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.2">

+      <details key="start" value="5119"/>

+      <details key="end" value="5173"/>

+      <details key="line" value="89"/>

+    </eAnnotations>

+    <eAnnotations source="positions.156" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.3">

+      <details key="start" value="5174"/>

+      <details key="end" value="5221"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.157" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.3/errorState">

+      <details key="start" value="5174"/>

+      <details key="end" value="5184"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.158" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.3/rampDownStereo">

+      <details key="start" value="5194"/>

+      <details key="end" value="5208"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.159" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.3/%">

+      <details key="start" value="5210"/>

+      <details key="end" value="5220"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.160" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.4">

+      <details key="start" value="5223"/>

+      <details key="end" value="5227"/>

+      <details key="line" value="90"/>

+    </eAnnotations>

+    <eAnnotations source="positions.161" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5">

+      <details key="start" value="5233"/>

+      <details key="end" value="5451"/>

+      <details key="line" value="91"/>

+    </eAnnotations>

+    <eAnnotations source="positions.162" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/%">

+      <details key="start" value="5330"/>

+      <details key="end" value="5393"/>

+      <details key="line" value="91"/>

+    </eAnnotations>

+    <eAnnotations source="positions.163" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/%.1">

+      <details key="start" value="5394"/>

+      <details key="end" value="5403"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.164" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/%.1/prop">

+      <details key="start" value="5394"/>

+      <details key="end" value="5398"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.165" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/%.2">

+      <details key="start" value="5405"/>

+      <details key="end" value="5413"/>

+      <details key="line" value="92"/>

+    </eAnnotations>

+    <eAnnotations source="positions.166" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/%.3">

+      <details key="start" value="5414"/>

+      <details key="end" value="5432"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.167" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/%.3/%">

+      <details key="start" value="5422"/>

+      <details key="end" value="5431"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.168" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/%.3/%/prop">

+      <details key="start" value="5422"/>

+      <details key="end" value="5426"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.169" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/%.4">

+      <details key="start" value="5434"/>

+      <details key="end" value="5438"/>

+      <details key="line" value="92"/>

+    </eAnnotations>

+    <eAnnotations source="positions.170" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/prop">

+      <details key="start" value="5238"/>

+      <details key="end" value="5323"/>

+      <details key="line" value="91"/>

+    </eAnnotations>

+    <eAnnotations source="positions.171" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/prop/%">

+      <details key="start" value="5257"/>

+      <details key="end" value="5324"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.172" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/prop/%/%">

+      <details key="start" value="5257"/>

+      <details key="end" value="5304"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.173" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/prop/%/%/errorState">

+      <details key="start" value="5257"/>

+      <details key="end" value="5267"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.174" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/prop/%/%/rampDownStereo">

+      <details key="start" value="5277"/>

+      <details key="end" value="5291"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.175" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/prop/%/%/%">

+      <details key="start" value="5293"/>

+      <details key="end" value="5303"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.176" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.5/prop/%/%.1">

+      <details key="start" value="5315"/>

+      <details key="end" value="5323"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.177" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/%.6">

+      <details key="start" value="5452"/>

+      <details key="end" value="5509"/>

+      <details key="line" value="94"/>

+    </eAnnotations>

+    <eAnnotations source="positions.178" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/rampDownStereo">

+      <details key="start" value="4895"/>

+      <details key="end" value="4968"/>

+      <details key="line" value="86"/>

+    </eAnnotations>

+    <eAnnotations source="positions.179" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/rampDownStereo/%">

+      <details key="start" value="4926"/>

+      <details key="end" value="4969"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.180" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/rampDownStereo/%/errorState">

+      <details key="start" value="4926"/>

+      <details key="end" value="4936"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.181" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%/rampDownStereo/%/InvertedQN">

+      <details key="start" value="4958"/>

+      <details key="end" value="4968"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.182" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%.1">

+      <details key="start" value="4826"/>

+      <details key="end" value="4883"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.183" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.184" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%.1/%/%/%">

+      <details key="start" value="4827"/>

+      <details key="end" value="4870"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.185" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%.1/%/%/%/errorState">

+      <details key="start" value="4827"/>

+      <details key="end" value="4837"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.186" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.5/%.4/%.1/%/%/%/RampDownQN">

+      <details key="start" value="4859"/>

+      <details key="end" value="4869"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.187" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6">

+      <details key="start" value="5537"/>

+      <details key="end" value="5975"/>

+      <details key="line" value="98"/>

+    </eAnnotations>

+    <eAnnotations source="positions.188" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/%">

+      <details key="start" value="5742"/>

+      <details key="end" value="5964"/>

+      <details key="line" value="99"/>

+    </eAnnotations>

+    <eAnnotations source="positions.189" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr">

+      <details key="start" value="5542"/>

+      <details key="end" value="5739"/>

+      <details key="line" value="98"/>

+    </eAnnotations>

+    <eAnnotations source="positions.190" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any">

+      <details key="start" value="5561"/>

+      <details key="end" value="5740"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.191" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%">

+      <details key="start" value="5561"/>

+      <details key="end" value="5580"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.192" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%/errorState">

+      <details key="start" value="5561"/>

+      <details key="end" value="5571"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.193" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1">

+      <details key="start" value="5607"/>

+      <details key="end" value="5739"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.194" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%">

+      <details key="start" value="5607"/>

+      <details key="end" value="5662"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.195" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.196" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%/%/%/%">

+      <details key="start" value="5607"/>

+      <details key="end" value="5650"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.197" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%/%/%/%/fault">

+      <details key="start" value="5607"/>

+      <details key="end" value="5612"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.198" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%/%/%/%/InternalFaultQN">

+      <details key="start" value="5634"/>

+      <details key="end" value="5649"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.199" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%.1">

+      <details key="start" value="5684"/>

+      <details key="end" value="5739"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.200" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.201" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%.1/%/%/%">

+      <details key="start" value="5684"/>

+      <details key="end" value="5727"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.202" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%.1/%/%/%/fault">

+      <details key="start" value="5684"/>

+      <details key="end" value="5689"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.203" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/%.1/%.1/%/%/%/ExternalFaultQN">

+      <details key="start" value="5711"/>

+      <details key="end" value="5726"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.204" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/%.6/tr/any/fault">

+      <details key="start" value="5586"/>

+      <details key="end" value="5604"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.205" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/errorStereo">

+      <details key="start" value="2810"/>

+      <details key="end" value="2877"/>

+      <details key="line" value="48"/>

+    </eAnnotations>

+    <eAnnotations source="positions.206" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/errorStereo/%">

+      <details key="start" value="2838"/>

+      <details key="end" value="2878"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.207" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/errorStereo/%/errorState">

+      <details key="start" value="2838"/>

+      <details key="end" value="2848"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.208" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%/errorStereo/%/ErrorQN">

+      <details key="start" value="2870"/>

+      <details key="end" value="2877"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.209" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/%.1">

+      <details key="start" value="5988"/>

+      <details key="end" value="6014"/>

+      <details key="line" value="107"/>

+    </eAnnotations>

+    <eAnnotations source="positions.210" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/errorState">

+      <details key="start" value="2663"/>

+      <details key="end" value="2681"/>

+      <details key="line" value="47"/>

+    </eAnnotations>

+    <eAnnotations source="positions.211" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select">

+      <details key="start" value="2684"/>

+      <details key="end" value="2799"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.212" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%">

+      <details key="start" value="2684"/>

+      <details key="end" value="2726"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.213" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%/collect">

+      <details key="start" value="2684"/>

+      <details key="end" value="2711"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.214" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%/collect/%">

+      <details key="start" value="2684"/>

+      <details key="end" value="2701"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.215" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%/collect/%/errorModel">

+      <details key="start" value="2684"/>

+      <details key="end" value="2694"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.216" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%/collect/%.1">

+      <details key="start" value="2702"/>

+      <details key="end" value="2711"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.217" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%/collect/%.1/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.218" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%/collect/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.219" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%/%">

+      <details key="start" value="2720"/>

+      <details key="end" value="2725"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.220" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%.1">

+      <details key="start" value="2751"/>

+      <details key="end" value="2798"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.221" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.222" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%.1/%/%/%">

+      <details key="start" value="2751"/>

+      <details key="end" value="2786"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.223" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%.1/%/%/%/error">

+      <details key="start" value="2751"/>

+      <details key="end" value="2756"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.224" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/%.1/%/%/%/ErrorQN">

+      <details key="start" value="2778"/>

+      <details key="end" value="2785"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.225" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.3/select/error">

+      <details key="start" value="2735"/>

+      <details key="end" value="2748"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.226" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/%.4">

+      <details key="start" value="6031"/>

+      <details key="end" value="6079"/>

+      <details key="line" value="109"/>

+    </eAnnotations>

+    <eAnnotations source="positions.227" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/errorModel">

+      <details key="start" value="2427"/>

+      <details key="end" value="2452"/>

+      <details key="line" value="44"/>

+    </eAnnotations>

+    <eAnnotations source="positions.228" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select">

+      <details key="start" value="2455"/>

+      <details key="end" value="2572"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.229" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/%">

+      <details key="start" value="2455"/>

+      <details key="end" value="2493"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.230" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/%/%">

+      <details key="start" value="2455"/>

+      <details key="end" value="2471"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.231" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/%/%/cl">

+      <details key="start" value="2455"/>

+      <details key="end" value="2457"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.232" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/%/%.1">

+      <details key="start" value="2480"/>

+      <details key="end" value="2492"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.233" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/%.1">

+      <details key="start" value="2522"/>

+      <details key="end" value="2571"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.234" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.235" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/%.1/%/%/%">

+      <details key="start" value="2522"/>

+      <details key="end" value="2559"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.236" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/%.1/%/%/%/sm">

+      <details key="start" value="2522"/>

+      <details key="end" value="2524"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.237" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/%.1/%/%/%/ErrorModelQN">

+      <details key="start" value="2546"/>

+      <details key="end" value="2558"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.238" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.3/select/sm">

+      <details key="start" value="2502"/>

+      <details key="end" value="2519"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.239" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/%.4">

+      <details key="start" value="6092"/>

+      <details key="end" value="6150"/>

+      <details key="line" value="112"/>

+    </eAnnotations>

+    <eAnnotations source="positions.240" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/cl">

+      <details key="start" value="2309"/>

+      <details key="end" value="2319"/>

+      <details key="line" value="41"/>

+    </eAnnotations>

+    <eAnnotations source="positions.241" references="/0/generateFaultExtensions/%/%/%.5/%/%/%/nominalComponents">

+      <details key="start" value="2322"/>

+      <details key="end" value="2339"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.242" references="/0/generateFaultExtensions/%/%/%.5/%/%/%.1">

+      <details key="start" value="6159"/>

+      <details key="end" value="6199"/>

+      <details key="line" value="115"/>

+    </eAnnotations>

+    <eAnnotations source="positions.243" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents">

+      <details key="start" value="2086"/>

+      <details key="end" value="2299"/>

+      <details key="line" value="39"/>

+    </eAnnotations>

+    <eAnnotations source="positions.244" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select">

+      <details key="start" value="2120"/>

+      <details key="end" value="2300"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.245" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/%">

+      <details key="start" value="2120"/>

+      <details key="end" value="2159"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.246" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/%/%">

+      <details key="start" value="2120"/>

+      <details key="end" value="2144"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.247" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/%/%/model">

+      <details key="start" value="2120"/>

+      <details key="end" value="2125"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.248" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/%/%.1">

+      <details key="start" value="2153"/>

+      <details key="end" value="2158"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.249" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists">

+      <details key="start" value="2181"/>

+      <details key="end" value="2299"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.250" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/%">

+      <details key="start" value="2181"/>

+      <details key="end" value="2219"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.251" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/%/%">

+      <details key="start" value="2181"/>

+      <details key="end" value="2197"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.252" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/%/%/cl">

+      <details key="start" value="2181"/>

+      <details key="end" value="2183"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.253" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/%/%.1">

+      <details key="start" value="2206"/>

+      <details key="end" value="2218"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.254" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/%.1">

+      <details key="start" value="2249"/>

+      <details key="end" value="2298"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.255" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.256" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/%.1/%/%/%">

+      <details key="start" value="2249"/>

+      <details key="end" value="2286"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.257" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/%.1/%/%/%/sm">

+      <details key="start" value="2249"/>

+      <details key="end" value="2251"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.258" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/%.1/%/%/%/ErrorModelQN">

+      <details key="start" value="2273"/>

+      <details key="end" value="2285"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.259" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/exists/sm">

+      <details key="start" value="2229"/>

+      <details key="end" value="2246"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.260" references="/0/generateFaultExtensions/%/%/%.5/%/%/nominalComponents/select/cl">

+      <details key="start" value="2168"/>

+      <details key="end" value="2178"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.261" references="/0/generateFaultExtensions/%/%/%.5/%/systemClasses">

+      <details key="start" value="1979"/>

+      <details key="end" value="2079"/>

+      <details key="line" value="38"/>

+    </eAnnotations>

+    <eAnnotations source="positions.262" references="/0/generateFaultExtensions/%/%/%.5/%/systemClasses/%">

+      <details key="start" value="2009"/>

+      <details key="end" value="2080"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.263" references="/0/generateFaultExtensions/%/%/%.5/%/systemClasses/%/collect">

+      <details key="start" value="2009"/>

+      <details key="end" value="2071"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.264" references="/0/generateFaultExtensions/%/%/%.5/%/systemClasses/%/collect/systemProps">

+      <details key="start" value="2009"/>

+      <details key="end" value="2020"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.265" references="/0/generateFaultExtensions/%/%/%.5/%/systemClasses/%/collect/%">

+      <details key="start" value="2046"/>

+      <details key="end" value="2070"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.266" references="/0/generateFaultExtensions/%/%/%.5/%/systemClasses/%/collect/%/%">

+      <details key="start" value="2046"/>

+      <details key="end" value="2053"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.267" references="/0/generateFaultExtensions/%/%/%.5/%/systemClasses/%/collect/%/%/pr">

+      <details key="start" value="2046"/>

+      <details key="end" value="2048"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.268" references="/0/generateFaultExtensions/%/%/%.5/%/systemClasses/%/collect/%/%.1">

+      <details key="start" value="2064"/>

+      <details key="end" value="2069"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.269" references="/0/generateFaultExtensions/%/%/%.5/%/systemClasses/%/collect/pr">

+      <details key="start" value="2030"/>

+      <details key="end" value="2043"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.270" references="/0/generateFaultExtensions/%/%/%.5/systemProps">

+      <details key="start" value="1842"/>

+      <details key="end" value="1971"/>

+      <details key="line" value="37"/>

+    </eAnnotations>

+    <eAnnotations source="positions.271" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select">

+      <details key="start" value="1873"/>

+      <details key="end" value="1972"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.272" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select/%">

+      <details key="start" value="1873"/>

+      <details key="end" value="1916"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.273" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select/%/%">

+      <details key="start" value="1873"/>

+      <details key="end" value="1898"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.274" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select/%/%/system">

+      <details key="start" value="1873"/>

+      <details key="end" value="1879"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.275" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select/%/%.1">

+      <details key="start" value="1907"/>

+      <details key="end" value="1915"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.276" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select/%.1">

+      <details key="start" value="1943"/>

+      <details key="end" value="1971"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.277" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select/%.1/%">

+      <details key="start" value="1943"/>

+      <details key="end" value="1952"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.278" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select/%.1/%/prop">

+      <details key="start" value="1943"/>

+      <details key="end" value="1947"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.279" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select/%.1/%.1">

+      <details key="start" value="1965"/>

+      <details key="end" value="1970"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.280" references="/0/generateFaultExtensions/%/%/%.5/systemProps/select/prop">

+      <details key="start" value="1925"/>

+      <details key="end" value="1940"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.281" references="/0/generateFaultExtensions/%/%/system">

+      <details key="start" value="1641"/>

+      <details key="end" value="1681"/>

+      <details key="line" value="34"/>

+    </eAnnotations>

+    <eAnnotations source="positions.282" references="/0/generateFaultExtensions/%/%/system/%">

+      <details key="start" value="1659"/>

+      <details key="end" value="1682"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.283" references="/0/generateFaultExtensions/%/%/system/%/model">

+      <details key="start" value="1669"/>

+      <details key="end" value="1674"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.284" references="/0/generateFaultExtensions/%/%/system/%/sysQN">

+      <details key="start" value="1676"/>

+      <details key="end" value="1681"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.285" references="/0/generateFaultExtensions/%/%.1">

+      <details key="start" value="1564"/>

+      <details key="end" value="1617"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.286" references="/0/generateFaultExtensions/%/%.1/%">

+      <details key="start" value="1564"/>

+      <details key="end" value="1602"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.287" references="/0/generateFaultExtensions/%/%.1/%/%">

+      <details key="start" value="1564"/>

+      <details key="end" value="1586"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.288" references="/0/generateFaultExtensions/%/%.1/%/%/%">

+      <details key="start" value="1564"/>

+      <details key="end" value="1574"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.289" references="/0/generateFaultExtensions/%/%.1/%/%/%/model">

+      <details key="start" value="1564"/>

+      <details key="end" value="1569"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.290" references="/0/generateFaultExtensions/%/%.1/%/%/%.1">

+      <details key="start" value="1582"/>

+      <details key="end" value="1585"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.291" references="/0/generateFaultExtensions/%/%.1/%/sysName">

+      <details key="start" value="1594"/>

+      <details key="end" value="1601"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.292" references="/0/generateFaultExtensions/%/%.1/%.1">

+      <details key="start" value="1610"/>

+      <details key="end" value="1616"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.293" references="/0/generateFaultExtensions/%/%.2">

+      <details key="start" value="1626"/>

+      <details key="end" value="1633"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.294" references="/0/generateFaultExtensions/model">

+      <details key="start" value="816"/>

+      <details key="end" value="829"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.295" references="/0/generateFaultExtensions/sysQN">

+      <details key="start" value="831"/>

+      <details key="end" value="845"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.296" references="/0/generateFaultExtensions/sysName">

+      <details key="start" value="848"/>

+      <details key="end" value="864"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.297" references="/0/generateFaultExtensions/filename">

+      <details key="start" value="866"/>

+      <details key="end" value="883"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.298" references="/0/getSystem">

+      <details key="start" value="6249"/>

+      <details key="end" value="6511"/>

+      <details key="line" value="125"/>

+    </eAnnotations>

+    <eAnnotations source="positions.299" references="/0/getSystem/model">

+      <details key="start" value="6273"/>

+      <details key="end" value="6286"/>

+      <details key="line" value="125"/>

+    </eAnnotations>

+    <eAnnotations source="positions.300" references="/0/getSystem/sysQN">

+      <details key="start" value="6288"/>

+      <details key="end" value="6302"/>

+      <details key="line" value="125"/>

+    </eAnnotations>

+    <eAnnotations source="positions.301" references="/0/getSystem/%">

+      <details key="start" value="6314"/>

+      <details key="end" value="6509"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.302" references="/0/getSystem/%/%">

+      <details key="start" value="6314"/>

+      <details key="end" value="6492"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.303" references="/0/getSystem/%/%/%">

+      <details key="start" value="6314"/>

+      <details key="end" value="6483"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.304" references="/0/getSystem/%/%/%/select">

+      <details key="start" value="6314"/>

+      <details key="end" value="6469"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.305" references="/0/getSystem/%/%/%/select/%">

+      <details key="start" value="6314"/>

+      <details key="end" value="6359"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.306" references="/0/getSystem/%/%/%/select/%/%">

+      <details key="start" value="6314"/>

+      <details key="end" value="6337"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.307" references="/0/getSystem/%/%/%/select/%/%/self">

+      <details key="start" value="6314"/>

+      <details key="end" value="6318"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.308" references="/0/getSystem/%/%/%/select/%/%.1">

+      <details key="start" value="6346"/>

+      <details key="end" value="6358"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.309" references="/0/getSystem/%/%/%/select/%.1">

+      <details key="start" value="6391"/>

+      <details key="end" value="6468"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.310" references="/0/getSystem/%/%/%/select/%.1/%">

+      <details key="start" value="6391"/>

+      <details key="end" value="6421"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.311" references="/0/getSystem/%/%/%/select/%.1/%/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.312" references="/0/getSystem/%/%/%/select/%.1/%/%/%/%">

+      <details key="start" value="6391"/>

+      <details key="end" value="6409"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.313" references="/0/getSystem/%/%/%/select/%.1/%/%/%/%/elem">

+      <details key="start" value="6391"/>

+      <details key="end" value="6395"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.314" references="/0/getSystem/%/%/%/select/%.1/%.1">

+      <details key="start" value="6426"/>

+      <details key="end" value="6468"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.315" references="/0/getSystem/%/%/%/select/%.1/%.1/%">

+      <details key="start" value="6426"/>

+      <details key="end" value="6444"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.316" references="/0/getSystem/%/%/%/select/%.1/%.1/%/elem">

+      <details key="start" value="6426"/>

+      <details key="end" value="6430"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.317" references="/0/getSystem/%/%/%/select/%.1/%.1/sysQN">

+      <details key="start" value="6462"/>

+      <details key="end" value="6467"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.318" references="/0/getSystem/%/%/%/select/elem">

+      <details key="start" value="6369"/>

+      <details key="end" value="6388"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.319" references="/0/getSystem/%/%.1">

+      <details key="start" value="6503"/>

+      <details key="end" value="6508"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.320" references="/0/getType">

+      <details key="start" value="6513"/>

+      <details key="end" value="6685"/>

+      <details key="line" value="128"/>

+    </eAnnotations>

+    <eAnnotations source="positions.321" references="/0/getType/type">

+      <details key="start" value="6535"/>

+      <details key="end" value="6546"/>

+      <details key="line" value="128"/>

+    </eAnnotations>

+    <eAnnotations source="positions.322" references="/0/getType/%">

+      <details key="start" value="6559"/>

+      <details key="end" value="6683"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.323" references="/0/getType/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.324" references="/0/getType/%/%">

+      <details key="start" value="6566"/>

+      <details key="end" value="6628"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.325" references="/0/getType/%/%.1">

+      <details key="start" value="6630"/>

+      <details key="end" value="6666"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.326" references="/0/getType/%/%.2">

+      <details key="start" value="6668"/>

+      <details key="end" value="6682"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.327" references="/0/getType/%/%.2/%/type">

+      <details key="start" value="6677"/>

+      <details key="end" value="6681"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.328" references="/0/getTypeNameForProperty">

+      <details key="start" value="6687"/>

+      <details key="end" value="6897"/>

+      <details key="line" value="131"/>

+    </eAnnotations>

+    <eAnnotations source="positions.329" references="/0/getTypeNameForProperty/prop">

+      <details key="start" value="6724"/>

+      <details key="end" value="6739"/>

+      <details key="line" value="131"/>

+    </eAnnotations>

+    <eAnnotations source="positions.330" references="/0/getTypeNameForProperty/%">

+      <details key="start" value="6752"/>

+      <details key="end" value="6894"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.331" references="/0/getTypeNameForProperty/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.332" references="/0/getTypeNameForProperty/%/%">

+      <details key="start" value="6759"/>

+      <details key="end" value="6821"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.333" references="/0/getTypeNameForProperty/%/%.1">

+      <details key="start" value="6822"/>

+      <details key="end" value="6877"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.334" references="/0/getTypeNameForProperty/%/%.2">

+      <details key="start" value="6879"/>

+      <details key="end" value="6893"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.335" references="/0/getTypeNameForProperty/%/%.2/%/prop">

+      <details key="start" value="6888"/>

+      <details key="end" value="6892"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+  </ecore:EAnnotation>

+</xmi:XMI>

diff --git a/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generateImplementation.emtl b/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generateImplementation.emtl
new file mode 100644
index 0000000..a283061
--- /dev/null
+++ b/plugins/contracts/org.polarsys.chess.contracts.transformations/src/org/polarsys/chess/contracts/transformations/main/generateImplementation.emtl
@@ -0,0 +1,1452 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:mtl="http://www.eclipse.org/acceleo/mtl/3.0" xmlns:ocl.ecore="http://www.eclipse.org/ocl/1.1.0/Ecore">

+  <mtl:Module name="generateImplementation" nsURI="org::polarsys::chess::contracts::transformations::main::generateImplementation" startHeaderPosition="699" endHeaderPosition="1158">

+    <input>

+      <takesTypesFrom href="http://www.eclipse.org/uml2/5.0.0/UML#/"/>

+    </input>

+    <ownedModuleElement xsi:type="mtl:Template" name="generateImplementation" visibility="Public">

+      <init>

+        <variable name="ContractPropQN">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <initExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="CHESSContract::ContractProperty">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </initExpression>

+        </variable>

+      </init>

+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>

+      <body xsi:type="mtl:FileBlock" openMode="OverWrite">

+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;MODULE main&#xA;&#xA;"/>

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;VAR&#xA;&#x9;states&#x9;:  {&#xA;"/>

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;&#x9;&#x9;"/>

+            <body xsi:type="ocl.ecore:PropertyCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <source xsi:type="ocl.ecore:VariableExp" name="vertex" referredVariable="/0/generateImplementation/%.1/%.1/%.1/vertex">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+              </source>

+              <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+            </body>

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=","/>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="i" referredVariable="/17">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="states" eType="/10/Sequence(State)" referredVariable="/0/generateImplementation/%.1/%.1/states"/>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/size"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/%3C"/>

+              </ifExpr>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>

+            <loopVariable name="vertex">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="states" eType="/10/Sequence(State)" referredVariable="/0/generateImplementation/%.1/%.1/states"/>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;&#x9;&#x9;};&#xA;"/>

+          <letVariable name="states" eType="/10/Sequence(State)">

+            <initExpression xsi:type="ocl.ecore:OperationCallExp" eType="/10/Sequence(State)">

+              <source xsi:type="ocl.ecore:OperationCallExp" eType="/10/Bag(State)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">

+                <source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/10/Bag(Vertex)">

+                  <source xsi:type="ocl.ecore:PropertyCallExp" eType="/10/Set(Region)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/generateImplementation/sm">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine/region"/>

+                  </source>

+                  <body xsi:type="ocl.ecore:PropertyCallExp" eType="/10/Set(Vertex)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/generateImplementation/%.1/%.1/states/%/%/collect/temp1">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region/subvertex"/>

+                  </body>

+                  <iterator xsi:type="ocl.ecore:Variable" name="temp1">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                  </iterator>

+                </source>

+                <argument xsi:type="ocl.ecore:TypeExp" eType="/7/State">

+                  <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+                </argument>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Bag(T)_Class/asSequence"/>

+            </initExpression>

+          </letVariable>

+        </body>

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;"/>

+              <body xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateImplementation/%.1/%.2/%/prop">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </source>

+                <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : "/>

+              <body xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <argument xsi:type="ocl.ecore:PropertyCallExp">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateImplementation/%.1/%.2/%/prop">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                  </source>

+                  <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                </argument>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;"/>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                    <argument xsi:type="ocl.ecore:PropertyCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateImplementation/%.1/%.2/%/prop">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                    </argument>

+                  </source>

+                  <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="event">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+              </ifExpr>

+            </body>

+            <loopVariable name="prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="vars" eType="/10/OrderedSet(Property)" referredVariable="/0/generateImplementation/%.1/%.2/vars"/>

+          </body>

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;IVAR&#xA;"/>

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;"/>

+              <body xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateImplementation/%.1/%.2/%.2/prop">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                </source>

+                <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+              </body>

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : boolean;&#xA;"/>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="mtl:QueryInvocation" definition="/0/getType">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                  <argument xsi:type="ocl.ecore:PropertyCallExp">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+                    <source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/generateImplementation/%.1/%.2/%.2/prop">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TypedElement/type"/>

+                  </argument>

+                </source>

+                <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="event">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>

+              </ifExpr>

+            </body>

+            <loopVariable name="prop">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="vars" eType="/10/OrderedSet(Property)" referredVariable="/0/generateImplementation/%.1/%.2/vars"/>

+          </body>

+          <letVariable name="vars" eType="/10/OrderedSet(Property)">

+            <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/10/OrderedSet(Property)">

+              <source xsi:type="ocl.ecore:PropertyCallExp" eType="/10/OrderedSet(Property)">

+                <source xsi:type="ocl.ecore:VariableExp" name="owner" referredVariable="/0/generateImplementation/owner">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier/attribute"/>

+              </source>

+              <body xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/10/Set(Stereotype)">

+                  <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">

+                    <details key="IMPLICIT_SET_CONVERSION" value="true"/>

+                  </eAnnotations>

+                  <part xsi:type="ocl.ecore:CollectionItem">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                    <item xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+                      <source xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/generateImplementation/%.1/%.2/vars/select/p">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:VariableExp" name="ContractPropQN" referredVariable="/0/generateImplementation/@init/@variable.0">

+                        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getAppliedStereotype"/>

+                    </item>

+                  </part>

+                </source>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>

+              </body>

+              <iterator xsi:type="ocl.ecore:Variable" name="p">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+              </iterator>

+            </initExpression>

+          </letVariable>

+        </body>

+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#xA;&#x9;INIT&#xA;&#x9;states = "/>

+        <body xsi:type="mtl:QueryInvocation" definition="/0/getInitCondition">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <argument xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/generateImplementation/sm">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+          </argument>

+        </body>

+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>

+        <body xsi:type="mtl:LetBlock">

+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;TRANS&#xA;"/>

+          <body xsi:type="mtl:ForBlock">

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;(states = "/>

+            <body xsi:type="ocl.ecore:PropertyCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <source xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateImplementation/%.1/%.6/%.1/tr">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition/source"/>

+              </source>

+              <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" &amp; next(states) = "/>

+            <body xsi:type="ocl.ecore:PropertyCallExp">

+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+              <source xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateImplementation/%.1/%.6/%.1/tr">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition/target"/>

+              </source>

+              <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;&#xA;&#x9;) "/>

+            <body xsi:type="mtl:IfBlock">

+              <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="|"/>

+              <ifExpr xsi:type="ocl.ecore:OperationCallExp">

+                <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="i" referredVariable="/40">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                </source>

+                <argument xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+                  <source xsi:type="ocl.ecore:VariableExp" name="transitions" eType="/10/Sequence(Transition)" referredVariable="/0/generateImplementation/%.1/%.6/transitions"/>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/size"/>

+                </argument>

+                <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/%3C"/>

+              </ifExpr>

+            </body>

+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>

+            <loopVariable name="tr">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+            </loopVariable>

+            <iterSet xsi:type="ocl.ecore:VariableExp" name="transitions" eType="/10/Sequence(Transition)" referredVariable="/0/generateImplementation/%.1/%.6/transitions"/>

+          </body>

+          <letVariable name="transitions" eType="/10/Sequence(Transition)">

+            <initExpression xsi:type="ocl.ecore:OperationCallExp" eType="/10/Sequence(Transition)">

+              <source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/10/Bag(Transition)">

+                <source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/10/Bag(Transition)">

+                  <source xsi:type="ocl.ecore:PropertyCallExp" eType="/10/Set(Region)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/generateImplementation/sm">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine/region"/>

+                  </source>

+                  <body xsi:type="ocl.ecore:PropertyCallExp" eType="/10/Set(Transition)">

+                    <source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/generateImplementation/%.1/%.6/transitions/%/select/collect/temp2">

+                      <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                    </source>

+                    <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region/transition"/>

+                  </body>

+                  <iterator xsi:type="ocl.ecore:Variable" name="temp2">

+                    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+                  </iterator>

+                </source>

+                <body xsi:type="ocl.ecore:OperationCallExp">

+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                  <source xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateImplementation/%.1/%.6/transitions/%/select/tr">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition/source"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/7/Pseudostate">

+                        <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Pseudostate"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                  </source>

+                  <argument xsi:type="ocl.ecore:OperationCallExp">

+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                    <source xsi:type="ocl.ecore:OperationCallExp">

+                      <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>

+                      <source xsi:type="ocl.ecore:PropertyCallExp">

+                        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+                        <source xsi:type="ocl.ecore:VariableExp" name="tr" referredVariable="/0/generateImplementation/%.1/%.6/transitions/%/select/tr">

+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                        </source>

+                        <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition/target"/>

+                      </source>

+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/7/Pseudostate">

+                        <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Pseudostate"/>

+                      </argument>

+                      <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsTypeOf"/>

+                    </source>

+                    <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>

+                  </argument>

+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>

+                </body>

+                <iterator xsi:type="ocl.ecore:Variable" name="tr">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+                </iterator>

+              </source>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Bag(T)_Class/asSequence"/>

+            </initExpression>

+          </letVariable>

+        </body>

+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>

+        <fileUrl xsi:type="ocl.ecore:OperationCallExp">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          <source xsi:type="ocl.ecore:PropertyCallExp">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+            <source xsi:type="ocl.ecore:OperationCallExp">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+              <source xsi:type="ocl.ecore:PropertyCallExp">

+                <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>

+                <source xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/generateImplementation/sm">

+                  <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+                </source>

+                <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>

+              </source>

+              <argument xsi:type="ocl.ecore:TypeExp" eType="/7/NamedElement">

+                <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+              </argument>

+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>

+            </source>

+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>

+          </source>

+          <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".smv">

+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+          </argument>

+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>

+        </fileUrl>

+        <charset xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="UTF-8">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </charset>

+      </body>

+      <parameter name="sm">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+      </parameter>

+      <parameter name="owner">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+      </parameter>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getType" visibility="Public">

+      <parameter name="type">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/43">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getType(org.eclipse.uml2.uml.Type)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/10/Sequence(Type)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/getType/type">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+    <ownedModuleElement xsi:type="mtl:Query" name="getInitCondition" visibility="Public">

+      <parameter name="sm">

+        <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+      </parameter>

+      <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/invoke">

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/46">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+        </source>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.polarsys.chess.contracts.transformations.service.Service">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getInitCondition(org.eclipse.uml2.uml.StateMachine)">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </argument>

+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/10/Sequence(StateMachine)" kind="Sequence">

+          <part xsi:type="ocl.ecore:CollectionItem">

+            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+            <item xsi:type="ocl.ecore:VariableExp" name="sm" referredVariable="/0/getInitCondition/sm">

+              <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+            </item>

+          </part>

+        </argument>

+      </expression>

+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+    </ownedModuleElement>

+  </mtl:Module>

+  <ecore:EPackage name="additions">

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_String_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Integer_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Real_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ecore_EObject_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+      </eAnnotations>

+      <eOperations name="generateImplementation">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/generateImplementation"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="sm">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+        </eParameters>

+        <eParameters name="owner">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getType">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getType"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="type">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+        </eParameters>

+      </eOperations>

+      <eOperations name="getInitCondition">

+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+          <contents xsi:type="ocl.ecore:Constraint"/>

+        </eAnnotations>

+        <eAnnotations source="MTL" references="/0/getInitCondition"/>

+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        <eParameters name="sm">

+          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OclAny_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+      </eAnnotations>

+      <eOperations name="invoke">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+        <eParameters name="class">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="method">

+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+        </eParameters>

+        <eParameters name="arguments">

+          <eType xsi:type="ocl.ecore:SequenceType" href="http://www.eclipse.org/acceleo/mtl/3.0/mtlnonstdlib.ecore#//Sequence(OclAny)"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Collection(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>

+      </eAnnotations>

+      <eOperations name="filter">

+        <eAnnotations source="MTL non-standard"/>

+        <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>

+        <eParameters name="filter">

+          <eType xsi:type="ocl.ecore:TypeType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclType"/>

+        </eParameters>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Sequence(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OrderedSet(T)_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_StateMachine_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="uml_Type_Class">

+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">

+        <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+      </eAnnotations>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ecore:EPackage name="types">

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="NamedElement">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="State">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:TypeType" name="Pseudostate">

+      <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Pseudostate"/>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ecore:EPackage name="collections">

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Region)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Region"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Vertex)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(Vertex)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(State)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(State)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//State"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Property)" instanceClassName="java.util.LinkedHashSet">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Stereotype)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Stereotype"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Transition)" instanceClassName="java.util.Set">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(Transition)" instanceClassName="org.eclipse.ocl.util.Bag">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Transition)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Type)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(OclAny)" instanceClassName="java.util.List">

+      <elementType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(StateMachine)" instanceClassName="java.util.List">

+      <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+    </eClassifiers>

+  </ecore:EPackage>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Vertex"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Transition"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="i">

+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>

+  </ocl.ecore:Variable>

+  <ocl.ecore:Variable name="self">

+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>

+  </ocl.ecore:Variable>

+  <ecore:EAnnotation source="positions">

+    <eAnnotations source="positions.0" references="/0/generateImplementation">

+      <details key="start" value="774"/>

+      <details key="end" value="2015"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.1" references="/0/generateImplementation/@init">

+      <details key="start" value="847"/>

+      <details key="end" value="912"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.2" references="/0/generateImplementation/@init/@variable.0">

+      <details key="start" value="850"/>

+      <details key="end" value="909"/>

+      <details key="line" value="23"/>

+    </eAnnotations>

+    <eAnnotations source="positions.3" references="/0/generateImplementation/@init/@variable.0/%">

+      <details key="start" value="876"/>

+      <details key="end" value="909"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.4" references="/0/generateImplementation/%">

+      <details key="start" value="914"/>

+      <details key="end" value="916"/>

+      <details key="line" value="25"/>

+    </eAnnotations>

+    <eAnnotations source="positions.5" references="/0/generateImplementation/%.1">

+      <details key="start" value="916"/>

+      <details key="end" value="2003"/>

+      <details key="line" value="27"/>

+    </eAnnotations>

+    <eAnnotations source="positions.6" references="/0/generateImplementation/%.1/%">

+      <details key="start" value="994"/>

+      <details key="end" value="1008"/>

+      <details key="line" value="28"/>

+    </eAnnotations>

+    <eAnnotations source="positions.7" references="/0/generateImplementation/%.1/%.1">

+      <details key="start" value="1008"/>

+      <details key="end" value="1212"/>

+      <details key="line" value="30"/>

+    </eAnnotations>

+    <eAnnotations source="positions.8" references="/0/generateImplementation/%.1/%.1/%">

+      <details key="start" value="1091"/>

+      <details key="end" value="1109"/>

+      <details key="line" value="30"/>

+    </eAnnotations>

+    <eAnnotations source="positions.9" references="/0/generateImplementation/%.1/%.1/%.1">

+      <details key="start" value="1109"/>

+      <details key="end" value="1198"/>

+      <details key="line" value="33"/>

+    </eAnnotations>

+    <eAnnotations source="positions.10" references="/0/generateImplementation/%.1/%.1/%.1/%">

+      <details key="start" value="1142"/>

+      <details key="end" value="1146"/>

+      <details key="line" value="34"/>

+    </eAnnotations>

+    <eAnnotations source="positions.11" references="/0/generateImplementation/%.1/%.1/%.1/%.1">

+      <details key="start" value="1147"/>

+      <details key="end" value="1158"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.12" references="/0/generateImplementation/%.1/%.1/%.1/%.1/vertex">

+      <details key="start" value="1147"/>

+      <details key="end" value="1153"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.13" references="/0/generateImplementation/%.1/%.1/%.1/%.2">

+      <details key="start" value="1160"/>

+      <details key="end" value="1191"/>

+      <details key="line" value="34"/>

+    </eAnnotations>

+    <eAnnotations source="positions.14" references="/0/generateImplementation/%.1/%.1/%.1/%.2/%">

+      <details key="start" value="1185"/>

+      <details key="end" value="1186"/>

+      <details key="line" value="34"/>

+    </eAnnotations>

+    <eAnnotations source="positions.15" references="/0/generateImplementation/%.1/%.1/%.1/%.2/%.1">

+      <details key="start" value="1164"/>

+      <details key="end" value="1184"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.16" references="/0/generateImplementation/%.1/%.1/%.1/%.2/%.1/i">

+      <details key="start" value="1165"/>

+      <details key="end" value="1166"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.17" references="/0/generateImplementation/%.1/%.1/%.1/%.2/%.1/%">

+      <details key="start" value="1169"/>

+      <details key="end" value="1183"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.18" references="/0/generateImplementation/%.1/%.1/%.1/%.2/%.1/%/states">

+      <details key="start" value="1169"/>

+      <details key="end" value="1175"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.19" references="/0/generateImplementation/%.1/%.1/%.1/%.3">

+      <details key="start" value="1191"/>

+      <details key="end" value="1192"/>

+      <details key="line" value="35"/>

+    </eAnnotations>

+    <eAnnotations source="positions.20" references="/0/generateImplementation/%.1/%.1/%.1/vertex">

+      <details key="start" value="1115"/>

+      <details key="end" value="1130"/>

+      <details key="line" value="33"/>

+    </eAnnotations>

+    <eAnnotations source="positions.21" references="/0/generateImplementation/%.1/%.1/%.1/states">

+      <details key="start" value="1133"/>

+      <details key="end" value="1139"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.22" references="/0/generateImplementation/%.1/%.1/%.2">

+      <details key="start" value="1199"/>

+      <details key="end" value="1206"/>

+      <details key="line" value="36"/>

+    </eAnnotations>

+    <eAnnotations source="positions.23" references="/0/generateImplementation/%.1/%.1/states">

+      <details key="start" value="1013"/>

+      <details key="end" value="1088"/>

+      <details key="line" value="30"/>

+    </eAnnotations>

+    <eAnnotations source="positions.24" references="/0/generateImplementation/%.1/%.1/states/%">

+      <details key="start" value="1041"/>

+      <details key="end" value="1089"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.25" references="/0/generateImplementation/%.1/%.1/states/%/%">

+      <details key="start" value="1041"/>

+      <details key="end" value="1075"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.26" references="/0/generateImplementation/%.1/%.1/states/%/%/collect">

+      <details key="start" value="1041"/>

+      <details key="end" value="1060"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.27" references="/0/generateImplementation/%.1/%.1/states/%/%/collect/%">

+      <details key="start" value="1041"/>

+      <details key="end" value="1050"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.28" references="/0/generateImplementation/%.1/%.1/states/%/%/collect/%/sm">

+      <details key="start" value="1041"/>

+      <details key="end" value="1043"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.29" references="/0/generateImplementation/%.1/%.1/states/%/%/collect/%.1">

+      <details key="start" value="1051"/>

+      <details key="end" value="1060"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.30" references="/0/generateImplementation/%.1/%.1/states/%/%/collect/%.1/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.31" references="/0/generateImplementation/%.1/%.1/states/%/%/collect/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.32" references="/0/generateImplementation/%.1/%.1/states/%/%/%">

+      <details key="start" value="1069"/>

+      <details key="end" value="1074"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.33" references="/0/generateImplementation/%.1/%.2">

+      <details key="start" value="1213"/>

+      <details key="end" value="1592"/>

+      <details key="line" value="38"/>

+    </eAnnotations>

+    <eAnnotations source="positions.34" references="/0/generateImplementation/%.1/%.2/%">

+      <details key="start" value="1340"/>

+      <details key="end" value="1468"/>

+      <details key="line" value="39"/>

+    </eAnnotations>

+    <eAnnotations source="positions.35" references="/0/generateImplementation/%.1/%.2/%/%">

+      <details key="start" value="1372"/>

+      <details key="end" value="1460"/>

+      <details key="line" value="40"/>

+    </eAnnotations>

+    <eAnnotations source="positions.36" references="/0/generateImplementation/%.1/%.2/%/%/%">

+      <details key="start" value="1414"/>

+      <details key="end" value="1416"/>

+      <details key="line" value="41"/>

+    </eAnnotations>

+    <eAnnotations source="positions.37" references="/0/generateImplementation/%.1/%.2/%/%/%.1">

+      <details key="start" value="1417"/>

+      <details key="end" value="1426"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.38" references="/0/generateImplementation/%.1/%.2/%/%/%.1/prop">

+      <details key="start" value="1417"/>

+      <details key="end" value="1421"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.39" references="/0/generateImplementation/%.1/%.2/%/%/%.2">

+      <details key="start" value="1428"/>

+      <details key="end" value="1431"/>

+      <details key="line" value="41"/>

+    </eAnnotations>

+    <eAnnotations source="positions.40" references="/0/generateImplementation/%.1/%.2/%/%/%.3">

+      <details key="start" value="1432"/>

+      <details key="end" value="1450"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.41" references="/0/generateImplementation/%.1/%.2/%/%/%.3/%">

+      <details key="start" value="1440"/>

+      <details key="end" value="1449"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.42" references="/0/generateImplementation/%.1/%.2/%/%/%.3/%/prop">

+      <details key="start" value="1440"/>

+      <details key="end" value="1444"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.43" references="/0/generateImplementation/%.1/%.2/%/%/%.4">

+      <details key="start" value="1452"/>

+      <details key="end" value="1454"/>

+      <details key="line" value="41"/>

+    </eAnnotations>

+    <eAnnotations source="positions.44" references="/0/generateImplementation/%.1/%.2/%/%/%.5">

+      <details key="start" value="1376"/>

+      <details key="end" value="1412"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.45" references="/0/generateImplementation/%.1/%.2/%/%/%.5/%">

+      <details key="start" value="1381"/>

+      <details key="end" value="1411"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.46" references="/0/generateImplementation/%.1/%.2/%/%/%.5/%/%">

+      <details key="start" value="1382"/>

+      <details key="end" value="1400"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.47" references="/0/generateImplementation/%.1/%.2/%/%/%.5/%/%/%">

+      <details key="start" value="1390"/>

+      <details key="end" value="1399"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.48" references="/0/generateImplementation/%.1/%.2/%/%/%.5/%/%/%/prop">

+      <details key="start" value="1390"/>

+      <details key="end" value="1394"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.49" references="/0/generateImplementation/%.1/%.2/%/%/%.5/%/%.1">

+      <details key="start" value="1403"/>

+      <details key="end" value="1410"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.50" references="/0/generateImplementation/%.1/%.2/%/prop">

+      <details key="start" value="1346"/>

+      <details key="end" value="1361"/>

+      <details key="line" value="39"/>

+    </eAnnotations>

+    <eAnnotations source="positions.51" references="/0/generateImplementation/%.1/%.2/%/vars">

+      <details key="start" value="1364"/>

+      <details key="end" value="1368"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.52" references="/0/generateImplementation/%.1/%.2/%.1">

+      <details key="start" value="1469"/>

+      <details key="end" value="1476"/>

+      <details key="line" value="44"/>

+    </eAnnotations>

+    <eAnnotations source="positions.53" references="/0/generateImplementation/%.1/%.2/%.2">

+      <details key="start" value="1477"/>

+      <details key="end" value="1585"/>

+      <details key="line" value="46"/>

+    </eAnnotations>

+    <eAnnotations source="positions.54" references="/0/generateImplementation/%.1/%.2/%.2/%">

+      <details key="start" value="1509"/>

+      <details key="end" value="1577"/>

+      <details key="line" value="47"/>

+    </eAnnotations>

+    <eAnnotations source="positions.55" references="/0/generateImplementation/%.1/%.2/%.2/%/%">

+      <details key="start" value="1545"/>

+      <details key="end" value="1547"/>

+      <details key="line" value="48"/>

+    </eAnnotations>

+    <eAnnotations source="positions.56" references="/0/generateImplementation/%.1/%.2/%.2/%/%.1">

+      <details key="start" value="1548"/>

+      <details key="end" value="1557"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.57" references="/0/generateImplementation/%.1/%.2/%.2/%/%.1/prop">

+      <details key="start" value="1548"/>

+      <details key="end" value="1552"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.58" references="/0/generateImplementation/%.1/%.2/%.2/%/%.2">

+      <details key="start" value="1559"/>

+      <details key="end" value="1571"/>

+      <details key="line" value="48"/>

+    </eAnnotations>

+    <eAnnotations source="positions.59" references="/0/generateImplementation/%.1/%.2/%.2/%/%.3">

+      <details key="start" value="1513"/>

+      <details key="end" value="1543"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.60" references="/0/generateImplementation/%.1/%.2/%.2/%/%.3/%">

+      <details key="start" value="1514"/>

+      <details key="end" value="1532"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.61" references="/0/generateImplementation/%.1/%.2/%.2/%/%.3/%/%">

+      <details key="start" value="1522"/>

+      <details key="end" value="1531"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.62" references="/0/generateImplementation/%.1/%.2/%.2/%/%.3/%/%/prop">

+      <details key="start" value="1522"/>

+      <details key="end" value="1526"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.63" references="/0/generateImplementation/%.1/%.2/%.2/%/%.3/%.1">

+      <details key="start" value="1535"/>

+      <details key="end" value="1542"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.64" references="/0/generateImplementation/%.1/%.2/%.2/prop">

+      <details key="start" value="1483"/>

+      <details key="end" value="1498"/>

+      <details key="line" value="46"/>

+    </eAnnotations>

+    <eAnnotations source="positions.65" references="/0/generateImplementation/%.1/%.2/%.2/vars">

+      <details key="start" value="1501"/>

+      <details key="end" value="1505"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.66" references="/0/generateImplementation/%.1/%.2/vars">

+      <details key="start" value="1218"/>

+      <details key="end" value="1337"/>

+      <details key="line" value="38"/>

+    </eAnnotations>

+    <eAnnotations source="positions.67" references="/0/generateImplementation/%.1/%.2/vars/select">

+      <details key="start" value="1249"/>

+      <details key="end" value="1338"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.68" references="/0/generateImplementation/%.1/%.2/vars/select/%">

+      <details key="start" value="1249"/>

+      <details key="end" value="1264"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.69" references="/0/generateImplementation/%.1/%.2/vars/select/%/owner">

+      <details key="start" value="1249"/>

+      <details key="end" value="1254"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.70" references="/0/generateImplementation/%.1/%.2/vars/select/%.1">

+      <details key="start" value="1288"/>

+      <details key="end" value="1337"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.71" references="/0/generateImplementation/%.1/%.2/vars/select/%.1/%">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.72" references="/0/generateImplementation/%.1/%.2/vars/select/%.1/%/%/%">

+      <details key="start" value="1288"/>

+      <details key="end" value="1326"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.73" references="/0/generateImplementation/%.1/%.2/vars/select/%.1/%/%/%/p">

+      <details key="start" value="1288"/>

+      <details key="end" value="1289"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.74" references="/0/generateImplementation/%.1/%.2/vars/select/%.1/%/%/%/ContractPropQN">

+      <details key="start" value="1311"/>

+      <details key="end" value="1325"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.75" references="/0/generateImplementation/%.1/%.2/vars/select/p">

+      <details key="start" value="1273"/>

+      <details key="end" value="1285"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.76" references="/0/generateImplementation/%.1/%.3">

+      <details key="start" value="1597"/>

+      <details key="end" value="1615"/>

+      <details key="line" value="51"/>

+    </eAnnotations>

+    <eAnnotations source="positions.77" references="/0/generateImplementation/%.1/%.4">

+      <details key="start" value="1616"/>

+      <details key="end" value="1636"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.78" references="/0/generateImplementation/%.1/%.4/sm">

+      <details key="start" value="1633"/>

+      <details key="end" value="1635"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.79" references="/0/generateImplementation/%.1/%.5">

+      <details key="start" value="1638"/>

+      <details key="end" value="1640"/>

+      <details key="line" value="55"/>

+    </eAnnotations>

+    <eAnnotations source="positions.80" references="/0/generateImplementation/%.1/%.6">

+      <details key="start" value="1640"/>

+      <details key="end" value="1994"/>

+      <details key="line" value="56"/>

+    </eAnnotations>

+    <eAnnotations source="positions.81" references="/0/generateImplementation/%.1/%.6/%">

+      <details key="start" value="1830"/>

+      <details key="end" value="1837"/>

+      <details key="line" value="56"/>

+    </eAnnotations>

+    <eAnnotations source="positions.82" references="/0/generateImplementation/%.1/%.6/%.1">

+      <details key="start" value="1837"/>

+      <details key="end" value="1987"/>

+      <details key="line" value="58"/>

+    </eAnnotations>

+    <eAnnotations source="positions.83" references="/0/generateImplementation/%.1/%.6/%.1/%">

+      <details key="start" value="1875"/>

+      <details key="end" value="1886"/>

+      <details key="line" value="59"/>

+    </eAnnotations>

+    <eAnnotations source="positions.84" references="/0/generateImplementation/%.1/%.6/%.1/%.1">

+      <details key="start" value="1887"/>

+      <details key="end" value="1901"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.85" references="/0/generateImplementation/%.1/%.6/%.1/%.1/%">

+      <details key="start" value="1887"/>

+      <details key="end" value="1896"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.86" references="/0/generateImplementation/%.1/%.6/%.1/%.1/%/tr">

+      <details key="start" value="1887"/>

+      <details key="end" value="1889"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.87" references="/0/generateImplementation/%.1/%.6/%.1/%.2">

+      <details key="start" value="1903"/>

+      <details key="end" value="1921"/>

+      <details key="line" value="59"/>

+    </eAnnotations>

+    <eAnnotations source="positions.88" references="/0/generateImplementation/%.1/%.6/%.1/%.3">

+      <details key="start" value="1922"/>

+      <details key="end" value="1936"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.89" references="/0/generateImplementation/%.1/%.6/%.1/%.3/%">

+      <details key="start" value="1922"/>

+      <details key="end" value="1931"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.90" references="/0/generateImplementation/%.1/%.6/%.1/%.3/%/tr">

+      <details key="start" value="1922"/>

+      <details key="end" value="1924"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.91" references="/0/generateImplementation/%.1/%.6/%.1/%.4">

+      <details key="start" value="1938"/>

+      <details key="end" value="1944"/>

+      <details key="line" value="60"/>

+    </eAnnotations>

+    <eAnnotations source="positions.92" references="/0/generateImplementation/%.1/%.6/%.1/%.5">

+      <details key="start" value="1944"/>

+      <details key="end" value="1980"/>

+      <details key="line" value="61"/>

+    </eAnnotations>

+    <eAnnotations source="positions.93" references="/0/generateImplementation/%.1/%.6/%.1/%.5/%">

+      <details key="start" value="1974"/>

+      <details key="end" value="1975"/>

+      <details key="line" value="61"/>

+    </eAnnotations>

+    <eAnnotations source="positions.94" references="/0/generateImplementation/%.1/%.6/%.1/%.5/%.1">

+      <details key="start" value="1948"/>

+      <details key="end" value="1973"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.95" references="/0/generateImplementation/%.1/%.6/%.1/%.5/%.1/i">

+      <details key="start" value="1949"/>

+      <details key="end" value="1950"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.96" references="/0/generateImplementation/%.1/%.6/%.1/%.5/%.1/%">

+      <details key="start" value="1953"/>

+      <details key="end" value="1972"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.97" references="/0/generateImplementation/%.1/%.6/%.1/%.5/%.1/%/transitions">

+      <details key="start" value="1953"/>

+      <details key="end" value="1964"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.98" references="/0/generateImplementation/%.1/%.6/%.1/%.6">

+      <details key="start" value="1980"/>

+      <details key="end" value="1981"/>

+      <details key="line" value="62"/>

+    </eAnnotations>

+    <eAnnotations source="positions.99" references="/0/generateImplementation/%.1/%.6/%.1/tr">

+      <details key="start" value="1843"/>

+      <details key="end" value="1858"/>

+      <details key="line" value="58"/>

+    </eAnnotations>

+    <eAnnotations source="positions.100" references="/0/generateImplementation/%.1/%.6/%.1/transitions">

+      <details key="start" value="1861"/>

+      <details key="end" value="1872"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.101" references="/0/generateImplementation/%.1/%.6/transitions">

+      <details key="start" value="1645"/>

+      <details key="end" value="1827"/>

+      <details key="line" value="56"/>

+    </eAnnotations>

+    <eAnnotations source="positions.102" references="/0/generateImplementation/%.1/%.6/transitions/%">

+      <details key="start" value="1683"/>

+      <details key="end" value="1828"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.103" references="/0/generateImplementation/%.1/%.6/transitions/%/select">

+      <details key="start" value="1683"/>

+      <details key="end" value="1814"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.104" references="/0/generateImplementation/%.1/%.6/transitions/%/select/collect">

+      <details key="start" value="1683"/>

+      <details key="end" value="1703"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.105" references="/0/generateImplementation/%.1/%.6/transitions/%/select/collect/%">

+      <details key="start" value="1683"/>

+      <details key="end" value="1692"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.106" references="/0/generateImplementation/%.1/%.6/transitions/%/select/collect/%/sm">

+      <details key="start" value="1683"/>

+      <details key="end" value="1685"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.107" references="/0/generateImplementation/%.1/%.6/transitions/%/select/collect/%.1">

+      <details key="start" value="1693"/>

+      <details key="end" value="1703"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.108" references="/0/generateImplementation/%.1/%.6/transitions/%/select/collect/%.1/temp1">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.109" references="/0/generateImplementation/%.1/%.6/transitions/%/select/collect/temp2">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.110" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%">

+      <details key="start" value="1730"/>

+      <details key="end" value="1813"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.111" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%">

+      <details key="start" value="1730"/>

+      <details key="end" value="1769"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.112" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%/%">

+      <details key="start" value="1733"/>

+      <details key="end" value="1769"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.113" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%/%/%">

+      <details key="start" value="1734"/>

+      <details key="end" value="1743"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.114" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%/%/%/tr">

+      <details key="start" value="1734"/>

+      <details key="end" value="1736"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.115" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%/%/%.1">

+      <details key="start" value="1756"/>

+      <details key="end" value="1767"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.116" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%.1">

+      <details key="start" value="1774"/>

+      <details key="end" value="1813"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.117" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%.1/%">

+      <details key="start" value="1777"/>

+      <details key="end" value="1813"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.118" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%.1/%/%">

+      <details key="start" value="1778"/>

+      <details key="end" value="1787"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.119" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%.1/%/%/tr">

+      <details key="start" value="1778"/>

+      <details key="end" value="1780"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.120" references="/0/generateImplementation/%.1/%.6/transitions/%/select/%/%.1/%/%.1">

+      <details key="start" value="1800"/>

+      <details key="end" value="1811"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.121" references="/0/generateImplementation/%.1/%.6/transitions/%/select/tr">

+      <details key="start" value="1712"/>

+      <details key="end" value="1727"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.122" references="/0/generateImplementation/%.1/%.7">

+      <details key="start" value="1995"/>

+      <details key="end" value="1996"/>

+      <details key="line" value="64"/>

+    </eAnnotations>

+    <eAnnotations source="positions.123" references="/0/generateImplementation/%.1/%.8">

+      <details key="start" value="923"/>

+      <details key="end" value="975"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.124" references="/0/generateImplementation/%.1/%.8/%">

+      <details key="start" value="923"/>

+      <details key="end" value="960"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.125" references="/0/generateImplementation/%.1/%.8/%/%">

+      <details key="start" value="923"/>

+      <details key="end" value="955"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.126" references="/0/generateImplementation/%.1/%.8/%/%/%">

+      <details key="start" value="923"/>

+      <details key="end" value="931"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.127" references="/0/generateImplementation/%.1/%.8/%/%/%/sm">

+      <details key="start" value="923"/>

+      <details key="end" value="925"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.128" references="/0/generateImplementation/%.1/%.8/%/%/%.1">

+      <details key="start" value="942"/>

+      <details key="end" value="954"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.129" references="/0/generateImplementation/%.1/%.8/%.1">

+      <details key="start" value="968"/>

+      <details key="end" value="974"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.130" references="/0/generateImplementation/%.1/%.9">

+      <details key="start" value="984"/>

+      <details key="end" value="991"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.131" references="/0/generateImplementation/sm">

+      <details key="start" value="814"/>

+      <details key="end" value="831"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.132" references="/0/generateImplementation/owner">

+      <details key="start" value="833"/>

+      <details key="end" value="846"/>

+      <details key="line" value="22"/>

+    </eAnnotations>

+    <eAnnotations source="positions.133" references="/0/getType">

+      <details key="start" value="2017"/>

+      <details key="end" value="2189"/>

+      <details key="line" value="68"/>

+    </eAnnotations>

+    <eAnnotations source="positions.134" references="/0/getType/type">

+      <details key="start" value="2039"/>

+      <details key="end" value="2050"/>

+      <details key="line" value="68"/>

+    </eAnnotations>

+    <eAnnotations source="positions.135" references="/0/getType/%">

+      <details key="start" value="2063"/>

+      <details key="end" value="2187"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.136" references="/0/getType/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.137" references="/0/getType/%/%">

+      <details key="start" value="2070"/>

+      <details key="end" value="2132"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.138" references="/0/getType/%/%.1">

+      <details key="start" value="2134"/>

+      <details key="end" value="2170"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.139" references="/0/getType/%/%.2">

+      <details key="start" value="2172"/>

+      <details key="end" value="2186"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.140" references="/0/getType/%/%.2/%/type">

+      <details key="start" value="2181"/>

+      <details key="end" value="2185"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.141" references="/0/getInitCondition">

+      <details key="start" value="2191"/>

+      <details key="end" value="2394"/>

+      <details key="line" value="71"/>

+    </eAnnotations>

+    <eAnnotations source="positions.142" references="/0/getInitCondition/sm">

+      <details key="start" value="2222"/>

+      <details key="end" value="2239"/>

+      <details key="line" value="71"/>

+    </eAnnotations>

+    <eAnnotations source="positions.143" references="/0/getInitCondition/%">

+      <details key="start" value="2253"/>

+      <details key="end" value="2391"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.144" references="/0/getInitCondition/%/self">

+      <details key="start" value="-1"/>

+      <details key="end" value="-1"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.145" references="/0/getInitCondition/%/%">

+      <details key="start" value="2260"/>

+      <details key="end" value="2322"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.146" references="/0/getInitCondition/%/%.1">

+      <details key="start" value="2323"/>

+      <details key="end" value="2376"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.147" references="/0/getInitCondition/%/%.2">

+      <details key="start" value="2378"/>

+      <details key="end" value="2390"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+    <eAnnotations source="positions.148" references="/0/getInitCondition/%/%.2/%/sm">

+      <details key="start" value="2387"/>

+      <details key="end" value="2389"/>

+      <details key="line" value="0"/>

+    </eAnnotations>

+  </ecore:EAnnotation>

+</xmi:XMI>

diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/.classpath b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/.classpath
index b862a29..eca7bdb 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/.classpath
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/META-INF/MANIFEST.MF b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/META-INF/MANIFEST.MF
index 8d174ec..d5b94b5 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/META-INF/MANIFEST.MF
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/META-INF/MANIFEST.MF
@@ -39,7 +39,8 @@
  eu.fbk.eclipse.standardTools.XSapExecService,
  org.polarsys.chess.smvExporter,
  org.polarsys.chess.contracts.transformations,
- org.eclipse.acceleo.engine;bundle-version="3.6.6"
+ org.eclipse.acceleo.engine;bundle-version="3.6.6",
+ org.eclipse.equinox.event;bundle-version="1.3.200"
 Bundle-ActivationPolicy: lazy
 Import-Package: eu.fbk.eclipse.standardtools.logger,
  eu.fbk.tools.adapter.ui.preferences,
diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/build.properties b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/build.properties
index 6f20375..59b7f4d 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/build.properties
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/build.properties
@@ -1,5 +1,6 @@
 source.. = src/

 output.. = bin/

 bin.includes = META-INF/,\

-               .,\

-               plugin.xml

+               plugin.xml,\

+               configTest.properties,\

+               log4j.properties

diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/pom.xml b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/pom.xml
index 2d5aa47..8217407 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/pom.xml
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/pom.xml
@@ -1,13 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.polarsys.chess</groupId>
-    <artifactId>org.polarsys.chess.parent</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <relativePath>../../../org.polarsys.chess.parent</relativePath>
-  </parent>
-  <artifactId>org.polarsys.chess.contracts.verificationService.test.runtime</artifactId>
-  <packaging>eclipse-plugin</packaging>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.polarsys.chess</groupId>
+		<artifactId>org.polarsys.chess.parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+		<relativePath>../../../org.polarsys.chess.parent</relativePath>
+	</parent>
+	<artifactId>org.polarsys.chess.contracts.verificationService.test.runtime</artifactId>
+	<packaging>eclipse-test-plugin</packaging>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<configuration>
+					<failIfNoTests>false</failIfNoTests>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
 </project>
diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestApplyCHESSStereotype.java b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestApplyCHESSStereotype.java
index 5dfa00b..a7cf32e 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestApplyCHESSStereotype.java
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestApplyCHESSStereotype.java
@@ -13,6 +13,7 @@
 import org.eclipse.uml2.uml.Element;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;
 import org.polarsys.chess.core.profiles.CHESSProfileManager;
@@ -29,6 +30,7 @@
 	
 	
 	@Test
+	@Ignore
 	public void testApplyCHESSStereotype() {
 		
 		CHESSProfileManager.applyCHESSStereotype(model);		
diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestApplyRecursively.java b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestApplyRecursively.java
index 23e0951..e93da26 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestApplyRecursively.java
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestApplyRecursively.java
@@ -13,6 +13,7 @@
 import org.eclipse.uml2.uml.Model;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;
 import org.polarsys.chess.core.profiles.CHESSProfileManager;
@@ -28,6 +29,7 @@
 	}
 
 	@Test
+	@Ignore
 	public void testApplyRecursively() {
 
 		CHESSProfileManager.applyRecursively(model);
diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestCheckContractRefinementOfCHESSComponent.java b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestCheckContractRefinementOfCHESSComponent.java
index fcc14cd..626a7ec 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestCheckContractRefinementOfCHESSComponent.java
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestCheckContractRefinementOfCHESSComponent.java
@@ -23,6 +23,7 @@
 import org.eclipse.xtext.validation.Issue;

 import org.junit.Assert;

 import org.junit.Before;

+import org.junit.Ignore;

 import org.junit.Test;

 import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;

 import org.polarsys.chess.contracts.verificationService.test.runtime.util.TestUtil;

@@ -78,6 +79,7 @@
 	}

 

 	@Test

+	@Ignore

 	public void testCheckContractRefinementOfCHESSComponent() throws Exception {

 

 		System.out.println("Workspace: "+workspace);

diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestCreateViews.java b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestCreateViews.java
index bf68806..fb34021 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestCreateViews.java
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestCreateViews.java
@@ -15,6 +15,7 @@
 import org.eclipse.uml2.uml.Stereotype;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.polarsys.chess.chessmlprofile.Core.CHESS;
 import org.polarsys.chess.chessmlprofile.Core.CHESSViews.AnalysisView;
@@ -39,6 +40,7 @@
 	}
 
 	@Test
+	@Ignore
 	public void testcreateViews() {
 		
 		CHESSProfileManager.createViews(model);
diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestModelChecking.java b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestModelChecking.java
index 0fd8d0c..8506e73 100644
--- a/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestModelChecking.java
+++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService.test.runtime/src/org/polarsys/chess/contracts/verificationService/test/runtime/tests/TestModelChecking.java
@@ -19,6 +19,7 @@
 import org.eclipse.uml2.uml.Model;

 import org.junit.After;

 import org.junit.Before;

+import org.junit.Ignore;

 import org.junit.Test;

 import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;

 import org.polarsys.chess.verificationService.ui.services.ExecCommandService;

@@ -65,6 +66,7 @@
 	}

 

 	@Test

+	@Ignore

 	public void testModelChecking() throws Exception {		

 		Assert.assertEquals(true, execCommandService.execModelChecking(isProgrExecution,isDiscrete, projectPath,projectName, modelName, elementURI, property, algorithm_type, check_type,resultFilePath));	

 		}

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/.classpath b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/.classpath
new file mode 100644
index 0000000..026e45b
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

+	<classpathentry kind="src" path="src/"/>

+	<classpathentry kind="src" path="src-gen/"/>

+	<classpathentry kind="src" path="xtend-gen/"/>

+	<classpathentry kind="output" path="target/classes"/>

+</classpath>

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/.gitignore b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/.gitignore
new file mode 100644
index 0000000..e6f918a
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/.gitignore
@@ -0,0 +1,5 @@
+/bin/

+/src-gen/
+/xtend-gen/
+/target/
+/model/
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/.project b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/.project
new file mode 100644
index 0000000..33da0c3
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.polarsys.chess.xtext.fladsl.ide</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/META-INF/MANIFEST.MF b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..7cea064
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.polarsys.chess.xtext.fladsl.ide
+Bundle-Vendor: Intecs
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.polarsys.chess.xtext.fladsl.ide; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.polarsys.chess.xtext.fladsl,
+ org.eclipse.xtext.ide,
+ org.eclipse.xtext.xbase.ide,
+ org.antlr.runtime
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.polarsys.chess.xtext.ide,
+ org.polarsys.chess.xtext.ide.contentassist.antlr,
+ org.polarsys.chess.xtext.ide.contentassist.antlr.internal
+Import-Package: org.polarsys.chess.xtext,
+ org.polarsys.chess.xtext.services
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/build.properties b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/build.properties
new file mode 100644
index 0000000..5c6bbf9
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+           src-gen/,\
+           xtend-gen/
+bin.includes = .,\
+               META-INF/
+bin.excludes = **/*.xtend
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/pom.xml b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/pom.xml
new file mode 100644
index 0000000..c0f5c05
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/pom.xml
@@ -0,0 +1,22 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+<parent>
+    <groupId>org.polarsys.chess</groupId>
+    <artifactId>org.polarsys.chess.parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../org.polarsys.chess.parent</relativePath>
+  </parent>
+	<artifactId>org.polarsys.chess.xtext.fladsl.ide</artifactId>
+	<packaging>eclipse-plugin</packaging>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.xtend</groupId>
+				<artifactId>xtend-maven-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/src/org/polarsys/chess/xtext/ide/FlaDslIdeModule.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/src/org/polarsys/chess/xtext/ide/FlaDslIdeModule.xtend
new file mode 100644
index 0000000..6b8381a
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/src/org/polarsys/chess/xtext/ide/FlaDslIdeModule.xtend
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package org.polarsys.chess.xtext.ide
+
+
+/**
+ * Use this class to register ide components.
+ */
+class FlaDslIdeModule extends AbstractFlaDslIdeModule {
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/src/org/polarsys/chess/xtext/ide/FlaDslIdeSetup.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/src/org/polarsys/chess/xtext/ide/FlaDslIdeSetup.xtend
new file mode 100644
index 0000000..7f1e5c7
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ide/src/org/polarsys/chess/xtext/ide/FlaDslIdeSetup.xtend
@@ -0,0 +1,20 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package org.polarsys.chess.xtext.ide
+
+import com.google.inject.Guice
+import org.eclipse.xtext.util.Modules2
+import org.polarsys.chess.xtext.FlaDslRuntimeModule
+import org.polarsys.chess.xtext.FlaDslStandaloneSetup
+
+/**
+ * Initialization support for running Xtext languages as language servers.
+ */
+class FlaDslIdeSetup extends FlaDslStandaloneSetup {
+
+	override createInjector() {
+		Guice.createInjector(Modules2.mixin(new FlaDslRuntimeModule, new FlaDslIdeModule))
+	}
+	
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.classpath b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.classpath
index 29ba398..026e45b 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.classpath
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.classpath
@@ -2,8 +2,8 @@
 <classpath>

 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="src" path="xtend-gen"/>

-	<classpathentry kind="src" path="src-gen"/>

-	<classpathentry kind="output" path="bin"/>

+	<classpathentry kind="src" path="src/"/>

+	<classpathentry kind="src" path="src-gen/"/>

+	<classpathentry kind="src" path="xtend-gen/"/>

+	<classpathentry kind="output" path="target/classes"/>

 </classpath>

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.project b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.project
index 13bf8bc..e0bba5d 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.project
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.project
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.polarsys.chess.xtext.fladsl.ui</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.m2e.core.maven2Builder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.m2e.core.maven2Nature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>

-	</natures>

-</projectDescription>

+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.polarsys.chess.xtext.fladsl.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.core.resources.prefs b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.core.resources.prefs
index 4824b80..99f26c0 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.core.resources.prefs
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.core.resources.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1

-encoding/<project>=UTF-8

+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.jdt.core.prefs
index 295926d..0c68a61 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-eclipse.preferences.version=1

-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
index 4a71ac4..9b9b4e0 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/META-INF/MANIFEST.MF
@@ -1,30 +1,28 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: org.polarsys.chess.xtext.fladsl.ui

-Bundle-Vendor: Intecs

-Bundle-Version: 1.0.0.qualifier

-Bundle-SymbolicName: org.polarsys.chess.xtext.fladsl.ui;singleton:=true

-Bundle-ActivationPolicy: lazy

-Require-Bundle: org.eclipse.xtext.ui,

- org.eclipse.ui.editors;bundle-version="3.8.200",

- org.eclipse.ui.ide;bundle-version="3.10.0",

- org.eclipse.xtext.ui.shared,

- org.eclipse.ui,

- org.eclipse.xtext.builder,

- org.eclipse.xtext.common.types.ui,

- org.eclipse.xtext.ui.codetemplates.ui,

- org.eclipse.compare,

- org.eclipse.xtext.xbase.lib,

- org.eclipse.uml2.uml.editor;bundle-version="5.0.1",

- org.polarsys.chess.xtext.fladsl,

- org.antlr.runtime

-Import-Package: org.apache.log4j,

- org.eclipse.xtext.xbase.lib

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

-Export-Package: org.polarsys.chess.xtext.ui,

- org.polarsys.chess.xtext.ui.contentassist,

- org.polarsys.chess.xtext.ui.quickfix,

- org.polarsys.chess.xtext.ui.internal,

- org.polarsys.chess.xtext.ui.contentassist.antlr,

- org.polarsys.chess.xtext.ui.contentassist.antlr.internal

-Bundle-Activator: org.polarsys.chess.xtext.ui.internal.FlaDslActivator

+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.polarsys.chess.xtext.fladsl.ui
+Bundle-Vendor: Intecs
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.polarsys.chess.xtext.fladsl.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.polarsys.chess.xtext.fladsl,
+ org.polarsys.chess.xtext.fladsl.ide,
+ org.eclipse.xtext.ui,
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.ui,
+ org.eclipse.compare,
+ org.eclipse.xtext.builder,
+ org.eclipse.xtend.lib;resolution:=optional,
+ org.eclipse.xtext.xbase.lib
+Import-Package: org.apache.log4j,
+ org.polarsys.chess.xtext,
+ org.polarsys.chess.xtext.parser.antlr.internal
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.polarsys.chess.xtext.fladsl.ui.internal,
+ org.polarsys.chess.xtext.ui,
+ org.polarsys.chess.xtext.ui.contentassist,
+ org.polarsys.chess.xtext.ui.quickfix
+Bundle-Activator: org.polarsys.chess.xtext.fladsl.ui.internal.FladslActivator
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/build.properties b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/build.properties
index f2ae661..323f56c 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/build.properties
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/build.properties
@@ -1,6 +1,7 @@
-source.. = src/,\

-           src-gen/,\

-           xtend-gen/

-bin.includes = META-INF/,\

-               .,\

-               plugin.xml

+source.. = src/,\
+           src-gen/,\
+           xtend-gen/
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml
+bin.excludes = **/*.xtend
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml
index 125b903..fe6177a 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/plugin.xml
@@ -1,425 +1,410 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.0"?>

-

-<plugin>

-

-    <extension

-            point="org.eclipse.ui.editors">

-        <editor

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"

-            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"

-            default="true"

-            extensions="fladsl"

-            id="org.polarsys.chess.xtext.FlaDsl"

-            name="FlaDsl Editor">

-        </editor>

-    </extension>

-    <extension

-        point="org.eclipse.ui.handlers">

-        <handler

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"

-            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">

-            <activeWhen>

-                <reference

-                    definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

-                </reference>

-            </activeWhen>

-        </handler>

-        <handler

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"

-            commandId="org.polarsys.chess.xtext.FlaDsl.validate">

-         <activeWhen>

-            <reference

-                    definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

-            </reference>

-         </activeWhen>

-      	</handler>

-      	<!-- copy qualified name -->

-        <handler

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"

-            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">

-            <activeWhen>

-				<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

-            </activeWhen>

-        </handler>

-        <handler

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"

-            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">

-            <activeWhen>

-            	<and>

-            		<reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />

-	                <iterate>

-						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />

-					</iterate>

-				</and>

-            </activeWhen>

-        </handler>

-    </extension>

-    <extension point="org.eclipse.core.expressions.definitions">

-        <definition id="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

-            <and>

-                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>

-                <with variable="activeEditor">

-                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 

-                        value="org.polarsys.chess.xtext.FlaDsl" 

-                        forcePluginActivation="true"/>

-                </with>        

-            </and>

-        </definition>

-        <definition id="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened">

-            <and>

-                <reference definitionId="isXtextEditorActive"/>

-                <with variable="activeEditor">

-                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 

-                        value="org.polarsys.chess.xtext.FlaDsl" 

-                        forcePluginActivation="true"/>

-                </with>        

-            </and>

-        </definition>

-    </extension>

-    <extension

-            point="org.eclipse.ui.preferencePages">

-        <page

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"

-            id="org.polarsys.chess.xtext.FlaDsl"

-            name="FlaDsl">

-            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

-        </page>

-        <page

-            category="org.polarsys.chess.xtext.FlaDsl"

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"

-            id="org.polarsys.chess.xtext.FlaDsl.coloring"

-            name="Syntax Coloring">

-            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

-        </page>

-        <page

-            category="org.polarsys.chess.xtext.FlaDsl"

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"

-            id="org.polarsys.chess.xtext.FlaDsl.templates"

-            name="Templates">

-            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

-        </page>

-    </extension>

-    <extension

-            point="org.eclipse.ui.propertyPages">

-        <page

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"

-            id="org.polarsys.chess.xtext.FlaDsl"

-            name="FlaDsl">

-            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

-            <enabledWhen>

-	            <adapt type="org.eclipse.core.resources.IProject"/>

-			</enabledWhen>

-	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>

-        </page>

-    </extension>

-    <extension

-        point="org.eclipse.ui.keywords">

-        <keyword

-            id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"

-            label="FlaDsl"/>

-    </extension>

-    <extension

-         point="org.eclipse.ui.commands">

-      <command

-            description="Trigger expensive validation"

-            id="org.polarsys.chess.xtext.FlaDsl.validate"

-            name="Validate">

-      </command>

-      <!-- copy qualified name -->

-      <command

-            id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"

-            categoryId="org.eclipse.ui.category.edit"

-            description="Copy the qualified name for the selected element"

-            name="Copy Qualified Name">

-      </command>

-      <command

-            id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"

-            categoryId="org.eclipse.ui.category.edit"

-            description="Copy the qualified name for the selected element"

-            name="Copy Qualified Name">

-      </command>

-    </extension>

-    <extension point="org.eclipse.ui.menus">

-        <menuContribution

-            locationURI="popup:#TextEditorContext?after=group.edit">

-             <command

-                 commandId="org.polarsys.chess.xtext.FlaDsl.validate"

-                 style="push"

-                 tooltip="Trigger expensive validation">

-            <visibleWhen checkEnabled="false">

-                <reference

-                    definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

-                </reference>

-            </visibleWhen>

-         </command>  

-         </menuContribution>

-         <!-- copy qualified name -->

-         <menuContribution locationURI="popup:#TextEditorContext?after=copy">

-         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" 

-         		style="push" tooltip="Copy Qualified Name">

-            	<visibleWhen checkEnabled="false">

-                	<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

-            	</visibleWhen>

-         	</command>  

-         </menuContribution>

-         <menuContribution locationURI="menu:edit?after=copy">

-         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"

-            	style="push" tooltip="Copy Qualified Name">

-            	<visibleWhen checkEnabled="false">

-                	<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

-            	</visibleWhen>

-         	</command>  

-         </menuContribution>

-         <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">

-			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" 

-				style="push" tooltip="Copy Qualified Name">

-         		<visibleWhen checkEnabled="false">

-	            	<and>

-	            		<reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />

-						<iterate>

-							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />

-						</iterate>

-					</and>

-				</visibleWhen>

-			</command>

-         </menuContribution>

-    </extension>

-    <extension point="org.eclipse.ui.menus">

-		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find">

-			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">

-				<visibleWhen checkEnabled="false">

-                	<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

-                	</reference>

-            	</visibleWhen>

-			</command>

-		</menuContribution>

-	</extension>

-	<extension point="org.eclipse.ui.handlers">

-	    <handler

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"

-            commandId="org.eclipse.xtext.ui.editor.FindReferences">

-            <activeWhen>

-                <reference

-                    definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

-                </reference>

-            </activeWhen>

-        </handler>

-    </extension>   

-

-<!-- adding resource factories -->

-

-	<extension

-		point="org.eclipse.emf.ecore.extension_parser">

-		<parser

-			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"

-			type="fladsl">

-		</parser>

-	</extension>

-	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">

-        <resourceServiceProvider

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"

-            uriExtension="fladsl">

-        </resourceServiceProvider>

-    </extension>

-

-

-	<!-- marker definitions for org.polarsys.chess.xtext.FlaDsl -->

-	<extension

-	        id="fladsl.check.fast"

-	        name="FlaDsl Problem"

-	        point="org.eclipse.core.resources.markers">

-	    <super type="org.eclipse.xtext.ui.check.fast"/>

-	    <persistent value="true"/>

-	</extension>

-	<extension

-	        id="fladsl.check.normal"

-	        name="FlaDsl Problem"

-	        point="org.eclipse.core.resources.markers">

-	    <super type="org.eclipse.xtext.ui.check.normal"/>

-	    <persistent value="true"/>

-	</extension>

-	<extension

-	        id="fladsl.check.expensive"

-	        name="FlaDsl Problem"

-	        point="org.eclipse.core.resources.markers">

-	    <super type="org.eclipse.xtext.ui.check.expensive"/>

-	    <persistent value="true"/>

-	</extension>

-

-   <extension

-         point="org.eclipse.xtext.builder.participant">

-      <participant

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"

-            fileExtensions="fladsl"

-            >

-      </participant>

-   </extension>

-   <extension

-            point="org.eclipse.ui.preferencePages">

-        <page

-            category="org.polarsys.chess.xtext.FlaDsl"

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"

-            id="org.polarsys.chess.xtext.FlaDsl.compiler.preferencePage"

-            name="Compiler">

-            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

-        </page>

-    </extension>

-    <extension

-            point="org.eclipse.ui.propertyPages">

-        <page

-            category="org.polarsys.chess.xtext.FlaDsl"

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"

-            id="org.polarsys.chess.xtext.FlaDsl.compiler.propertyPage"

-            name="Compiler">

-            <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

-            <enabledWhen>

-	            <adapt type="org.eclipse.core.resources.IProject"/>

-			</enabledWhen>

-	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>

-        </page>

-    </extension>

-    <extension point="org.eclipse.ui.menus">

-		<menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">

-			<command

-				commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"

-				id="org.polarsys.chess.xtext.FlaDsl.OpenGeneratedCode"

-				style="push">

-					<visibleWhen checkEnabled="false">

-						<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

-					</visibleWhen>

-			</command>

-		</menuContribution>

-	</extension>

-	<extension point="org.eclipse.ui.handlers">

-		<handler

-			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"

-			commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">

-				<activeWhen>

-					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />

-				</activeWhen>

-		</handler>

-	</extension>

-

-	<!-- Quick Outline -->

-	<extension

-		point="org.eclipse.ui.handlers">

-		<handler 

-			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"

-			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">

-			<activeWhen>

-				<reference

-					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

-				</reference>

-			</activeWhen>

-		</handler>

-	</extension>

-	<extension

-		point="org.eclipse.ui.commands">

-		<command

-			description="Open the quick outline."

-			id="org.eclipse.xtext.ui.editor.outline.QuickOutline"

-			name="Quick Outline">

-		</command>

-	</extension>

-	<extension point="org.eclipse.ui.menus">

-		<menuContribution

-			locationURI="popup:#TextEditorContext?after=group.open">

-			<command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"

-				style="push"

-				tooltip="Open Quick Outline">

-				<visibleWhen checkEnabled="false">

-					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened"/>

-				</visibleWhen>

-			</command>

-		</menuContribution>

-	</extension>

-    <!-- quickfix marker resolution generator for org.polarsys.chess.xtext.FlaDsl -->

-    <extension

-            point="org.eclipse.ui.ide.markerResolution">

-        <markerResolutionGenerator

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"

-            markerType="org.polarsys.chess.xtext.ui.fladsl.check.fast">

-            <attribute

-                name="FIXABLE_KEY"

-                value="true">

-            </attribute>

-        </markerResolutionGenerator>

-        <markerResolutionGenerator

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"

-            markerType="org.polarsys.chess.xtext.ui.fladsl.check.normal">

-            <attribute

-                name="FIXABLE_KEY"

-                value="true">

-            </attribute>

-        </markerResolutionGenerator>

-        <markerResolutionGenerator

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"

-            markerType="org.polarsys.chess.xtext.ui.fladsl.check.expensive">

-            <attribute

-                name="FIXABLE_KEY"

-                value="true">

-            </attribute>

-        </markerResolutionGenerator>

-    </extension>

-   	<!-- Rename Refactoring -->

-	<extension point="org.eclipse.ui.handlers">

-		<handler 

-			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"

-			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">

-			<activeWhen>

-				<reference

-					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

-				</reference>

-			</activeWhen>

-		</handler>

-	</extension>

-    <extension point="org.eclipse.ui.menus">

-         <menuContribution

-            locationURI="popup:#TextEditorContext?after=group.edit">

-         <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"

-               style="push">

-            <visibleWhen checkEnabled="false">

-               <reference

-                     definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">

-               </reference>

-            </visibleWhen>

-         </command>

-      </menuContribution>

-   </extension>

-   <extension point="org.eclipse.ui.preferencePages">

-	    <page

-	        category="org.polarsys.chess.xtext.FlaDsl"

-	        class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"

-	        id="org.polarsys.chess.xtext.FlaDsl.refactoring"

-	        name="Refactoring">

-	        <keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>

-	    </page>

-	</extension>

-

-  <extension point="org.eclipse.compare.contentViewers">

-    <viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentViewers"

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"

-            extensions="fladsl">

-    </viewer>

-  </extension>

-  <extension point="org.eclipse.compare.contentMergeViewers">

-    <viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentMergeViewers"

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"

-            extensions="fladsl" label="FlaDsl Compare">

-     </viewer>

-  </extension>

-  <extension point="org.eclipse.ui.editors.documentProviders">

-    <provider id="org.polarsys.chess.xtext.FlaDsl.editors.documentProviders"

-            class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"

-            extensions="fladsl">

-    </provider>

-  </extension>

-  <extension point="org.eclipse.team.core.fileTypes">

-    <fileTypes

-            extension="fladsl"

-            type="text">

-    </fileTypes>

-  </extension>

-

-</plugin>

+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+	<extension
+		point="org.eclipse.ui.editors">
+		<editor
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+			contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+			default="true"
+			extensions="fladsl"
+			id="org.polarsys.chess.xtext.FlaDsl"
+			name="FlaDsl Editor">
+		</editor>
+	</extension>
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+			commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+			<activeWhen>
+				<reference
+					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+		<handler
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+			commandId="org.polarsys.chess.xtext.FlaDsl.validate">
+		<activeWhen>
+			<reference
+					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+			</reference>
+		</activeWhen>
+		</handler>
+		<!-- copy qualified name -->
+		<handler
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+			<activeWhen>
+				<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+			</activeWhen>
+		</handler>
+		<handler
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+			<activeWhen>
+				<and>
+					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />
+					<iterate>
+						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+					</iterate>
+				</and>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension point="org.eclipse.core.expressions.definitions">
+		<definition id="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+			<and>
+				<reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+				<with variable="activeEditor">
+					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+						value="org.polarsys.chess.xtext.FlaDsl"
+						forcePluginActivation="true"/>
+				</with>
+			</and>
+		</definition>
+		<definition id="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened">
+			<and>
+				<reference definitionId="isXtextEditorActive"/>
+				<with variable="activeEditor">
+					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+						value="org.polarsys.chess.xtext.FlaDsl"
+						forcePluginActivation="true"/>
+				</with>
+			</and>
+		</definition>
+	</extension>
+	<extension
+			point="org.eclipse.ui.preferencePages">
+		<page
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+			id="org.polarsys.chess.xtext.FlaDsl"
+			name="FlaDsl">
+			<keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+		</page>
+		<page
+			category="org.polarsys.chess.xtext.FlaDsl"
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+			id="org.polarsys.chess.xtext.FlaDsl.coloring"
+			name="Syntax Coloring">
+			<keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+		</page>
+		<page
+			category="org.polarsys.chess.xtext.FlaDsl"
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+			id="org.polarsys.chess.xtext.FlaDsl.templates"
+			name="Templates">
+			<keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+		</page>
+	</extension>
+	<extension
+			point="org.eclipse.ui.propertyPages">
+		<page
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+			id="org.polarsys.chess.xtext.FlaDsl"
+			name="FlaDsl">
+			<keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+			<enabledWhen>
+				<adapt type="org.eclipse.core.resources.IProject"/>
+			</enabledWhen>
+			<filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+		</page>
+	</extension>
+	<extension
+		point="org.eclipse.ui.keywords">
+		<keyword
+			id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"
+			label="FlaDsl"/>
+	</extension>
+	<extension
+		point="org.eclipse.ui.commands">
+	<command
+			description="Trigger expensive validation"
+			id="org.polarsys.chess.xtext.FlaDsl.validate"
+			name="Validate">
+	</command>
+	<!-- copy qualified name -->
+	<command
+			id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+			categoryId="org.eclipse.ui.category.edit"
+			description="Copy the qualified name for the selected element"
+			name="Copy Qualified Name">
+	</command>
+	<command
+			id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+			categoryId="org.eclipse.ui.category.edit"
+			description="Copy the qualified name for the selected element"
+			name="Copy Qualified Name">
+	</command>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.edit">
+			 <command
+				 commandId="org.polarsys.chess.xtext.FlaDsl.validate"
+				 style="push"
+				 tooltip="Trigger expensive validation">
+			<visibleWhen checkEnabled="false">
+				<reference
+					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+				</reference>
+			</visibleWhen>
+		</command>
+		</menuContribution>
+		<!-- copy qualified name -->
+		<menuContribution locationURI="popup:#TextEditorContext?after=copy">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+				style="push" tooltip="Copy Qualified Name">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution locationURI="menu:edit?after=copy">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+				style="push" tooltip="Copy Qualified Name">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+				style="push" tooltip="Copy Qualified Name">
+				<visibleWhen checkEnabled="false">
+					<and>
+						<reference definitionId="org.polarsys.chess.xtext.FlaDsl.XtextEditor.opened" />
+						<iterate>
+							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+						</iterate>
+					</and>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+					</reference>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+		<handler
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+			commandId="org.eclipse.xtext.ui.editor.FindReferences">
+			<activeWhen>
+				<reference
+					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<!-- adding resource factories -->
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="fladsl">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+		<resourceServiceProvider
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+			uriExtension="fladsl">
+		</resourceServiceProvider>
+	</extension>
+	<!-- marker definitions for org.polarsys.chess.xtext.FlaDsl -->
+	<extension
+			id="fladsl.check.fast"
+			name="FlaDsl Problem"
+			point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.xtext.ui.check.fast"/>
+		<persistent value="true"/>
+	</extension>
+	<extension
+			id="fladsl.check.normal"
+			name="FlaDsl Problem"
+			point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.xtext.ui.check.normal"/>
+		<persistent value="true"/>
+	</extension>
+	<extension
+			id="fladsl.check.expensive"
+			name="FlaDsl Problem"
+			point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.xtext.ui.check.expensive"/>
+		<persistent value="true"/>
+	</extension>
+	<extension point="org.eclipse.xtext.builder.participant">
+		<participant
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+			fileExtensions="fladsl"/>
+	</extension>
+	<extension point="org.eclipse.ui.preferencePages">
+		<page
+			category="org.polarsys.chess.xtext.FlaDsl"
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+			id="org.polarsys.chess.xtext.FlaDsl.compiler.preferencePage"
+			name="Compiler">
+			<keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+		</page>
+	</extension>
+	<extension point="org.eclipse.ui.propertyPages">
+		<page
+			category="org.polarsys.chess.xtext.FlaDsl"
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+			id="org.polarsys.chess.xtext.FlaDsl.compiler.propertyPage"
+			name="Compiler">
+			<keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+			<enabledWhen>
+				<adapt type="org.eclipse.core.resources.IProject"/>
+			</enabledWhen>
+			<filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+		</page>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
+			<command
+				commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
+				id="org.polarsys.chess.xtext.FlaDsl.OpenGeneratedCode"
+				style="push">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+		<handler
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+			commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+			<activeWhen>
+				<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened" />
+			</activeWhen>
+		</handler>
+	</extension>
+	<!-- Quick Outline -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension
+		point="org.eclipse.ui.commands">
+		<command
+			description="Open the quick outline."
+			id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+			name="Quick Outline">
+		</command>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+				style="push"
+				tooltip="Open Quick Outline">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<!-- quickfix marker resolution generator for org.polarsys.chess.xtext.FlaDsl -->
+	<extension
+			point="org.eclipse.ui.ide.markerResolution">
+		<markerResolutionGenerator
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+			markerType="org.polarsys.chess.xtext.fladsl.ui.fladsl.check.fast">
+			<attribute
+				name="FIXABLE_KEY"
+				value="true">
+			</attribute>
+		</markerResolutionGenerator>
+		<markerResolutionGenerator
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+			markerType="org.polarsys.chess.xtext.fladsl.ui.fladsl.check.normal">
+			<attribute
+				name="FIXABLE_KEY"
+				value="true">
+			</attribute>
+		</markerResolutionGenerator>
+		<markerResolutionGenerator
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+			markerType="org.polarsys.chess.xtext.fladsl.ui.fladsl.check.expensive">
+			<attribute
+				name="FIXABLE_KEY"
+				value="true">
+			</attribute>
+		</markerResolutionGenerator>
+	</extension>
+	<!-- Rename Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.edit">
+			<command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+				style="push">
+				<visibleWhen checkEnabled="false">
+					<reference
+						definitionId="org.polarsys.chess.xtext.FlaDsl.Editor.opened">
+					</reference>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.preferencePages">
+		<page
+			category="org.polarsys.chess.xtext.FlaDsl"
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+			id="org.polarsys.chess.xtext.FlaDsl.refactoring"
+			name="Refactoring">
+			<keywordReference id="org.polarsys.chess.xtext.ui.keyword_FlaDsl"/>
+		</page>
+	</extension>
+	<extension point="org.eclipse.compare.contentViewers">
+		<viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentViewers"
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+			extensions="fladsl">
+		</viewer>
+	</extension>
+	<extension point="org.eclipse.compare.contentMergeViewers">
+		<viewer id="org.polarsys.chess.xtext.FlaDsl.compare.contentMergeViewers"
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+			extensions="fladsl" label="FlaDsl Compare">
+		</viewer>
+	</extension>
+	<extension point="org.eclipse.ui.editors.documentProviders">
+		<provider id="org.polarsys.chess.xtext.FlaDsl.editors.documentProviders"
+			class="org.polarsys.chess.xtext.ui.FlaDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+			extensions="fladsl">
+		</provider>
+	</extension>
+	<extension point="org.eclipse.team.core.fileTypes">
+		<fileTypes
+			extension="fladsl"
+			type="text">
+		</fileTypes>
+	</extension>
+</plugin>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/pom.xml b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/pom.xml
index 028b70c..7652c13 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/pom.xml
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/pom.xml
@@ -1,17 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+<parent>
     <groupId>org.polarsys.chess</groupId>
     <artifactId>org.polarsys.chess.parent</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <relativePath>../../../org.polarsys.chess.parent</relativePath>
   </parent>
-  <artifactId>org.polarsys.chess.xtext.fladsl.ui</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  
-  <build>
+	<artifactId>org.polarsys.chess.xtext.fladsl.ui</artifactId>
+	<packaging>eclipse-plugin</packaging>
+
+	<build>
 		<plugins>
 			<plugin>
 				<groupId>org.eclipse.xtend</groupId>
@@ -19,4 +18,5 @@
 			</plugin>
 		</plugins>
 	</build>
+
 </project>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/FlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/FlaDslParser.java
deleted file mode 100644
index 9117351..0000000
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/FlaDslParser.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * generated by Xtext
- */
-package org.polarsys.chess.xtext.ui.contentassist.antlr;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.HashMap;
-
-import org.antlr.runtime.RecognitionException;
-import org.eclipse.xtext.AbstractElement;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-
-import com.google.inject.Inject;
-
-import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
-
-public class FlaDslParser extends AbstractContentAssistParser {
-	
-	@Inject
-	private FlaDslGrammarAccess grammarAccess;
-	
-	private Map<AbstractElement, String> nameMappings;
-	
-	@Override
-	protected org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser createParser() {
-		org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser result = new org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser(null);
-		result.setGrammarAccess(grammarAccess);
-		return result;
-	}
-	
-	@Override
-	protected String getRuleName(AbstractElement element) {
-		if (nameMappings == null) {
-			nameMappings = new HashMap<AbstractElement, String>() {
-				private static final long serialVersionUID = 1L;
-				{
-					put(grammarAccess.getInputExpressionAccess().getAlternatives_0(), "rule__InputExpression__Alternatives_0");
-					put(grammarAccess.getOutputExpressionAccess().getAlternatives_0(), "rule__OutputExpression__Alternatives_0");
-					put(grammarAccess.getInFailureExprAccess().getAlternatives(), "rule__InFailureExpr__Alternatives");
-					put(grammarAccess.getOutFailureExprAccess().getAlternatives(), "rule__OutFailureExpr__Alternatives");
-					put(grammarAccess.getDefinitionsAccess().getAlternatives(), "rule__Definitions__Alternatives");
-					put(grammarAccess.getFailureTypeAccess().getAlternatives(), "rule__FailureType__Alternatives");
-					put(grammarAccess.getActualFailureTypeAccess().getAlternatives(), "rule__ActualFailureType__Alternatives");
-					put(grammarAccess.getAavoidableAccess().getAlternatives(), "rule__Aavoidable__Alternatives");
-					put(grammarAccess.getCavoidableAccess().getAlternatives(), "rule__Cavoidable__Alternatives");
-					put(grammarAccess.getIavoidableAccess().getAlternatives(), "rule__Iavoidable__Alternatives");
-					put(grammarAccess.getDavoidableAccess().getAlternatives(), "rule__Davoidable__Alternatives");
-					put(grammarAccess.getAmitigationAccess().getAlternatives(), "rule__Amitigation__Alternatives");
-					put(grammarAccess.getCmitigationAccess().getAlternatives(), "rule__Cmitigation__Alternatives");
-					put(grammarAccess.getImitigationAccess().getAlternatives(), "rule__Imitigation__Alternatives");
-					put(grammarAccess.getDmitigationAccess().getAlternatives(), "rule__Dmitigation__Alternatives");
-					put(grammarAccess.getExpressionAccess().getGroup(), "rule__Expression__Group__0");
-					put(grammarAccess.getLhsAccess().getGroup(), "rule__Lhs__Group__0");
-					put(grammarAccess.getLhsAccess().getGroup_1(), "rule__Lhs__Group_1__0");
-					put(grammarAccess.getRhsAccess().getGroup(), "rule__Rhs__Group__0");
-					put(grammarAccess.getRhsAccess().getGroup_1(), "rule__Rhs__Group_1__0");
-					put(grammarAccess.getInputExpressionAccess().getGroup(), "rule__InputExpression__Group__0");
-					put(grammarAccess.getOutputExpressionAccess().getGroup(), "rule__OutputExpression__Group__0");
-					put(grammarAccess.getInFailureExprAccess().getGroup_3(), "rule__InFailureExpr__Group_3__0");
-					put(grammarAccess.getInFailureExprAccess().getGroup_3_2(), "rule__InFailureExpr__Group_3_2__0");
-					put(grammarAccess.getOutFailureExprAccess().getGroup_3(), "rule__OutFailureExpr__Group_3__0");
-					put(grammarAccess.getOutFailureExprAccess().getGroup_3_2(), "rule__OutFailureExpr__Group_3_2__0");
-					put(grammarAccess.getFailureDefinitionAccess().getGroup(), "rule__FailureDefinition__Group__0");
-					put(grammarAccess.getFailureDefinitionAccess().getGroup_2(), "rule__FailureDefinition__Group_2__0");
-					put(grammarAccess.getNoFailureDefinitionAccess().getGroup(), "rule__NoFailureDefinition__Group__0");
-					put(grammarAccess.getComplexNofailureDefinitionAccess().getGroup(), "rule__ComplexNofailureDefinition__Group__0");
-					put(grammarAccess.getWildcardDefinitionAccess().getGroup(), "rule__WildcardDefinition__Group__0");
-					put(grammarAccess.getVariableDefinitionAccess().getGroup(), "rule__VariableDefinition__Group__0");
-					put(grammarAccess.getACIDavoidableAccess().getGroup(), "rule__ACIDavoidable__Group__0");
-					put(grammarAccess.getACIDMitigationAccess().getGroup(), "rule__ACIDMitigation__Group__0");
-					put(grammarAccess.getFQNAccess().getGroup(), "rule__FQN__Group__0");
-					put(grammarAccess.getFQNAccess().getGroup_1(), "rule__FQN__Group_1__0");
-					put(grammarAccess.getBehaviourAccess().getRulesAssignment(), "rule__Behaviour__RulesAssignment");
-					put(grammarAccess.getExpressionAccess().getLhsAssignment_1(), "rule__Expression__LhsAssignment_1");
-					put(grammarAccess.getExpressionAccess().getRhsAssignment_3(), "rule__Expression__RhsAssignment_3");
-					put(grammarAccess.getLhsAccess().getFailuresAssignment_0(), "rule__Lhs__FailuresAssignment_0");
-					put(grammarAccess.getLhsAccess().getFailuresAssignment_1_1(), "rule__Lhs__FailuresAssignment_1_1");
-					put(grammarAccess.getRhsAccess().getFailuresAssignment_0(), "rule__Rhs__FailuresAssignment_0");
-					put(grammarAccess.getRhsAccess().getFailuresAssignment_1_1(), "rule__Rhs__FailuresAssignment_1_1");
-					put(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0(), "rule__InputExpression__RefAssignment_0_0");
-					put(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2(), "rule__InputExpression__FailureExprAssignment_2");
-					put(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0(), "rule__OutputExpression__RefAssignment_0_0");
-					put(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2(), "rule__OutputExpression__FailureExprAssignment_2");
-					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0(), "rule__InFailureExpr__FailuresAssignment_0");
-					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1(), "rule__InFailureExpr__FailuresAssignment_1");
-					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2(), "rule__InFailureExpr__FailuresAssignment_2");
-					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1(), "rule__InFailureExpr__FailuresAssignment_3_1");
-					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1(), "rule__InFailureExpr__FailuresAssignment_3_2_1");
-					put(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4(), "rule__InFailureExpr__FailuresAssignment_4");
-					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0(), "rule__OutFailureExpr__FailuresAssignment_0");
-					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1(), "rule__OutFailureExpr__FailuresAssignment_1");
-					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2(), "rule__OutFailureExpr__FailuresAssignment_2");
-					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1(), "rule__OutFailureExpr__FailuresAssignment_3_1");
-					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1(), "rule__OutFailureExpr__FailuresAssignment_3_2_1");
-					put(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4(), "rule__OutFailureExpr__FailuresAssignment_4");
-					put(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1(), "rule__FailureDefinition__TypeAssignment_1");
-					put(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1(), "rule__FailureDefinition__AcidAvoidableAssignment_2_1");
-					put(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3(), "rule__ComplexNofailureDefinition__AcidMitigationAssignment_3");
-					put(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1(), "rule__VariableDefinition__VariableNameAssignment_1");
-					put(grammarAccess.getACIDavoidableAccess().getAAssignment_0(), "rule__ACIDavoidable__AAssignment_0");
-					put(grammarAccess.getACIDavoidableAccess().getCAssignment_2(), "rule__ACIDavoidable__CAssignment_2");
-					put(grammarAccess.getACIDavoidableAccess().getIAssignment_4(), "rule__ACIDavoidable__IAssignment_4");
-					put(grammarAccess.getACIDavoidableAccess().getDAssignment_6(), "rule__ACIDavoidable__DAssignment_6");
-					put(grammarAccess.getACIDMitigationAccess().getAAssignment_0(), "rule__ACIDMitigation__AAssignment_0");
-					put(grammarAccess.getACIDMitigationAccess().getCAssignment_2(), "rule__ACIDMitigation__CAssignment_2");
-					put(grammarAccess.getACIDMitigationAccess().getIAssignment_4(), "rule__ACIDMitigation__IAssignment_4");
-					put(grammarAccess.getACIDMitigationAccess().getDAssignment_6(), "rule__ACIDMitigation__DAssignment_6");
-				}
-			};
-		}
-		return nameMappings.get(element);
-	}
-	
-	@Override
-	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
-		try {
-			org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser typedParser = (org.polarsys.chess.xtext.ui.contentassist.antlr.internal.InternalFlaDslParser) parser;
-			typedParser.entryRuleBehaviour();
-			return typedParser.getFollowElements();
-		} catch(RecognitionException ex) {
-			throw new RuntimeException(ex);
-		}		
-	}
-	
-	@Override
-	protected String[] getInitialHiddenTokens() {
-		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
-	}
-	
-	public FlaDslGrammarAccess getGrammarAccess() {
-		return this.grammarAccess;
-	}
-	
-	public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
-		this.grammarAccess = grammarAccess;
-	}
-}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/PartialFlaDslContentAssistParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/PartialFlaDslContentAssistParser.java
deleted file mode 100644
index 8d2b405..0000000
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/PartialFlaDslContentAssistParser.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * generated by Xtext
- */
-package org.polarsys.chess.xtext.ui.contentassist.antlr;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.xtext.AbstractRule;
-import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-import org.eclipse.xtext.util.PolymorphicDispatcher;
-
-/*
- * Template CodetemplatesGeneratorFragment.xpt
- */
-public class PartialFlaDslContentAssistParser extends FlaDslParser implements IPartialContentAssistParser {
-
-	private AbstractRule rule;
-
-	@Override
-	public void initializeFor(AbstractRule rule) {
-		this.rule = rule;
-	}
-	
-	@Override
-	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
-		if (rule == null || rule.eIsProxy())
-			return Collections.emptyList();
-		String methodName = "entryRule" + rule.getName();
-		PolymorphicDispatcher<Collection<FollowElement>> dispatcher = 
-			new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
-		dispatcher.invoke();
-		return parser.getFollowElements();
-	}
-
-}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslLexer.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslLexer.java
deleted file mode 100644
index 75a8ef9..0000000
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslLexer.java
+++ /dev/null
@@ -1,1897 +0,0 @@
-package org.polarsys.chess.xtext.ui.contentassist.antlr.internal;
-
-// Hack: Use our own Lexer superclass by means of import. 
-// Currently there is no other way to specify the superclass for the lexer.
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
-
-
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
-
-@SuppressWarnings("all")
-public class InternalFlaDslLexer extends Lexer {
-    public static final int RULE_STRING=6;
-    public static final int RULE_SL_COMMENT=8;
-    public static final int T__19=19;
-    public static final int T__15=15;
-    public static final int T__37=37;
-    public static final int T__16=16;
-    public static final int T__38=38;
-    public static final int T__17=17;
-    public static final int T__39=39;
-    public static final int T__18=18;
-    public static final int T__11=11;
-    public static final int T__33=33;
-    public static final int T__12=12;
-    public static final int T__34=34;
-    public static final int T__13=13;
-    public static final int T__35=35;
-    public static final int T__14=14;
-    public static final int T__36=36;
-    public static final int EOF=-1;
-    public static final int T__30=30;
-    public static final int T__31=31;
-    public static final int T__32=32;
-    public static final int RULE_ID=4;
-    public static final int RULE_WS=9;
-    public static final int RULE_ANY_OTHER=10;
-    public static final int T__26=26;
-    public static final int T__27=27;
-    public static final int T__28=28;
-    public static final int RULE_INT=5;
-    public static final int T__29=29;
-    public static final int T__22=22;
-    public static final int RULE_ML_COMMENT=7;
-    public static final int T__23=23;
-    public static final int T__24=24;
-    public static final int T__25=25;
-    public static final int T__40=40;
-    public static final int T__20=20;
-    public static final int T__21=21;
-
-    // delegates
-    // delegators
-
-    public InternalFlaDslLexer() {;} 
-    public InternalFlaDslLexer(CharStream input) {
-        this(input, new RecognizerSharedState());
-    }
-    public InternalFlaDslLexer(CharStream input, RecognizerSharedState state) {
-        super(input,state);
-
-    }
-    public String getGrammarFileName() { return "InternalFlaDsl.g"; }
-
-    // $ANTLR start "T__11"
-    public final void mT__11() throws RecognitionException {
-        try {
-            int _type = T__11;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:11:7: ( 'undefined' )
-            // InternalFlaDsl.g:11:9: 'undefined'
-            {
-            match("undefined"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__11"
-
-    // $ANTLR start "T__12"
-    public final void mT__12() throws RecognitionException {
-        try {
-            int _type = T__12;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:12:7: ( 'early' )
-            // InternalFlaDsl.g:12:9: 'early'
-            {
-            match("early"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__12"
-
-    // $ANTLR start "T__13"
-    public final void mT__13() throws RecognitionException {
-        try {
-            int _type = T__13;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:13:7: ( 'late' )
-            // InternalFlaDsl.g:13:9: 'late'
-            {
-            match("late"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__13"
-
-    // $ANTLR start "T__14"
-    public final void mT__14() throws RecognitionException {
-        try {
-            int _type = T__14;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:14:7: ( 'commission' )
-            // InternalFlaDsl.g:14:9: 'commission'
-            {
-            match("commission"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__14"
-
-    // $ANTLR start "T__15"
-    public final void mT__15() throws RecognitionException {
-        try {
-            int _type = T__15;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:15:7: ( 'omission' )
-            // InternalFlaDsl.g:15:9: 'omission'
-            {
-            match("omission"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__15"
-
-    // $ANTLR start "T__16"
-    public final void mT__16() throws RecognitionException {
-        try {
-            int _type = T__16;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:16:7: ( 'valueSubtle' )
-            // InternalFlaDsl.g:16:9: 'valueSubtle'
-            {
-            match("valueSubtle"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__16"
-
-    // $ANTLR start "T__17"
-    public final void mT__17() throws RecognitionException {
-        try {
-            int _type = T__17;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:17:7: ( 'valueCoarse' )
-            // InternalFlaDsl.g:17:9: 'valueCoarse'
-            {
-            match("valueCoarse"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__17"
-
-    // $ANTLR start "T__18"
-    public final void mT__18() throws RecognitionException {
-        try {
-            int _type = T__18;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:18:7: ( 'incompletion' )
-            // InternalFlaDsl.g:18:9: 'incompletion'
-            {
-            match("incompletion"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__18"
-
-    // $ANTLR start "T__19"
-    public final void mT__19() throws RecognitionException {
-        try {
-            int _type = T__19;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:19:7: ( 'none' )
-            // InternalFlaDsl.g:19:9: 'none'
-            {
-            match("none"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__19"
-
-    // $ANTLR start "T__20"
-    public final void mT__20() throws RecognitionException {
-        try {
-            int _type = T__20;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:20:7: ( 'unspecified' )
-            // InternalFlaDsl.g:20:9: 'unspecified'
-            {
-            match("unspecified"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__20"
-
-    // $ANTLR start "T__21"
-    public final void mT__21() throws RecognitionException {
-        try {
-            int _type = T__21;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:21:7: ( 'inconsistency' )
-            // InternalFlaDsl.g:21:9: 'inconsistency'
-            {
-            match("inconsistency"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__21"
-
-    // $ANTLR start "T__22"
-    public final void mT__22() throws RecognitionException {
-        try {
-            int _type = T__22;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:22:7: ( 'interference' )
-            // InternalFlaDsl.g:22:9: 'interference'
-            {
-            match("interference"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__22"
-
-    // $ANTLR start "T__23"
-    public final void mT__23() throws RecognitionException {
-        try {
-            int _type = T__23;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:23:7: ( 'impermanence' )
-            // InternalFlaDsl.g:23:9: 'impermanence'
-            {
-            match("impermanence"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__23"
-
-    // $ANTLR start "T__24"
-    public final void mT__24() throws RecognitionException {
-        try {
-            int _type = T__24;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:24:7: ( 'all_or_nothing' )
-            // InternalFlaDsl.g:24:9: 'all_or_nothing'
-            {
-            match("all_or_nothing"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__24"
-
-    // $ANTLR start "T__25"
-    public final void mT__25() throws RecognitionException {
-        try {
-            int _type = T__25;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:25:7: ( 'all_or_compensation' )
-            // InternalFlaDsl.g:25:9: 'all_or_compensation'
-            {
-            match("all_or_compensation"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__25"
-
-    // $ANTLR start "T__26"
-    public final void mT__26() throws RecognitionException {
-        try {
-            int _type = T__26;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:26:7: ( 'full_consistency' )
-            // InternalFlaDsl.g:26:9: 'full_consistency'
-            {
-            match("full_consistency"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__26"
-
-    // $ANTLR start "T__27"
-    public final void mT__27() throws RecognitionException {
-        try {
-            int _type = T__27;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:27:7: ( 'range_violation_allowed' )
-            // InternalFlaDsl.g:27:9: 'range_violation_allowed'
-            {
-            match("range_violation_allowed"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__27"
-
-    // $ANTLR start "T__28"
-    public final void mT__28() throws RecognitionException {
-        try {
-            int _type = T__28;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:28:7: ( 'serializable' )
-            // InternalFlaDsl.g:28:9: 'serializable'
-            {
-            match("serializable"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__28"
-
-    // $ANTLR start "T__29"
-    public final void mT__29() throws RecognitionException {
-        try {
-            int _type = T__29;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:29:7: ( 'portable_level' )
-            // InternalFlaDsl.g:29:9: 'portable_level'
-            {
-            match("portable_level"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__29"
-
-    // $ANTLR start "T__30"
-    public final void mT__30() throws RecognitionException {
-        try {
-            int _type = T__30;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:30:7: ( 'no_loss' )
-            // InternalFlaDsl.g:30:9: 'no_loss'
-            {
-            match("no_loss"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__30"
-
-    // $ANTLR start "T__31"
-    public final void mT__31() throws RecognitionException {
-        try {
-            int _type = T__31;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:31:7: ( 'partial_loss_allowed' )
-            // InternalFlaDsl.g:31:9: 'partial_loss_allowed'
-            {
-            match("partial_loss_allowed"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__31"
-
-    // $ANTLR start "T__32"
-    public final void mT__32() throws RecognitionException {
-        try {
-            int _type = T__32;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:32:7: ( 'FLA:' )
-            // InternalFlaDsl.g:32:9: 'FLA:'
-            {
-            match("FLA:"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__32"
-
-    // $ANTLR start "T__33"
-    public final void mT__33() throws RecognitionException {
-        try {
-            int _type = T__33;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:33:7: ( '->' )
-            // InternalFlaDsl.g:33:9: '->'
-            {
-            match("->"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__33"
-
-    // $ANTLR start "T__34"
-    public final void mT__34() throws RecognitionException {
-        try {
-            int _type = T__34;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:34:7: ( ';' )
-            // InternalFlaDsl.g:34:9: ';'
-            {
-            match(';'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__34"
-
-    // $ANTLR start "T__35"
-    public final void mT__35() throws RecognitionException {
-        try {
-            int _type = T__35;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:35:7: ( ',' )
-            // InternalFlaDsl.g:35:9: ','
-            {
-            match(','); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__35"
-
-    // $ANTLR start "T__36"
-    public final void mT__36() throws RecognitionException {
-        try {
-            int _type = T__36;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:36:7: ( '.' )
-            // InternalFlaDsl.g:36:9: '.'
-            {
-            match('.'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__36"
-
-    // $ANTLR start "T__37"
-    public final void mT__37() throws RecognitionException {
-        try {
-            int _type = T__37;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:37:7: ( '{' )
-            // InternalFlaDsl.g:37:9: '{'
-            {
-            match('{'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__37"
-
-    // $ANTLR start "T__38"
-    public final void mT__38() throws RecognitionException {
-        try {
-            int _type = T__38;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:38:7: ( '}' )
-            // InternalFlaDsl.g:38:9: '}'
-            {
-            match('}'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__38"
-
-    // $ANTLR start "T__39"
-    public final void mT__39() throws RecognitionException {
-        try {
-            int _type = T__39;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:39:7: ( 'noFailure' )
-            // InternalFlaDsl.g:39:9: 'noFailure'
-            {
-            match("noFailure"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__39"
-
-    // $ANTLR start "T__40"
-    public final void mT__40() throws RecognitionException {
-        try {
-            int _type = T__40;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:40:7: ( 'wildcard' )
-            // InternalFlaDsl.g:40:9: 'wildcard'
-            {
-            match("wildcard"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__40"
-
-    // $ANTLR start "RULE_ID"
-    public final void mRULE_ID() throws RecognitionException {
-        try {
-            int _type = RULE_ID;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:3578:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalFlaDsl.g:3578:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
-            {
-            // InternalFlaDsl.g:3578:11: ( '^' )?
-            int alt1=2;
-            int LA1_0 = input.LA(1);
-
-            if ( (LA1_0=='^') ) {
-                alt1=1;
-            }
-            switch (alt1) {
-                case 1 :
-                    // InternalFlaDsl.g:3578:11: '^'
-                    {
-                    match('^'); 
-
-                    }
-                    break;
-
-            }
-
-            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
-                input.consume();
-
-            }
-            else {
-                MismatchedSetException mse = new MismatchedSetException(null,input);
-                recover(mse);
-                throw mse;}
-
-            // InternalFlaDsl.g:3578:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
-            loop2:
-            do {
-                int alt2=2;
-                int LA2_0 = input.LA(1);
-
-                if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
-                    alt2=1;
-                }
-
-
-                switch (alt2) {
-            	case 1 :
-            	    // InternalFlaDsl.g:
-            	    {
-            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop2;
-                }
-            } while (true);
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_ID"
-
-    // $ANTLR start "RULE_INT"
-    public final void mRULE_INT() throws RecognitionException {
-        try {
-            int _type = RULE_INT;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:3580:10: ( ( '0' .. '9' )+ )
-            // InternalFlaDsl.g:3580:12: ( '0' .. '9' )+
-            {
-            // InternalFlaDsl.g:3580:12: ( '0' .. '9' )+
-            int cnt3=0;
-            loop3:
-            do {
-                int alt3=2;
-                int LA3_0 = input.LA(1);
-
-                if ( ((LA3_0>='0' && LA3_0<='9')) ) {
-                    alt3=1;
-                }
-
-
-                switch (alt3) {
-            	case 1 :
-            	    // InternalFlaDsl.g:3580:13: '0' .. '9'
-            	    {
-            	    matchRange('0','9'); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt3 >= 1 ) break loop3;
-                        EarlyExitException eee =
-                            new EarlyExitException(3, input);
-                        throw eee;
-                }
-                cnt3++;
-            } while (true);
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_INT"
-
-    // $ANTLR start "RULE_STRING"
-    public final void mRULE_STRING() throws RecognitionException {
-        try {
-            int _type = RULE_STRING;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:3582:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
-            // InternalFlaDsl.g:3582:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            {
-            // InternalFlaDsl.g:3582:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            int alt6=2;
-            int LA6_0 = input.LA(1);
-
-            if ( (LA6_0=='\"') ) {
-                alt6=1;
-            }
-            else if ( (LA6_0=='\'') ) {
-                alt6=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("", 6, 0, input);
-
-                throw nvae;
-            }
-            switch (alt6) {
-                case 1 :
-                    // InternalFlaDsl.g:3582:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
-                    {
-                    match('\"'); 
-                    // InternalFlaDsl.g:3582:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
-                    loop4:
-                    do {
-                        int alt4=3;
-                        int LA4_0 = input.LA(1);
-
-                        if ( (LA4_0=='\\') ) {
-                            alt4=1;
-                        }
-                        else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
-                            alt4=2;
-                        }
-
-
-                        switch (alt4) {
-                    	case 1 :
-                    	    // InternalFlaDsl.g:3582:21: '\\\\' .
-                    	    {
-                    	    match('\\'); 
-                    	    matchAny(); 
-
-                    	    }
-                    	    break;
-                    	case 2 :
-                    	    // InternalFlaDsl.g:3582:28: ~ ( ( '\\\\' | '\"' ) )
-                    	    {
-                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
-                    	        input.consume();
-
-                    	    }
-                    	    else {
-                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
-                    	        recover(mse);
-                    	        throw mse;}
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop4;
-                        }
-                    } while (true);
-
-                    match('\"'); 
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:3582:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
-                    {
-                    match('\''); 
-                    // InternalFlaDsl.g:3582:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
-                    loop5:
-                    do {
-                        int alt5=3;
-                        int LA5_0 = input.LA(1);
-
-                        if ( (LA5_0=='\\') ) {
-                            alt5=1;
-                        }
-                        else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
-                            alt5=2;
-                        }
-
-
-                        switch (alt5) {
-                    	case 1 :
-                    	    // InternalFlaDsl.g:3582:54: '\\\\' .
-                    	    {
-                    	    match('\\'); 
-                    	    matchAny(); 
-
-                    	    }
-                    	    break;
-                    	case 2 :
-                    	    // InternalFlaDsl.g:3582:61: ~ ( ( '\\\\' | '\\'' ) )
-                    	    {
-                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
-                    	        input.consume();
-
-                    	    }
-                    	    else {
-                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
-                    	        recover(mse);
-                    	        throw mse;}
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop5;
-                        }
-                    } while (true);
-
-                    match('\''); 
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_STRING"
-
-    // $ANTLR start "RULE_ML_COMMENT"
-    public final void mRULE_ML_COMMENT() throws RecognitionException {
-        try {
-            int _type = RULE_ML_COMMENT;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:3584:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalFlaDsl.g:3584:19: '/*' ( options {greedy=false; } : . )* '*/'
-            {
-            match("/*"); 
-
-            // InternalFlaDsl.g:3584:24: ( options {greedy=false; } : . )*
-            loop7:
-            do {
-                int alt7=2;
-                int LA7_0 = input.LA(1);
-
-                if ( (LA7_0=='*') ) {
-                    int LA7_1 = input.LA(2);
-
-                    if ( (LA7_1=='/') ) {
-                        alt7=2;
-                    }
-                    else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
-                        alt7=1;
-                    }
-
-
-                }
-                else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
-                    alt7=1;
-                }
-
-
-                switch (alt7) {
-            	case 1 :
-            	    // InternalFlaDsl.g:3584:52: .
-            	    {
-            	    matchAny(); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop7;
-                }
-            } while (true);
-
-            match("*/"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_ML_COMMENT"
-
-    // $ANTLR start "RULE_SL_COMMENT"
-    public final void mRULE_SL_COMMENT() throws RecognitionException {
-        try {
-            int _type = RULE_SL_COMMENT;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:3586:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalFlaDsl.g:3586:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
-            {
-            match("//"); 
-
-            // InternalFlaDsl.g:3586:24: (~ ( ( '\\n' | '\\r' ) ) )*
-            loop8:
-            do {
-                int alt8=2;
-                int LA8_0 = input.LA(1);
-
-                if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
-                    alt8=1;
-                }
-
-
-                switch (alt8) {
-            	case 1 :
-            	    // InternalFlaDsl.g:3586:24: ~ ( ( '\\n' | '\\r' ) )
-            	    {
-            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop8;
-                }
-            } while (true);
-
-            // InternalFlaDsl.g:3586:40: ( ( '\\r' )? '\\n' )?
-            int alt10=2;
-            int LA10_0 = input.LA(1);
-
-            if ( (LA10_0=='\n'||LA10_0=='\r') ) {
-                alt10=1;
-            }
-            switch (alt10) {
-                case 1 :
-                    // InternalFlaDsl.g:3586:41: ( '\\r' )? '\\n'
-                    {
-                    // InternalFlaDsl.g:3586:41: ( '\\r' )?
-                    int alt9=2;
-                    int LA9_0 = input.LA(1);
-
-                    if ( (LA9_0=='\r') ) {
-                        alt9=1;
-                    }
-                    switch (alt9) {
-                        case 1 :
-                            // InternalFlaDsl.g:3586:41: '\\r'
-                            {
-                            match('\r'); 
-
-                            }
-                            break;
-
-                    }
-
-                    match('\n'); 
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_SL_COMMENT"
-
-    // $ANTLR start "RULE_WS"
-    public final void mRULE_WS() throws RecognitionException {
-        try {
-            int _type = RULE_WS;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:3588:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalFlaDsl.g:3588:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
-            {
-            // InternalFlaDsl.g:3588:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
-            int cnt11=0;
-            loop11:
-            do {
-                int alt11=2;
-                int LA11_0 = input.LA(1);
-
-                if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
-                    alt11=1;
-                }
-
-
-                switch (alt11) {
-            	case 1 :
-            	    // InternalFlaDsl.g:
-            	    {
-            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt11 >= 1 ) break loop11;
-                        EarlyExitException eee =
-                            new EarlyExitException(11, input);
-                        throw eee;
-                }
-                cnt11++;
-            } while (true);
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_WS"
-
-    // $ANTLR start "RULE_ANY_OTHER"
-    public final void mRULE_ANY_OTHER() throws RecognitionException {
-        try {
-            int _type = RULE_ANY_OTHER;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalFlaDsl.g:3590:16: ( . )
-            // InternalFlaDsl.g:3590:18: .
-            {
-            matchAny(); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_ANY_OTHER"
-
-    public void mTokens() throws RecognitionException {
-        // InternalFlaDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt12=37;
-        alt12 = dfa12.predict(input);
-        switch (alt12) {
-            case 1 :
-                // InternalFlaDsl.g:1:10: T__11
-                {
-                mT__11(); 
-
-                }
-                break;
-            case 2 :
-                // InternalFlaDsl.g:1:16: T__12
-                {
-                mT__12(); 
-
-                }
-                break;
-            case 3 :
-                // InternalFlaDsl.g:1:22: T__13
-                {
-                mT__13(); 
-
-                }
-                break;
-            case 4 :
-                // InternalFlaDsl.g:1:28: T__14
-                {
-                mT__14(); 
-
-                }
-                break;
-            case 5 :
-                // InternalFlaDsl.g:1:34: T__15
-                {
-                mT__15(); 
-
-                }
-                break;
-            case 6 :
-                // InternalFlaDsl.g:1:40: T__16
-                {
-                mT__16(); 
-
-                }
-                break;
-            case 7 :
-                // InternalFlaDsl.g:1:46: T__17
-                {
-                mT__17(); 
-
-                }
-                break;
-            case 8 :
-                // InternalFlaDsl.g:1:52: T__18
-                {
-                mT__18(); 
-
-                }
-                break;
-            case 9 :
-                // InternalFlaDsl.g:1:58: T__19
-                {
-                mT__19(); 
-
-                }
-                break;
-            case 10 :
-                // InternalFlaDsl.g:1:64: T__20
-                {
-                mT__20(); 
-
-                }
-                break;
-            case 11 :
-                // InternalFlaDsl.g:1:70: T__21
-                {
-                mT__21(); 
-
-                }
-                break;
-            case 12 :
-                // InternalFlaDsl.g:1:76: T__22
-                {
-                mT__22(); 
-
-                }
-                break;
-            case 13 :
-                // InternalFlaDsl.g:1:82: T__23
-                {
-                mT__23(); 
-
-                }
-                break;
-            case 14 :
-                // InternalFlaDsl.g:1:88: T__24
-                {
-                mT__24(); 
-
-                }
-                break;
-            case 15 :
-                // InternalFlaDsl.g:1:94: T__25
-                {
-                mT__25(); 
-
-                }
-                break;
-            case 16 :
-                // InternalFlaDsl.g:1:100: T__26
-                {
-                mT__26(); 
-
-                }
-                break;
-            case 17 :
-                // InternalFlaDsl.g:1:106: T__27
-                {
-                mT__27(); 
-
-                }
-                break;
-            case 18 :
-                // InternalFlaDsl.g:1:112: T__28
-                {
-                mT__28(); 
-
-                }
-                break;
-            case 19 :
-                // InternalFlaDsl.g:1:118: T__29
-                {
-                mT__29(); 
-
-                }
-                break;
-            case 20 :
-                // InternalFlaDsl.g:1:124: T__30
-                {
-                mT__30(); 
-
-                }
-                break;
-            case 21 :
-                // InternalFlaDsl.g:1:130: T__31
-                {
-                mT__31(); 
-
-                }
-                break;
-            case 22 :
-                // InternalFlaDsl.g:1:136: T__32
-                {
-                mT__32(); 
-
-                }
-                break;
-            case 23 :
-                // InternalFlaDsl.g:1:142: T__33
-                {
-                mT__33(); 
-
-                }
-                break;
-            case 24 :
-                // InternalFlaDsl.g:1:148: T__34
-                {
-                mT__34(); 
-
-                }
-                break;
-            case 25 :
-                // InternalFlaDsl.g:1:154: T__35
-                {
-                mT__35(); 
-
-                }
-                break;
-            case 26 :
-                // InternalFlaDsl.g:1:160: T__36
-                {
-                mT__36(); 
-
-                }
-                break;
-            case 27 :
-                // InternalFlaDsl.g:1:166: T__37
-                {
-                mT__37(); 
-
-                }
-                break;
-            case 28 :
-                // InternalFlaDsl.g:1:172: T__38
-                {
-                mT__38(); 
-
-                }
-                break;
-            case 29 :
-                // InternalFlaDsl.g:1:178: T__39
-                {
-                mT__39(); 
-
-                }
-                break;
-            case 30 :
-                // InternalFlaDsl.g:1:184: T__40
-                {
-                mT__40(); 
-
-                }
-                break;
-            case 31 :
-                // InternalFlaDsl.g:1:190: RULE_ID
-                {
-                mRULE_ID(); 
-
-                }
-                break;
-            case 32 :
-                // InternalFlaDsl.g:1:198: RULE_INT
-                {
-                mRULE_INT(); 
-
-                }
-                break;
-            case 33 :
-                // InternalFlaDsl.g:1:207: RULE_STRING
-                {
-                mRULE_STRING(); 
-
-                }
-                break;
-            case 34 :
-                // InternalFlaDsl.g:1:219: RULE_ML_COMMENT
-                {
-                mRULE_ML_COMMENT(); 
-
-                }
-                break;
-            case 35 :
-                // InternalFlaDsl.g:1:235: RULE_SL_COMMENT
-                {
-                mRULE_SL_COMMENT(); 
-
-                }
-                break;
-            case 36 :
-                // InternalFlaDsl.g:1:251: RULE_WS
-                {
-                mRULE_WS(); 
-
-                }
-                break;
-            case 37 :
-                // InternalFlaDsl.g:1:259: RULE_ANY_OTHER
-                {
-                mRULE_ANY_OTHER(); 
-
-                }
-                break;
-
-        }
-
-    }
-
-
-    protected DFA12 dfa12 = new DFA12(this);
-    static final String DFA12_eotS =
-        "\1\uffff\16\37\1\35\5\uffff\1\37\1\35\2\uffff\3\35\2\uffff\1\37\1\uffff\17\37\6\uffff\1\37\5\uffff\30\37\1\150\6\37\1\160\10\37\1\uffff\3\37\1\174\1\uffff\7\37\1\uffff\13\37\1\uffff\33\37\1\u00ab\13\37\1\u00b8\6\37\1\uffff\10\37\1\u00c7\1\u00c8\2\37\1\uffff\6\37\1\u00d1\7\37\2\uffff\1\37\1\u00da\6\37\1\uffff\7\37\1\u00e8\1\uffff\1\u00e9\1\u00ea\13\37\3\uffff\1\u00f6\1\37\1\u00f8\1\u00f9\4\37\1\u00fe\2\37\1\uffff\1\u0101\2\uffff\4\37\1\uffff\2\37\1\uffff\1\u0108\3\37\1\u010c\1\37\1\uffff\3\37\1\uffff\2\37\1\u0113\3\37\1\uffff\5\37\1\u011c\2\37\1\uffff\1\37\1\u0120\1\37\1\uffff\1\37\1\u0123\1\uffff";
-    static final String DFA12_eofS =
-        "\u0124\uffff";
-    static final String DFA12_minS =
-        "\1\0\1\156\2\141\1\157\1\155\1\141\1\155\1\157\1\154\1\165\1\141\1\145\1\141\1\114\1\76\5\uffff\1\151\1\101\2\uffff\2\0\1\52\2\uffff\1\144\1\uffff\1\162\1\164\1\155\1\151\1\154\1\143\1\160\1\106\2\154\1\156\3\162\1\101\6\uffff\1\154\5\uffff\1\145\1\160\1\154\1\145\1\155\1\163\1\165\1\157\3\145\1\154\1\141\1\137\1\154\1\147\1\151\2\164\1\72\1\144\1\146\1\145\1\171\1\60\1\151\1\163\1\145\1\155\2\162\1\60\1\157\1\151\1\157\1\137\1\145\2\141\1\151\1\uffff\1\143\1\151\1\143\1\60\1\uffff\1\163\1\151\1\103\1\160\1\163\1\146\1\155\1\uffff\1\163\1\154\1\162\1\143\1\137\1\154\1\142\2\141\1\156\1\151\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\163\1\165\1\137\1\157\1\166\1\151\2\154\1\162\1\145\1\146\1\151\1\156\1\142\1\141\1\145\1\163\1\162\1\156\1\60\1\162\1\143\1\156\1\151\1\172\1\145\1\137\2\144\1\151\1\157\1\60\1\164\1\162\2\164\2\145\1\uffff\1\145\2\157\1\163\1\157\1\141\1\137\1\154\2\60\1\145\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\60\1\164\1\155\1\151\1\154\1\142\1\154\1\157\2\uffff\1\144\1\60\2\145\1\157\1\156\2\143\1\uffff\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\60\1\uffff\2\60\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\60\1\171\2\60\2\156\1\145\1\151\1\60\1\145\1\137\1\uffff\1\60\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\60\1\141\1\143\1\156\1\60\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\60\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\60\1\157\1\144\1\uffff\1\167\1\60\1\145\1\uffff\1\144\1\60\1\uffff";
-    static final String DFA12_maxS =
-        "\1\uffff\1\156\2\141\1\157\1\155\1\141\1\156\1\157\1\154\1\165\1\141\1\145\1\157\1\114\1\76\5\uffff\1\151\1\172\2\uffff\2\uffff\1\57\2\uffff\1\163\1\uffff\1\162\1\164\1\155\1\151\1\154\1\164\1\160\1\156\2\154\1\156\3\162\1\101\6\uffff\1\154\5\uffff\1\145\1\160\1\154\1\145\1\155\1\163\1\165\1\157\3\145\1\154\1\141\1\137\1\154\1\147\1\151\2\164\1\72\1\144\1\146\1\145\1\171\1\172\1\151\1\163\1\145\1\156\2\162\1\172\1\157\1\151\1\157\1\137\1\145\2\141\1\151\1\uffff\1\143\1\151\1\143\1\172\1\uffff\1\163\1\151\1\123\1\160\1\163\1\146\1\155\1\uffff\1\163\1\154\1\162\1\143\1\137\1\154\1\142\2\141\1\156\1\151\1\uffff\1\163\1\157\1\165\1\157\1\154\1\151\1\145\1\141\1\163\1\165\1\137\1\157\1\166\1\151\2\154\1\162\1\145\1\146\1\151\1\156\1\142\1\141\1\145\1\163\1\162\1\156\1\172\1\162\2\156\1\151\1\172\1\145\1\137\2\144\1\151\1\157\1\172\1\164\1\162\2\164\2\145\1\uffff\1\145\2\157\1\163\1\157\1\141\1\137\1\154\2\172\1\145\1\156\1\uffff\1\154\1\163\1\151\1\145\2\156\1\172\1\164\1\155\1\151\1\154\1\142\1\154\1\157\2\uffff\1\144\1\172\2\145\1\157\1\156\2\143\1\uffff\1\150\1\160\1\163\1\141\1\154\1\145\1\163\1\172\1\uffff\2\172\1\156\1\143\2\145\1\151\1\145\2\164\1\145\1\166\1\163\3\uffff\1\172\1\171\2\172\2\156\1\145\1\151\1\172\1\145\1\137\1\uffff\1\172\2\uffff\1\147\1\163\1\156\1\157\1\uffff\1\154\1\141\1\uffff\1\172\1\141\1\143\1\156\1\172\1\154\1\uffff\1\164\1\171\1\137\1\uffff\1\154\1\151\1\172\1\141\2\157\1\uffff\1\154\1\167\1\156\1\154\1\145\1\172\1\157\1\144\1\uffff\1\167\1\172\1\145\1\uffff\1\144\1\172\1\uffff";
-    static final String DFA12_acceptS =
-        "\20\uffff\1\30\1\31\1\32\1\33\1\34\2\uffff\1\37\1\40\3\uffff\1\44\1\45\1\uffff\1\37\17\uffff\1\27\1\30\1\31\1\32\1\33\1\34\1\uffff\1\40\1\41\1\42\1\43\1\44\50\uffff\1\26\4\uffff\1\3\7\uffff\1\11\13\uffff\1\2\56\uffff\1\24\14\uffff\1\5\16\uffff\1\36\1\1\10\uffff\1\35\10\uffff\1\4\15\uffff\1\12\1\6\1\7\13\uffff\1\10\1\uffff\1\14\1\15\4\uffff\1\22\2\uffff\1\13\6\uffff\1\16\3\uffff\1\23\6\uffff\1\20\10\uffff\1\17\3\uffff\1\25\2\uffff\1\21";
-    static final String DFA12_specialS =
-        "\1\2\30\uffff\1\0\1\1\u0109\uffff}>";
-    static final String[] DFA12_transitionS = {
-            "\11\35\2\34\2\35\1\34\22\35\1\34\1\35\1\31\4\35\1\32\4\35\1\21\1\17\1\22\1\33\12\30\1\35\1\20\5\35\5\27\1\16\24\27\3\35\1\26\1\27\1\35\1\11\1\27\1\4\1\27\1\2\1\12\2\27\1\7\2\27\1\3\1\27\1\10\1\5\1\15\1\27\1\13\1\14\1\27\1\1\1\6\1\25\3\27\1\23\1\35\1\24\uff82\35",
-            "\1\36",
-            "\1\40",
-            "\1\41",
-            "\1\42",
-            "\1\43",
-            "\1\44",
-            "\1\46\1\45",
-            "\1\47",
-            "\1\50",
-            "\1\51",
-            "\1\52",
-            "\1\53",
-            "\1\55\15\uffff\1\54",
-            "\1\56",
-            "\1\57",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\65",
-            "\32\37\4\uffff\1\37\1\uffff\32\37",
-            "",
-            "",
-            "\0\67",
-            "\0\67",
-            "\1\70\4\uffff\1\71",
-            "",
-            "",
-            "\1\73\16\uffff\1\74",
-            "",
-            "\1\75",
-            "\1\76",
-            "\1\77",
-            "\1\100",
-            "\1\101",
-            "\1\102\20\uffff\1\103",
-            "\1\104",
-            "\1\107\30\uffff\1\106\16\uffff\1\105",
-            "\1\110",
-            "\1\111",
-            "\1\112",
-            "\1\113",
-            "\1\114",
-            "\1\115",
-            "\1\116",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\117",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\120",
-            "\1\121",
-            "\1\122",
-            "\1\123",
-            "\1\124",
-            "\1\125",
-            "\1\126",
-            "\1\127",
-            "\1\130",
-            "\1\131",
-            "\1\132",
-            "\1\133",
-            "\1\134",
-            "\1\135",
-            "\1\136",
-            "\1\137",
-            "\1\140",
-            "\1\141",
-            "\1\142",
-            "\1\143",
-            "\1\144",
-            "\1\145",
-            "\1\146",
-            "\1\147",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\151",
-            "\1\152",
-            "\1\153",
-            "\1\154\1\155",
-            "\1\156",
-            "\1\157",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\161",
-            "\1\162",
-            "\1\163",
-            "\1\164",
-            "\1\165",
-            "\1\166",
-            "\1\167",
-            "\1\170",
-            "",
-            "\1\171",
-            "\1\172",
-            "\1\173",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "",
-            "\1\175",
-            "\1\176",
-            "\1\u0080\17\uffff\1\177",
-            "\1\u0081",
-            "\1\u0082",
-            "\1\u0083",
-            "\1\u0084",
-            "",
-            "\1\u0085",
-            "\1\u0086",
-            "\1\u0087",
-            "\1\u0088",
-            "\1\u0089",
-            "\1\u008a",
-            "\1\u008b",
-            "\1\u008c",
-            "\1\u008d",
-            "\1\u008e",
-            "\1\u008f",
-            "",
-            "\1\u0090",
-            "\1\u0091",
-            "\1\u0092",
-            "\1\u0093",
-            "\1\u0094",
-            "\1\u0095",
-            "\1\u0096",
-            "\1\u0097",
-            "\1\u0098",
-            "\1\u0099",
-            "\1\u009a",
-            "\1\u009b",
-            "\1\u009c",
-            "\1\u009d",
-            "\1\u009e",
-            "\1\u009f",
-            "\1\u00a0",
-            "\1\u00a1",
-            "\1\u00a2",
-            "\1\u00a3",
-            "\1\u00a4",
-            "\1\u00a5",
-            "\1\u00a6",
-            "\1\u00a7",
-            "\1\u00a8",
-            "\1\u00a9",
-            "\1\u00aa",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u00ac",
-            "\1\u00ae\12\uffff\1\u00ad",
-            "\1\u00af",
-            "\1\u00b0",
-            "\1\u00b1",
-            "\1\u00b2",
-            "\1\u00b3",
-            "\1\u00b4",
-            "\1\u00b5",
-            "\1\u00b6",
-            "\1\u00b7",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u00b9",
-            "\1\u00ba",
-            "\1\u00bb",
-            "\1\u00bc",
-            "\1\u00bd",
-            "\1\u00be",
-            "",
-            "\1\u00bf",
-            "\1\u00c0",
-            "\1\u00c1",
-            "\1\u00c2",
-            "\1\u00c3",
-            "\1\u00c4",
-            "\1\u00c5",
-            "\1\u00c6",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u00c9",
-            "\1\u00ca",
-            "",
-            "\1\u00cb",
-            "\1\u00cc",
-            "\1\u00cd",
-            "\1\u00ce",
-            "\1\u00cf",
-            "\1\u00d0",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u00d2",
-            "\1\u00d3",
-            "\1\u00d4",
-            "\1\u00d5",
-            "\1\u00d6",
-            "\1\u00d7",
-            "\1\u00d8",
-            "",
-            "",
-            "\1\u00d9",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u00db",
-            "\1\u00dc",
-            "\1\u00dd",
-            "\1\u00de",
-            "\1\u00df",
-            "\1\u00e0",
-            "",
-            "\1\u00e1",
-            "\1\u00e2",
-            "\1\u00e3",
-            "\1\u00e4",
-            "\1\u00e5",
-            "\1\u00e6",
-            "\1\u00e7",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u00eb",
-            "\1\u00ec",
-            "\1\u00ed",
-            "\1\u00ee",
-            "\1\u00ef",
-            "\1\u00f0",
-            "\1\u00f1",
-            "\1\u00f2",
-            "\1\u00f3",
-            "\1\u00f4",
-            "\1\u00f5",
-            "",
-            "",
-            "",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u00f7",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u00fa",
-            "\1\u00fb",
-            "\1\u00fc",
-            "\1\u00fd",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u00ff",
-            "\1\u0100",
-            "",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "",
-            "",
-            "\1\u0102",
-            "\1\u0103",
-            "\1\u0104",
-            "\1\u0105",
-            "",
-            "\1\u0106",
-            "\1\u0107",
-            "",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u0109",
-            "\1\u010a",
-            "\1\u010b",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u010d",
-            "",
-            "\1\u010e",
-            "\1\u010f",
-            "\1\u0110",
-            "",
-            "\1\u0111",
-            "\1\u0112",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u0114",
-            "\1\u0115",
-            "\1\u0116",
-            "",
-            "\1\u0117",
-            "\1\u0118",
-            "\1\u0119",
-            "\1\u011a",
-            "\1\u011b",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u011d",
-            "\1\u011e",
-            "",
-            "\1\u011f",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            "\1\u0121",
-            "",
-            "\1\u0122",
-            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
-            ""
-    };
-
-    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
-    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
-    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
-    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
-    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
-    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
-    static final short[][] DFA12_transition;
-
-    static {
-        int numStates = DFA12_transitionS.length;
-        DFA12_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
-            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
-        }
-    }
-
-    class DFA12 extends DFA {
-
-        public DFA12(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 12;
-            this.eot = DFA12_eot;
-            this.eof = DFA12_eof;
-            this.min = DFA12_min;
-            this.max = DFA12_max;
-            this.accept = DFA12_accept;
-            this.special = DFA12_special;
-            this.transition = DFA12_transition;
-        }
-        public String getDescription() {
-            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
-        }
-        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
-            IntStream input = _input;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA12_25 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 55;}
-
-                        else s = 29;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
-                        int LA12_26 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA12_26>='\u0000' && LA12_26<='\uFFFF')) ) {s = 55;}
-
-                        else s = 29;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
-                        int LA12_0 = input.LA(1);
-
-                        s = -1;
-                        if ( (LA12_0=='u') ) {s = 1;}
-
-                        else if ( (LA12_0=='e') ) {s = 2;}
-
-                        else if ( (LA12_0=='l') ) {s = 3;}
-
-                        else if ( (LA12_0=='c') ) {s = 4;}
-
-                        else if ( (LA12_0=='o') ) {s = 5;}
-
-                        else if ( (LA12_0=='v') ) {s = 6;}
-
-                        else if ( (LA12_0=='i') ) {s = 7;}
-
-                        else if ( (LA12_0=='n') ) {s = 8;}
-
-                        else if ( (LA12_0=='a') ) {s = 9;}
-
-                        else if ( (LA12_0=='f') ) {s = 10;}
-
-                        else if ( (LA12_0=='r') ) {s = 11;}
-
-                        else if ( (LA12_0=='s') ) {s = 12;}
-
-                        else if ( (LA12_0=='p') ) {s = 13;}
-
-                        else if ( (LA12_0=='F') ) {s = 14;}
-
-                        else if ( (LA12_0=='-') ) {s = 15;}
-
-                        else if ( (LA12_0==';') ) {s = 16;}
-
-                        else if ( (LA12_0==',') ) {s = 17;}
-
-                        else if ( (LA12_0=='.') ) {s = 18;}
-
-                        else if ( (LA12_0=='{') ) {s = 19;}
-
-                        else if ( (LA12_0=='}') ) {s = 20;}
-
-                        else if ( (LA12_0=='w') ) {s = 21;}
-
-                        else if ( (LA12_0=='^') ) {s = 22;}
-
-                        else if ( ((LA12_0>='A' && LA12_0<='E')||(LA12_0>='G' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||LA12_0=='m'||LA12_0=='q'||LA12_0=='t'||(LA12_0>='x' && LA12_0<='z')) ) {s = 23;}
-
-                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 24;}
-
-                        else if ( (LA12_0=='\"') ) {s = 25;}
-
-                        else if ( (LA12_0=='\'') ) {s = 26;}
-
-                        else if ( (LA12_0=='/') ) {s = 27;}
-
-                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 28;}
-
-                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='+')||LA12_0==':'||(LA12_0>='<' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 29;}
-
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 12, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
- 
-
-}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslParser.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslParser.java
deleted file mode 100644
index 36dd9db..0000000
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/contentassist/antlr/internal/InternalFlaDslParser.java
+++ /dev/null
@@ -1,9787 +0,0 @@
-package org.polarsys.chess.xtext.ui.contentassist.antlr.internal; 
-
-import java.io.InputStream;
-import org.eclipse.xtext.*;
-import org.eclipse.xtext.parser.*;
-import org.eclipse.xtext.parser.impl.*;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xtext.parser.antlr.XtextTokenStream;
-import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
-import org.polarsys.chess.xtext.services.FlaDslGrammarAccess;
-
-
-
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
-
-@SuppressWarnings("all")
-public class InternalFlaDslParser extends AbstractInternalContentAssistParser {
-    public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'undefined'", "'early'", "'late'", "'commission'", "'omission'", "'valueSubtle'", "'valueCoarse'", "'incompletion'", "'none'", "'unspecified'", "'inconsistency'", "'interference'", "'impermanence'", "'all_or_nothing'", "'all_or_compensation'", "'full_consistency'", "'range_violation_allowed'", "'serializable'", "'portable_level'", "'no_loss'", "'partial_loss_allowed'", "'FLA:'", "'->'", "';'", "','", "'.'", "'{'", "'}'", "'noFailure'", "'wildcard'"
-    };
-    public static final int RULE_STRING=6;
-    public static final int RULE_SL_COMMENT=8;
-    public static final int T__19=19;
-    public static final int T__15=15;
-    public static final int T__37=37;
-    public static final int T__16=16;
-    public static final int T__38=38;
-    public static final int T__17=17;
-    public static final int T__39=39;
-    public static final int T__18=18;
-    public static final int T__11=11;
-    public static final int T__33=33;
-    public static final int T__12=12;
-    public static final int T__34=34;
-    public static final int T__13=13;
-    public static final int T__35=35;
-    public static final int T__14=14;
-    public static final int T__36=36;
-    public static final int EOF=-1;
-    public static final int T__30=30;
-    public static final int T__31=31;
-    public static final int T__32=32;
-    public static final int RULE_ID=4;
-    public static final int RULE_WS=9;
-    public static final int RULE_ANY_OTHER=10;
-    public static final int T__26=26;
-    public static final int T__27=27;
-    public static final int T__28=28;
-    public static final int RULE_INT=5;
-    public static final int T__29=29;
-    public static final int T__22=22;
-    public static final int RULE_ML_COMMENT=7;
-    public static final int T__23=23;
-    public static final int T__24=24;
-    public static final int T__25=25;
-    public static final int T__40=40;
-    public static final int T__20=20;
-    public static final int T__21=21;
-
-    // delegates
-    // delegators
-
-
-        public InternalFlaDslParser(TokenStream input) {
-            this(input, new RecognizerSharedState());
-        }
-        public InternalFlaDslParser(TokenStream input, RecognizerSharedState state) {
-            super(input, state);
-             
-        }
-        
-
-    public String[] getTokenNames() { return InternalFlaDslParser.tokenNames; }
-    public String getGrammarFileName() { return "InternalFlaDsl.g"; }
-
-
-     
-     	private FlaDslGrammarAccess grammarAccess;
-     	
-        public void setGrammarAccess(FlaDslGrammarAccess grammarAccess) {
-        	this.grammarAccess = grammarAccess;
-        }
-        
-        @Override
-        protected Grammar getGrammar() {
-        	return grammarAccess.getGrammar();
-        }
-        
-        @Override
-        protected String getValueForTokenName(String tokenName) {
-        	return tokenName;
-        }
-
-
-
-
-    // $ANTLR start "entryRuleBehaviour"
-    // InternalFlaDsl.g:60:1: entryRuleBehaviour : ruleBehaviour EOF ;
-    public final void entryRuleBehaviour() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:61:1: ( ruleBehaviour EOF )
-            // InternalFlaDsl.g:62:1: ruleBehaviour EOF
-            {
-             before(grammarAccess.getBehaviourRule()); 
-            pushFollow(FOLLOW_1);
-            ruleBehaviour();
-
-            state._fsp--;
-
-             after(grammarAccess.getBehaviourRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleBehaviour"
-
-
-    // $ANTLR start "ruleBehaviour"
-    // InternalFlaDsl.g:69:1: ruleBehaviour : ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) ) ;
-    public final void ruleBehaviour() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:73:2: ( ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) ) )
-            // InternalFlaDsl.g:74:1: ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) )
-            {
-            // InternalFlaDsl.g:74:1: ( ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* ) )
-            // InternalFlaDsl.g:75:1: ( ( rule__Behaviour__RulesAssignment ) ) ( ( rule__Behaviour__RulesAssignment )* )
-            {
-            // InternalFlaDsl.g:75:1: ( ( rule__Behaviour__RulesAssignment ) )
-            // InternalFlaDsl.g:76:1: ( rule__Behaviour__RulesAssignment )
-            {
-             before(grammarAccess.getBehaviourAccess().getRulesAssignment()); 
-            // InternalFlaDsl.g:77:1: ( rule__Behaviour__RulesAssignment )
-            // InternalFlaDsl.g:77:2: rule__Behaviour__RulesAssignment
-            {
-            pushFollow(FOLLOW_3);
-            rule__Behaviour__RulesAssignment();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getBehaviourAccess().getRulesAssignment()); 
-
-            }
-
-            // InternalFlaDsl.g:80:1: ( ( rule__Behaviour__RulesAssignment )* )
-            // InternalFlaDsl.g:81:1: ( rule__Behaviour__RulesAssignment )*
-            {
-             before(grammarAccess.getBehaviourAccess().getRulesAssignment()); 
-            // InternalFlaDsl.g:82:1: ( rule__Behaviour__RulesAssignment )*
-            loop1:
-            do {
-                int alt1=2;
-                int LA1_0 = input.LA(1);
-
-                if ( (LA1_0==32) ) {
-                    alt1=1;
-                }
-
-
-                switch (alt1) {
-            	case 1 :
-            	    // InternalFlaDsl.g:82:2: rule__Behaviour__RulesAssignment
-            	    {
-            	    pushFollow(FOLLOW_3);
-            	    rule__Behaviour__RulesAssignment();
-
-            	    state._fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop1;
-                }
-            } while (true);
-
-             after(grammarAccess.getBehaviourAccess().getRulesAssignment()); 
-
-            }
-
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleBehaviour"
-
-
-    // $ANTLR start "entryRuleExpression"
-    // InternalFlaDsl.g:95:1: entryRuleExpression : ruleExpression EOF ;
-    public final void entryRuleExpression() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:96:1: ( ruleExpression EOF )
-            // InternalFlaDsl.g:97:1: ruleExpression EOF
-            {
-             before(grammarAccess.getExpressionRule()); 
-            pushFollow(FOLLOW_1);
-            ruleExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getExpressionRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleExpression"
-
-
-    // $ANTLR start "ruleExpression"
-    // InternalFlaDsl.g:104:1: ruleExpression : ( ( rule__Expression__Group__0 ) ) ;
-    public final void ruleExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:108:2: ( ( ( rule__Expression__Group__0 ) ) )
-            // InternalFlaDsl.g:109:1: ( ( rule__Expression__Group__0 ) )
-            {
-            // InternalFlaDsl.g:109:1: ( ( rule__Expression__Group__0 ) )
-            // InternalFlaDsl.g:110:1: ( rule__Expression__Group__0 )
-            {
-             before(grammarAccess.getExpressionAccess().getGroup()); 
-            // InternalFlaDsl.g:111:1: ( rule__Expression__Group__0 )
-            // InternalFlaDsl.g:111:2: rule__Expression__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__Expression__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getExpressionAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleExpression"
-
-
-    // $ANTLR start "entryRuleLhs"
-    // InternalFlaDsl.g:123:1: entryRuleLhs : ruleLhs EOF ;
-    public final void entryRuleLhs() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:124:1: ( ruleLhs EOF )
-            // InternalFlaDsl.g:125:1: ruleLhs EOF
-            {
-             before(grammarAccess.getLhsRule()); 
-            pushFollow(FOLLOW_1);
-            ruleLhs();
-
-            state._fsp--;
-
-             after(grammarAccess.getLhsRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleLhs"
-
-
-    // $ANTLR start "ruleLhs"
-    // InternalFlaDsl.g:132:1: ruleLhs : ( ( rule__Lhs__Group__0 ) ) ;
-    public final void ruleLhs() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:136:2: ( ( ( rule__Lhs__Group__0 ) ) )
-            // InternalFlaDsl.g:137:1: ( ( rule__Lhs__Group__0 ) )
-            {
-            // InternalFlaDsl.g:137:1: ( ( rule__Lhs__Group__0 ) )
-            // InternalFlaDsl.g:138:1: ( rule__Lhs__Group__0 )
-            {
-             before(grammarAccess.getLhsAccess().getGroup()); 
-            // InternalFlaDsl.g:139:1: ( rule__Lhs__Group__0 )
-            // InternalFlaDsl.g:139:2: rule__Lhs__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__Lhs__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getLhsAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleLhs"
-
-
-    // $ANTLR start "entryRuleRhs"
-    // InternalFlaDsl.g:151:1: entryRuleRhs : ruleRhs EOF ;
-    public final void entryRuleRhs() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:152:1: ( ruleRhs EOF )
-            // InternalFlaDsl.g:153:1: ruleRhs EOF
-            {
-             before(grammarAccess.getRhsRule()); 
-            pushFollow(FOLLOW_1);
-            ruleRhs();
-
-            state._fsp--;
-
-             after(grammarAccess.getRhsRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleRhs"
-
-
-    // $ANTLR start "ruleRhs"
-    // InternalFlaDsl.g:160:1: ruleRhs : ( ( rule__Rhs__Group__0 ) ) ;
-    public final void ruleRhs() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:164:2: ( ( ( rule__Rhs__Group__0 ) ) )
-            // InternalFlaDsl.g:165:1: ( ( rule__Rhs__Group__0 ) )
-            {
-            // InternalFlaDsl.g:165:1: ( ( rule__Rhs__Group__0 ) )
-            // InternalFlaDsl.g:166:1: ( rule__Rhs__Group__0 )
-            {
-             before(grammarAccess.getRhsAccess().getGroup()); 
-            // InternalFlaDsl.g:167:1: ( rule__Rhs__Group__0 )
-            // InternalFlaDsl.g:167:2: rule__Rhs__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__Rhs__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getRhsAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleRhs"
-
-
-    // $ANTLR start "entryRuleInputExpression"
-    // InternalFlaDsl.g:179:1: entryRuleInputExpression : ruleInputExpression EOF ;
-    public final void entryRuleInputExpression() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:180:1: ( ruleInputExpression EOF )
-            // InternalFlaDsl.g:181:1: ruleInputExpression EOF
-            {
-             before(grammarAccess.getInputExpressionRule()); 
-            pushFollow(FOLLOW_1);
-            ruleInputExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getInputExpressionRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleInputExpression"
-
-
-    // $ANTLR start "ruleInputExpression"
-    // InternalFlaDsl.g:188:1: ruleInputExpression : ( ( rule__InputExpression__Group__0 ) ) ;
-    public final void ruleInputExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:192:2: ( ( ( rule__InputExpression__Group__0 ) ) )
-            // InternalFlaDsl.g:193:1: ( ( rule__InputExpression__Group__0 ) )
-            {
-            // InternalFlaDsl.g:193:1: ( ( rule__InputExpression__Group__0 ) )
-            // InternalFlaDsl.g:194:1: ( rule__InputExpression__Group__0 )
-            {
-             before(grammarAccess.getInputExpressionAccess().getGroup()); 
-            // InternalFlaDsl.g:195:1: ( rule__InputExpression__Group__0 )
-            // InternalFlaDsl.g:195:2: rule__InputExpression__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__InputExpression__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getInputExpressionAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleInputExpression"
-
-
-    // $ANTLR start "entryRuleOutputExpression"
-    // InternalFlaDsl.g:207:1: entryRuleOutputExpression : ruleOutputExpression EOF ;
-    public final void entryRuleOutputExpression() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:208:1: ( ruleOutputExpression EOF )
-            // InternalFlaDsl.g:209:1: ruleOutputExpression EOF
-            {
-             before(grammarAccess.getOutputExpressionRule()); 
-            pushFollow(FOLLOW_1);
-            ruleOutputExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getOutputExpressionRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOutputExpression"
-
-
-    // $ANTLR start "ruleOutputExpression"
-    // InternalFlaDsl.g:216:1: ruleOutputExpression : ( ( rule__OutputExpression__Group__0 ) ) ;
-    public final void ruleOutputExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:220:2: ( ( ( rule__OutputExpression__Group__0 ) ) )
-            // InternalFlaDsl.g:221:1: ( ( rule__OutputExpression__Group__0 ) )
-            {
-            // InternalFlaDsl.g:221:1: ( ( rule__OutputExpression__Group__0 ) )
-            // InternalFlaDsl.g:222:1: ( rule__OutputExpression__Group__0 )
-            {
-             before(grammarAccess.getOutputExpressionAccess().getGroup()); 
-            // InternalFlaDsl.g:223:1: ( rule__OutputExpression__Group__0 )
-            // InternalFlaDsl.g:223:2: rule__OutputExpression__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__OutputExpression__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getOutputExpressionAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOutputExpression"
-
-
-    // $ANTLR start "entryRuleInFailureExpr"
-    // InternalFlaDsl.g:235:1: entryRuleInFailureExpr : ruleInFailureExpr EOF ;
-    public final void entryRuleInFailureExpr() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:236:1: ( ruleInFailureExpr EOF )
-            // InternalFlaDsl.g:237:1: ruleInFailureExpr EOF
-            {
-             before(grammarAccess.getInFailureExprRule()); 
-            pushFollow(FOLLOW_1);
-            ruleInFailureExpr();
-
-            state._fsp--;
-
-             after(grammarAccess.getInFailureExprRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleInFailureExpr"
-
-
-    // $ANTLR start "ruleInFailureExpr"
-    // InternalFlaDsl.g:244:1: ruleInFailureExpr : ( ( rule__InFailureExpr__Alternatives ) ) ;
-    public final void ruleInFailureExpr() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:248:2: ( ( ( rule__InFailureExpr__Alternatives ) ) )
-            // InternalFlaDsl.g:249:1: ( ( rule__InFailureExpr__Alternatives ) )
-            {
-            // InternalFlaDsl.g:249:1: ( ( rule__InFailureExpr__Alternatives ) )
-            // InternalFlaDsl.g:250:1: ( rule__InFailureExpr__Alternatives )
-            {
-             before(grammarAccess.getInFailureExprAccess().getAlternatives()); 
-            // InternalFlaDsl.g:251:1: ( rule__InFailureExpr__Alternatives )
-            // InternalFlaDsl.g:251:2: rule__InFailureExpr__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__InFailureExpr__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getInFailureExprAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleInFailureExpr"
-
-
-    // $ANTLR start "entryRuleOutFailureExpr"
-    // InternalFlaDsl.g:263:1: entryRuleOutFailureExpr : ruleOutFailureExpr EOF ;
-    public final void entryRuleOutFailureExpr() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:264:1: ( ruleOutFailureExpr EOF )
-            // InternalFlaDsl.g:265:1: ruleOutFailureExpr EOF
-            {
-             before(grammarAccess.getOutFailureExprRule()); 
-            pushFollow(FOLLOW_1);
-            ruleOutFailureExpr();
-
-            state._fsp--;
-
-             after(grammarAccess.getOutFailureExprRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOutFailureExpr"
-
-
-    // $ANTLR start "ruleOutFailureExpr"
-    // InternalFlaDsl.g:272:1: ruleOutFailureExpr : ( ( rule__OutFailureExpr__Alternatives ) ) ;
-    public final void ruleOutFailureExpr() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:276:2: ( ( ( rule__OutFailureExpr__Alternatives ) ) )
-            // InternalFlaDsl.g:277:1: ( ( rule__OutFailureExpr__Alternatives ) )
-            {
-            // InternalFlaDsl.g:277:1: ( ( rule__OutFailureExpr__Alternatives ) )
-            // InternalFlaDsl.g:278:1: ( rule__OutFailureExpr__Alternatives )
-            {
-             before(grammarAccess.getOutFailureExprAccess().getAlternatives()); 
-            // InternalFlaDsl.g:279:1: ( rule__OutFailureExpr__Alternatives )
-            // InternalFlaDsl.g:279:2: rule__OutFailureExpr__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__OutFailureExpr__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getOutFailureExprAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOutFailureExpr"
-
-
-    // $ANTLR start "entryRuleFailureDefinition"
-    // InternalFlaDsl.g:293:1: entryRuleFailureDefinition : ruleFailureDefinition EOF ;
-    public final void entryRuleFailureDefinition() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:294:1: ( ruleFailureDefinition EOF )
-            // InternalFlaDsl.g:295:1: ruleFailureDefinition EOF
-            {
-             before(grammarAccess.getFailureDefinitionRule()); 
-            pushFollow(FOLLOW_1);
-            ruleFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getFailureDefinitionRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleFailureDefinition"
-
-
-    // $ANTLR start "ruleFailureDefinition"
-    // InternalFlaDsl.g:302:1: ruleFailureDefinition : ( ( rule__FailureDefinition__Group__0 ) ) ;
-    public final void ruleFailureDefinition() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:306:2: ( ( ( rule__FailureDefinition__Group__0 ) ) )
-            // InternalFlaDsl.g:307:1: ( ( rule__FailureDefinition__Group__0 ) )
-            {
-            // InternalFlaDsl.g:307:1: ( ( rule__FailureDefinition__Group__0 ) )
-            // InternalFlaDsl.g:308:1: ( rule__FailureDefinition__Group__0 )
-            {
-             before(grammarAccess.getFailureDefinitionAccess().getGroup()); 
-            // InternalFlaDsl.g:309:1: ( rule__FailureDefinition__Group__0 )
-            // InternalFlaDsl.g:309:2: rule__FailureDefinition__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__FailureDefinition__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getFailureDefinitionAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleFailureDefinition"
-
-
-    // $ANTLR start "entryRuleNoFailureDefinition"
-    // InternalFlaDsl.g:321:1: entryRuleNoFailureDefinition : ruleNoFailureDefinition EOF ;
-    public final void entryRuleNoFailureDefinition() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:322:1: ( ruleNoFailureDefinition EOF )
-            // InternalFlaDsl.g:323:1: ruleNoFailureDefinition EOF
-            {
-             before(grammarAccess.getNoFailureDefinitionRule()); 
-            pushFollow(FOLLOW_1);
-            ruleNoFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getNoFailureDefinitionRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleNoFailureDefinition"
-
-
-    // $ANTLR start "ruleNoFailureDefinition"
-    // InternalFlaDsl.g:330:1: ruleNoFailureDefinition : ( ( rule__NoFailureDefinition__Group__0 ) ) ;
-    public final void ruleNoFailureDefinition() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:334:2: ( ( ( rule__NoFailureDefinition__Group__0 ) ) )
-            // InternalFlaDsl.g:335:1: ( ( rule__NoFailureDefinition__Group__0 ) )
-            {
-            // InternalFlaDsl.g:335:1: ( ( rule__NoFailureDefinition__Group__0 ) )
-            // InternalFlaDsl.g:336:1: ( rule__NoFailureDefinition__Group__0 )
-            {
-             before(grammarAccess.getNoFailureDefinitionAccess().getGroup()); 
-            // InternalFlaDsl.g:337:1: ( rule__NoFailureDefinition__Group__0 )
-            // InternalFlaDsl.g:337:2: rule__NoFailureDefinition__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__NoFailureDefinition__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getNoFailureDefinitionAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleNoFailureDefinition"
-
-
-    // $ANTLR start "entryRuleComplexNofailureDefinition"
-    // InternalFlaDsl.g:349:1: entryRuleComplexNofailureDefinition : ruleComplexNofailureDefinition EOF ;
-    public final void entryRuleComplexNofailureDefinition() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:350:1: ( ruleComplexNofailureDefinition EOF )
-            // InternalFlaDsl.g:351:1: ruleComplexNofailureDefinition EOF
-            {
-             before(grammarAccess.getComplexNofailureDefinitionRule()); 
-            pushFollow(FOLLOW_1);
-            ruleComplexNofailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getComplexNofailureDefinitionRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleComplexNofailureDefinition"
-
-
-    // $ANTLR start "ruleComplexNofailureDefinition"
-    // InternalFlaDsl.g:358:1: ruleComplexNofailureDefinition : ( ( rule__ComplexNofailureDefinition__Group__0 ) ) ;
-    public final void ruleComplexNofailureDefinition() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:362:2: ( ( ( rule__ComplexNofailureDefinition__Group__0 ) ) )
-            // InternalFlaDsl.g:363:1: ( ( rule__ComplexNofailureDefinition__Group__0 ) )
-            {
-            // InternalFlaDsl.g:363:1: ( ( rule__ComplexNofailureDefinition__Group__0 ) )
-            // InternalFlaDsl.g:364:1: ( rule__ComplexNofailureDefinition__Group__0 )
-            {
-             before(grammarAccess.getComplexNofailureDefinitionAccess().getGroup()); 
-            // InternalFlaDsl.g:365:1: ( rule__ComplexNofailureDefinition__Group__0 )
-            // InternalFlaDsl.g:365:2: rule__ComplexNofailureDefinition__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__ComplexNofailureDefinition__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getComplexNofailureDefinitionAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleComplexNofailureDefinition"
-
-
-    // $ANTLR start "entryRuleWildcardDefinition"
-    // InternalFlaDsl.g:377:1: entryRuleWildcardDefinition : ruleWildcardDefinition EOF ;
-    public final void entryRuleWildcardDefinition() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:378:1: ( ruleWildcardDefinition EOF )
-            // InternalFlaDsl.g:379:1: ruleWildcardDefinition EOF
-            {
-             before(grammarAccess.getWildcardDefinitionRule()); 
-            pushFollow(FOLLOW_1);
-            ruleWildcardDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getWildcardDefinitionRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleWildcardDefinition"
-
-
-    // $ANTLR start "ruleWildcardDefinition"
-    // InternalFlaDsl.g:386:1: ruleWildcardDefinition : ( ( rule__WildcardDefinition__Group__0 ) ) ;
-    public final void ruleWildcardDefinition() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:390:2: ( ( ( rule__WildcardDefinition__Group__0 ) ) )
-            // InternalFlaDsl.g:391:1: ( ( rule__WildcardDefinition__Group__0 ) )
-            {
-            // InternalFlaDsl.g:391:1: ( ( rule__WildcardDefinition__Group__0 ) )
-            // InternalFlaDsl.g:392:1: ( rule__WildcardDefinition__Group__0 )
-            {
-             before(grammarAccess.getWildcardDefinitionAccess().getGroup()); 
-            // InternalFlaDsl.g:393:1: ( rule__WildcardDefinition__Group__0 )
-            // InternalFlaDsl.g:393:2: rule__WildcardDefinition__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__WildcardDefinition__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getWildcardDefinitionAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleWildcardDefinition"
-
-
-    // $ANTLR start "entryRuleVariableDefinition"
-    // InternalFlaDsl.g:405:1: entryRuleVariableDefinition : ruleVariableDefinition EOF ;
-    public final void entryRuleVariableDefinition() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:406:1: ( ruleVariableDefinition EOF )
-            // InternalFlaDsl.g:407:1: ruleVariableDefinition EOF
-            {
-             before(grammarAccess.getVariableDefinitionRule()); 
-            pushFollow(FOLLOW_1);
-            ruleVariableDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getVariableDefinitionRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleVariableDefinition"
-
-
-    // $ANTLR start "ruleVariableDefinition"
-    // InternalFlaDsl.g:414:1: ruleVariableDefinition : ( ( rule__VariableDefinition__Group__0 ) ) ;
-    public final void ruleVariableDefinition() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:418:2: ( ( ( rule__VariableDefinition__Group__0 ) ) )
-            // InternalFlaDsl.g:419:1: ( ( rule__VariableDefinition__Group__0 ) )
-            {
-            // InternalFlaDsl.g:419:1: ( ( rule__VariableDefinition__Group__0 ) )
-            // InternalFlaDsl.g:420:1: ( rule__VariableDefinition__Group__0 )
-            {
-             before(grammarAccess.getVariableDefinitionAccess().getGroup()); 
-            // InternalFlaDsl.g:421:1: ( rule__VariableDefinition__Group__0 )
-            // InternalFlaDsl.g:421:2: rule__VariableDefinition__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__VariableDefinition__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getVariableDefinitionAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleVariableDefinition"
-
-
-    // $ANTLR start "entryRuleACIDavoidable"
-    // InternalFlaDsl.g:433:1: entryRuleACIDavoidable : ruleACIDavoidable EOF ;
-    public final void entryRuleACIDavoidable() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:434:1: ( ruleACIDavoidable EOF )
-            // InternalFlaDsl.g:435:1: ruleACIDavoidable EOF
-            {
-             before(grammarAccess.getACIDavoidableRule()); 
-            pushFollow(FOLLOW_1);
-            ruleACIDavoidable();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDavoidableRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleACIDavoidable"
-
-
-    // $ANTLR start "ruleACIDavoidable"
-    // InternalFlaDsl.g:442:1: ruleACIDavoidable : ( ( rule__ACIDavoidable__Group__0 ) ) ;
-    public final void ruleACIDavoidable() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:446:2: ( ( ( rule__ACIDavoidable__Group__0 ) ) )
-            // InternalFlaDsl.g:447:1: ( ( rule__ACIDavoidable__Group__0 ) )
-            {
-            // InternalFlaDsl.g:447:1: ( ( rule__ACIDavoidable__Group__0 ) )
-            // InternalFlaDsl.g:448:1: ( rule__ACIDavoidable__Group__0 )
-            {
-             before(grammarAccess.getACIDavoidableAccess().getGroup()); 
-            // InternalFlaDsl.g:449:1: ( rule__ACIDavoidable__Group__0 )
-            // InternalFlaDsl.g:449:2: rule__ACIDavoidable__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDavoidableAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleACIDavoidable"
-
-
-    // $ANTLR start "entryRuleACIDMitigation"
-    // InternalFlaDsl.g:461:1: entryRuleACIDMitigation : ruleACIDMitigation EOF ;
-    public final void entryRuleACIDMitigation() throws RecognitionException {
-        try {
-            // InternalFlaDsl.g:462:1: ( ruleACIDMitigation EOF )
-            // InternalFlaDsl.g:463:1: ruleACIDMitigation EOF
-            {
-             before(grammarAccess.getACIDMitigationRule()); 
-            pushFollow(FOLLOW_1);
-            ruleACIDMitigation();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDMitigationRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleACIDMitigation"
-
-
-    // $ANTLR start "ruleACIDMitigation"
-    // InternalFlaDsl.g:470:1: ruleACIDMitigation : ( ( rule__ACIDMitigation__Group__0 ) ) ;
-    public final void ruleACIDMitigation() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:474:2: ( ( ( rule__ACIDMitigation__Group__0 ) ) )
-            // InternalFlaDsl.g:475:1: ( ( rule__ACIDMitigation__Group__0 ) )
-            {
-            // InternalFlaDsl.g:475:1: ( ( rule__ACIDMitigation__Group__0 ) )
-            // InternalFlaDsl.g:476:1: ( rule__ACIDMitigation__Group__0 )
-            {
-             before(grammarAccess.getACIDMitigationAccess().getGroup()); 
-            // InternalFlaDsl.g:477:1: ( rule__ACIDMitigation__Group__0 )
-            // InternalFlaDsl.g:477:2: rule__ACIDMitigation__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDMitigationAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleACIDMitigation"
-
-
-    // $ANTLR start "ruleActualFailureType"
-    // InternalFlaDsl.g:494:1: ruleActualFailureType : ( ( rule__ActualFailureType__Alternatives ) ) ;
-    public final void ruleActualFailureType() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:498:1: ( ( ( rule__ActualFailureType__Alternatives ) ) )
-            // InternalFlaDsl.g:499:1: ( ( rule__ActualFailureType__Alternatives ) )
-            {
-            // InternalFlaDsl.g:499:1: ( ( rule__ActualFailureType__Alternatives ) )
-            // InternalFlaDsl.g:500:1: ( rule__ActualFailureType__Alternatives )
-            {
-             before(grammarAccess.getActualFailureTypeAccess().getAlternatives()); 
-            // InternalFlaDsl.g:501:1: ( rule__ActualFailureType__Alternatives )
-            // InternalFlaDsl.g:501:2: rule__ActualFailureType__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__ActualFailureType__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getActualFailureTypeAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleActualFailureType"
-
-
-    // $ANTLR start "ruleAavoidable"
-    // InternalFlaDsl.g:517:1: ruleAavoidable : ( ( rule__Aavoidable__Alternatives ) ) ;
-    public final void ruleAavoidable() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:521:1: ( ( ( rule__Aavoidable__Alternatives ) ) )
-            // InternalFlaDsl.g:522:1: ( ( rule__Aavoidable__Alternatives ) )
-            {
-            // InternalFlaDsl.g:522:1: ( ( rule__Aavoidable__Alternatives ) )
-            // InternalFlaDsl.g:523:1: ( rule__Aavoidable__Alternatives )
-            {
-             before(grammarAccess.getAavoidableAccess().getAlternatives()); 
-            // InternalFlaDsl.g:524:1: ( rule__Aavoidable__Alternatives )
-            // InternalFlaDsl.g:524:2: rule__Aavoidable__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__Aavoidable__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getAavoidableAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleAavoidable"
-
-
-    // $ANTLR start "ruleCavoidable"
-    // InternalFlaDsl.g:536:1: ruleCavoidable : ( ( rule__Cavoidable__Alternatives ) ) ;
-    public final void ruleCavoidable() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:540:1: ( ( ( rule__Cavoidable__Alternatives ) ) )
-            // InternalFlaDsl.g:541:1: ( ( rule__Cavoidable__Alternatives ) )
-            {
-            // InternalFlaDsl.g:541:1: ( ( rule__Cavoidable__Alternatives ) )
-            // InternalFlaDsl.g:542:1: ( rule__Cavoidable__Alternatives )
-            {
-             before(grammarAccess.getCavoidableAccess().getAlternatives()); 
-            // InternalFlaDsl.g:543:1: ( rule__Cavoidable__Alternatives )
-            // InternalFlaDsl.g:543:2: rule__Cavoidable__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__Cavoidable__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getCavoidableAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleCavoidable"
-
-
-    // $ANTLR start "ruleIavoidable"
-    // InternalFlaDsl.g:555:1: ruleIavoidable : ( ( rule__Iavoidable__Alternatives ) ) ;
-    public final void ruleIavoidable() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:559:1: ( ( ( rule__Iavoidable__Alternatives ) ) )
-            // InternalFlaDsl.g:560:1: ( ( rule__Iavoidable__Alternatives ) )
-            {
-            // InternalFlaDsl.g:560:1: ( ( rule__Iavoidable__Alternatives ) )
-            // InternalFlaDsl.g:561:1: ( rule__Iavoidable__Alternatives )
-            {
-             before(grammarAccess.getIavoidableAccess().getAlternatives()); 
-            // InternalFlaDsl.g:562:1: ( rule__Iavoidable__Alternatives )
-            // InternalFlaDsl.g:562:2: rule__Iavoidable__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__Iavoidable__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getIavoidableAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleIavoidable"
-
-
-    // $ANTLR start "ruleDavoidable"
-    // InternalFlaDsl.g:574:1: ruleDavoidable : ( ( rule__Davoidable__Alternatives ) ) ;
-    public final void ruleDavoidable() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:578:1: ( ( ( rule__Davoidable__Alternatives ) ) )
-            // InternalFlaDsl.g:579:1: ( ( rule__Davoidable__Alternatives ) )
-            {
-            // InternalFlaDsl.g:579:1: ( ( rule__Davoidable__Alternatives ) )
-            // InternalFlaDsl.g:580:1: ( rule__Davoidable__Alternatives )
-            {
-             before(grammarAccess.getDavoidableAccess().getAlternatives()); 
-            // InternalFlaDsl.g:581:1: ( rule__Davoidable__Alternatives )
-            // InternalFlaDsl.g:581:2: rule__Davoidable__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__Davoidable__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getDavoidableAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleDavoidable"
-
-
-    // $ANTLR start "ruleAmitigation"
-    // InternalFlaDsl.g:593:1: ruleAmitigation : ( ( rule__Amitigation__Alternatives ) ) ;
-    public final void ruleAmitigation() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:597:1: ( ( ( rule__Amitigation__Alternatives ) ) )
-            // InternalFlaDsl.g:598:1: ( ( rule__Amitigation__Alternatives ) )
-            {
-            // InternalFlaDsl.g:598:1: ( ( rule__Amitigation__Alternatives ) )
-            // InternalFlaDsl.g:599:1: ( rule__Amitigation__Alternatives )
-            {
-             before(grammarAccess.getAmitigationAccess().getAlternatives()); 
-            // InternalFlaDsl.g:600:1: ( rule__Amitigation__Alternatives )
-            // InternalFlaDsl.g:600:2: rule__Amitigation__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__Amitigation__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getAmitigationAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleAmitigation"
-
-
-    // $ANTLR start "ruleCmitigation"
-    // InternalFlaDsl.g:612:1: ruleCmitigation : ( ( rule__Cmitigation__Alternatives ) ) ;
-    public final void ruleCmitigation() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:616:1: ( ( ( rule__Cmitigation__Alternatives ) ) )
-            // InternalFlaDsl.g:617:1: ( ( rule__Cmitigation__Alternatives ) )
-            {
-            // InternalFlaDsl.g:617:1: ( ( rule__Cmitigation__Alternatives ) )
-            // InternalFlaDsl.g:618:1: ( rule__Cmitigation__Alternatives )
-            {
-             before(grammarAccess.getCmitigationAccess().getAlternatives()); 
-            // InternalFlaDsl.g:619:1: ( rule__Cmitigation__Alternatives )
-            // InternalFlaDsl.g:619:2: rule__Cmitigation__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__Cmitigation__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getCmitigationAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleCmitigation"
-
-
-    // $ANTLR start "ruleImitigation"
-    // InternalFlaDsl.g:631:1: ruleImitigation : ( ( rule__Imitigation__Alternatives ) ) ;
-    public final void ruleImitigation() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:635:1: ( ( ( rule__Imitigation__Alternatives ) ) )
-            // InternalFlaDsl.g:636:1: ( ( rule__Imitigation__Alternatives ) )
-            {
-            // InternalFlaDsl.g:636:1: ( ( rule__Imitigation__Alternatives ) )
-            // InternalFlaDsl.g:637:1: ( rule__Imitigation__Alternatives )
-            {
-             before(grammarAccess.getImitigationAccess().getAlternatives()); 
-            // InternalFlaDsl.g:638:1: ( rule__Imitigation__Alternatives )
-            // InternalFlaDsl.g:638:2: rule__Imitigation__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__Imitigation__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getImitigationAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleImitigation"
-
-
-    // $ANTLR start "ruleDmitigation"
-    // InternalFlaDsl.g:650:1: ruleDmitigation : ( ( rule__Dmitigation__Alternatives ) ) ;
-    public final void ruleDmitigation() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:654:1: ( ( ( rule__Dmitigation__Alternatives ) ) )
-            // InternalFlaDsl.g:655:1: ( ( rule__Dmitigation__Alternatives ) )
-            {
-            // InternalFlaDsl.g:655:1: ( ( rule__Dmitigation__Alternatives ) )
-            // InternalFlaDsl.g:656:1: ( rule__Dmitigation__Alternatives )
-            {
-             before(grammarAccess.getDmitigationAccess().getAlternatives()); 
-            // InternalFlaDsl.g:657:1: ( rule__Dmitigation__Alternatives )
-            // InternalFlaDsl.g:657:2: rule__Dmitigation__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__Dmitigation__Alternatives();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getDmitigationAccess().getAlternatives()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleDmitigation"
-
-
-    // $ANTLR start "rule__InputExpression__Alternatives_0"
-    // InternalFlaDsl.g:668:1: rule__InputExpression__Alternatives_0 : ( ( ( rule__InputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) );
-    public final void rule__InputExpression__Alternatives_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:672:1: ( ( ( rule__InputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) )
-            int alt2=2;
-            int LA2_0 = input.LA(1);
-
-            if ( (LA2_0==RULE_ID) ) {
-                alt2=1;
-            }
-            else if ( (LA2_0==11) ) {
-                alt2=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("", 2, 0, input);
-
-                throw nvae;
-            }
-            switch (alt2) {
-                case 1 :
-                    // InternalFlaDsl.g:673:1: ( ( rule__InputExpression__RefAssignment_0_0 ) )
-                    {
-                    // InternalFlaDsl.g:673:1: ( ( rule__InputExpression__RefAssignment_0_0 ) )
-                    // InternalFlaDsl.g:674:1: ( rule__InputExpression__RefAssignment_0_0 )
-                    {
-                     before(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0()); 
-                    // InternalFlaDsl.g:675:1: ( rule__InputExpression__RefAssignment_0_0 )
-                    // InternalFlaDsl.g:675:2: rule__InputExpression__RefAssignment_0_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__InputExpression__RefAssignment_0_0();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getInputExpressionAccess().getRefAssignment_0_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:679:6: ( 'undefined' )
-                    {
-                    // InternalFlaDsl.g:679:6: ( 'undefined' )
-                    // InternalFlaDsl.g:680:1: 'undefined'
-                    {
-                     before(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1()); 
-                    match(input,11,FOLLOW_2); 
-                     after(grammarAccess.getInputExpressionAccess().getUndefinedKeyword_0_1()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InputExpression__Alternatives_0"
-
-
-    // $ANTLR start "rule__OutputExpression__Alternatives_0"
-    // InternalFlaDsl.g:692:1: rule__OutputExpression__Alternatives_0 : ( ( ( rule__OutputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) );
-    public final void rule__OutputExpression__Alternatives_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:696:1: ( ( ( rule__OutputExpression__RefAssignment_0_0 ) ) | ( 'undefined' ) )
-            int alt3=2;
-            int LA3_0 = input.LA(1);
-
-            if ( (LA3_0==RULE_ID) ) {
-                alt3=1;
-            }
-            else if ( (LA3_0==11) ) {
-                alt3=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("", 3, 0, input);
-
-                throw nvae;
-            }
-            switch (alt3) {
-                case 1 :
-                    // InternalFlaDsl.g:697:1: ( ( rule__OutputExpression__RefAssignment_0_0 ) )
-                    {
-                    // InternalFlaDsl.g:697:1: ( ( rule__OutputExpression__RefAssignment_0_0 ) )
-                    // InternalFlaDsl.g:698:1: ( rule__OutputExpression__RefAssignment_0_0 )
-                    {
-                     before(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0()); 
-                    // InternalFlaDsl.g:699:1: ( rule__OutputExpression__RefAssignment_0_0 )
-                    // InternalFlaDsl.g:699:2: rule__OutputExpression__RefAssignment_0_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__OutputExpression__RefAssignment_0_0();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getOutputExpressionAccess().getRefAssignment_0_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:703:6: ( 'undefined' )
-                    {
-                    // InternalFlaDsl.g:703:6: ( 'undefined' )
-                    // InternalFlaDsl.g:704:1: 'undefined'
-                    {
-                     before(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1()); 
-                    match(input,11,FOLLOW_2); 
-                     after(grammarAccess.getOutputExpressionAccess().getUndefinedKeyword_0_1()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutputExpression__Alternatives_0"
-
-
-    // $ANTLR start "rule__InFailureExpr__Alternatives"
-    // InternalFlaDsl.g:716:1: rule__InFailureExpr__Alternatives : ( ( ( rule__InFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__InFailureExpr__Group_3__0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_4 ) ) );
-    public final void rule__InFailureExpr__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:720:1: ( ( ( rule__InFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__InFailureExpr__Group_3__0 ) ) | ( ( rule__InFailureExpr__FailuresAssignment_4 ) ) )
-            int alt4=5;
-            switch ( input.LA(1) ) {
-            case 40:
-                {
-                alt4=1;
-                }
-                break;
-            case 39:
-                {
-                alt4=2;
-                }
-                break;
-            case 12:
-            case 13:
-            case 14:
-            case 15:
-            case 16:
-            case 17:
-                {
-                alt4=3;
-                }
-                break;
-            case 37:
-                {
-                alt4=4;
-                }
-                break;
-            case RULE_ID:
-                {
-                alt4=5;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 4, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt4) {
-                case 1 :
-                    // InternalFlaDsl.g:721:1: ( ( rule__InFailureExpr__FailuresAssignment_0 ) )
-                    {
-                    // InternalFlaDsl.g:721:1: ( ( rule__InFailureExpr__FailuresAssignment_0 ) )
-                    // InternalFlaDsl.g:722:1: ( rule__InFailureExpr__FailuresAssignment_0 )
-                    {
-                     before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0()); 
-                    // InternalFlaDsl.g:723:1: ( rule__InFailureExpr__FailuresAssignment_0 )
-                    // InternalFlaDsl.g:723:2: rule__InFailureExpr__FailuresAssignment_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__InFailureExpr__FailuresAssignment_0();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:727:6: ( ( rule__InFailureExpr__FailuresAssignment_1 ) )
-                    {
-                    // InternalFlaDsl.g:727:6: ( ( rule__InFailureExpr__FailuresAssignment_1 ) )
-                    // InternalFlaDsl.g:728:1: ( rule__InFailureExpr__FailuresAssignment_1 )
-                    {
-                     before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1()); 
-                    // InternalFlaDsl.g:729:1: ( rule__InFailureExpr__FailuresAssignment_1 )
-                    // InternalFlaDsl.g:729:2: rule__InFailureExpr__FailuresAssignment_1
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__InFailureExpr__FailuresAssignment_1();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:733:6: ( ( rule__InFailureExpr__FailuresAssignment_2 ) )
-                    {
-                    // InternalFlaDsl.g:733:6: ( ( rule__InFailureExpr__FailuresAssignment_2 ) )
-                    // InternalFlaDsl.g:734:1: ( rule__InFailureExpr__FailuresAssignment_2 )
-                    {
-                     before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2()); 
-                    // InternalFlaDsl.g:735:1: ( rule__InFailureExpr__FailuresAssignment_2 )
-                    // InternalFlaDsl.g:735:2: rule__InFailureExpr__FailuresAssignment_2
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__InFailureExpr__FailuresAssignment_2();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_2()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalFlaDsl.g:739:6: ( ( rule__InFailureExpr__Group_3__0 ) )
-                    {
-                    // InternalFlaDsl.g:739:6: ( ( rule__InFailureExpr__Group_3__0 ) )
-                    // InternalFlaDsl.g:740:1: ( rule__InFailureExpr__Group_3__0 )
-                    {
-                     before(grammarAccess.getInFailureExprAccess().getGroup_3()); 
-                    // InternalFlaDsl.g:741:1: ( rule__InFailureExpr__Group_3__0 )
-                    // InternalFlaDsl.g:741:2: rule__InFailureExpr__Group_3__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__InFailureExpr__Group_3__0();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getInFailureExprAccess().getGroup_3()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 5 :
-                    // InternalFlaDsl.g:745:6: ( ( rule__InFailureExpr__FailuresAssignment_4 ) )
-                    {
-                    // InternalFlaDsl.g:745:6: ( ( rule__InFailureExpr__FailuresAssignment_4 ) )
-                    // InternalFlaDsl.g:746:1: ( rule__InFailureExpr__FailuresAssignment_4 )
-                    {
-                     before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4()); 
-                    // InternalFlaDsl.g:747:1: ( rule__InFailureExpr__FailuresAssignment_4 )
-                    // InternalFlaDsl.g:747:2: rule__InFailureExpr__FailuresAssignment_4
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__InFailureExpr__FailuresAssignment_4();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_4()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Alternatives"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Alternatives"
-    // InternalFlaDsl.g:756:1: rule__OutFailureExpr__Alternatives : ( ( ( rule__OutFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__OutFailureExpr__Group_3__0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_4 ) ) );
-    public final void rule__OutFailureExpr__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:760:1: ( ( ( rule__OutFailureExpr__FailuresAssignment_0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_1 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_2 ) ) | ( ( rule__OutFailureExpr__Group_3__0 ) ) | ( ( rule__OutFailureExpr__FailuresAssignment_4 ) ) )
-            int alt5=5;
-            switch ( input.LA(1) ) {
-            case 39:
-                {
-                int LA5_1 = input.LA(2);
-
-                if ( (LA5_1==EOF||(LA5_1>=34 && LA5_1<=35)) ) {
-                    alt5=1;
-                }
-                else if ( (LA5_1==36) ) {
-                    alt5=2;
-                }
-                else {
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 5, 1, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 12:
-            case 13:
-            case 14:
-            case 15:
-            case 16:
-            case 17:
-                {
-                alt5=3;
-                }
-                break;
-            case 37:
-                {
-                alt5=4;
-                }
-                break;
-            case RULE_ID:
-                {
-                alt5=5;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 5, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt5) {
-                case 1 :
-                    // InternalFlaDsl.g:761:1: ( ( rule__OutFailureExpr__FailuresAssignment_0 ) )
-                    {
-                    // InternalFlaDsl.g:761:1: ( ( rule__OutFailureExpr__FailuresAssignment_0 ) )
-                    // InternalFlaDsl.g:762:1: ( rule__OutFailureExpr__FailuresAssignment_0 )
-                    {
-                     before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0()); 
-                    // InternalFlaDsl.g:763:1: ( rule__OutFailureExpr__FailuresAssignment_0 )
-                    // InternalFlaDsl.g:763:2: rule__OutFailureExpr__FailuresAssignment_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__OutFailureExpr__FailuresAssignment_0();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:767:6: ( ( rule__OutFailureExpr__FailuresAssignment_1 ) )
-                    {
-                    // InternalFlaDsl.g:767:6: ( ( rule__OutFailureExpr__FailuresAssignment_1 ) )
-                    // InternalFlaDsl.g:768:1: ( rule__OutFailureExpr__FailuresAssignment_1 )
-                    {
-                     before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1()); 
-                    // InternalFlaDsl.g:769:1: ( rule__OutFailureExpr__FailuresAssignment_1 )
-                    // InternalFlaDsl.g:769:2: rule__OutFailureExpr__FailuresAssignment_1
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__OutFailureExpr__FailuresAssignment_1();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:773:6: ( ( rule__OutFailureExpr__FailuresAssignment_2 ) )
-                    {
-                    // InternalFlaDsl.g:773:6: ( ( rule__OutFailureExpr__FailuresAssignment_2 ) )
-                    // InternalFlaDsl.g:774:1: ( rule__OutFailureExpr__FailuresAssignment_2 )
-                    {
-                     before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2()); 
-                    // InternalFlaDsl.g:775:1: ( rule__OutFailureExpr__FailuresAssignment_2 )
-                    // InternalFlaDsl.g:775:2: rule__OutFailureExpr__FailuresAssignment_2
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__OutFailureExpr__FailuresAssignment_2();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_2()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalFlaDsl.g:779:6: ( ( rule__OutFailureExpr__Group_3__0 ) )
-                    {
-                    // InternalFlaDsl.g:779:6: ( ( rule__OutFailureExpr__Group_3__0 ) )
-                    // InternalFlaDsl.g:780:1: ( rule__OutFailureExpr__Group_3__0 )
-                    {
-                     before(grammarAccess.getOutFailureExprAccess().getGroup_3()); 
-                    // InternalFlaDsl.g:781:1: ( rule__OutFailureExpr__Group_3__0 )
-                    // InternalFlaDsl.g:781:2: rule__OutFailureExpr__Group_3__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__OutFailureExpr__Group_3__0();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getOutFailureExprAccess().getGroup_3()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 5 :
-                    // InternalFlaDsl.g:785:6: ( ( rule__OutFailureExpr__FailuresAssignment_4 ) )
-                    {
-                    // InternalFlaDsl.g:785:6: ( ( rule__OutFailureExpr__FailuresAssignment_4 ) )
-                    // InternalFlaDsl.g:786:1: ( rule__OutFailureExpr__FailuresAssignment_4 )
-                    {
-                     before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4()); 
-                    // InternalFlaDsl.g:787:1: ( rule__OutFailureExpr__FailuresAssignment_4 )
-                    // InternalFlaDsl.g:787:2: rule__OutFailureExpr__FailuresAssignment_4
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__OutFailureExpr__FailuresAssignment_4();
-
-                    state._fsp--;
-
-
-                    }
-
-                     after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_4()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Alternatives"
-
-
-    // $ANTLR start "rule__ActualFailureType__Alternatives"
-    // InternalFlaDsl.g:798:1: rule__ActualFailureType__Alternatives : ( ( ( 'early' ) ) | ( ( 'late' ) ) | ( ( 'commission' ) ) | ( ( 'omission' ) ) | ( ( 'valueSubtle' ) ) | ( ( 'valueCoarse' ) ) );
-    public final void rule__ActualFailureType__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:802:1: ( ( ( 'early' ) ) | ( ( 'late' ) ) | ( ( 'commission' ) ) | ( ( 'omission' ) ) | ( ( 'valueSubtle' ) ) | ( ( 'valueCoarse' ) ) )
-            int alt6=6;
-            switch ( input.LA(1) ) {
-            case 12:
-                {
-                alt6=1;
-                }
-                break;
-            case 13:
-                {
-                alt6=2;
-                }
-                break;
-            case 14:
-                {
-                alt6=3;
-                }
-                break;
-            case 15:
-                {
-                alt6=4;
-                }
-                break;
-            case 16:
-                {
-                alt6=5;
-                }
-                break;
-            case 17:
-                {
-                alt6=6;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 6, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt6) {
-                case 1 :
-                    // InternalFlaDsl.g:803:1: ( ( 'early' ) )
-                    {
-                    // InternalFlaDsl.g:803:1: ( ( 'early' ) )
-                    // InternalFlaDsl.g:804:1: ( 'early' )
-                    {
-                     before(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); 
-                    // InternalFlaDsl.g:805:1: ( 'early' )
-                    // InternalFlaDsl.g:805:3: 'early'
-                    {
-                    match(input,12,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getActualFailureTypeAccess().getEARLYEnumLiteralDeclaration_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:810:6: ( ( 'late' ) )
-                    {
-                    // InternalFlaDsl.g:810:6: ( ( 'late' ) )
-                    // InternalFlaDsl.g:811:1: ( 'late' )
-                    {
-                     before(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); 
-                    // InternalFlaDsl.g:812:1: ( 'late' )
-                    // InternalFlaDsl.g:812:3: 'late'
-                    {
-                    match(input,13,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getActualFailureTypeAccess().getLATEEnumLiteralDeclaration_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:817:6: ( ( 'commission' ) )
-                    {
-                    // InternalFlaDsl.g:817:6: ( ( 'commission' ) )
-                    // InternalFlaDsl.g:818:1: ( 'commission' )
-                    {
-                     before(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); 
-                    // InternalFlaDsl.g:819:1: ( 'commission' )
-                    // InternalFlaDsl.g:819:3: 'commission'
-                    {
-                    match(input,14,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getActualFailureTypeAccess().getCOMMISSIONEnumLiteralDeclaration_2()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalFlaDsl.g:824:6: ( ( 'omission' ) )
-                    {
-                    // InternalFlaDsl.g:824:6: ( ( 'omission' ) )
-                    // InternalFlaDsl.g:825:1: ( 'omission' )
-                    {
-                     before(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); 
-                    // InternalFlaDsl.g:826:1: ( 'omission' )
-                    // InternalFlaDsl.g:826:3: 'omission'
-                    {
-                    match(input,15,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getActualFailureTypeAccess().getOMISSIONEnumLiteralDeclaration_3()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 5 :
-                    // InternalFlaDsl.g:831:6: ( ( 'valueSubtle' ) )
-                    {
-                    // InternalFlaDsl.g:831:6: ( ( 'valueSubtle' ) )
-                    // InternalFlaDsl.g:832:1: ( 'valueSubtle' )
-                    {
-                     before(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); 
-                    // InternalFlaDsl.g:833:1: ( 'valueSubtle' )
-                    // InternalFlaDsl.g:833:3: 'valueSubtle'
-                    {
-                    match(input,16,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getActualFailureTypeAccess().getVALUE_SUBTLEEnumLiteralDeclaration_4()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 6 :
-                    // InternalFlaDsl.g:838:6: ( ( 'valueCoarse' ) )
-                    {
-                    // InternalFlaDsl.g:838:6: ( ( 'valueCoarse' ) )
-                    // InternalFlaDsl.g:839:1: ( 'valueCoarse' )
-                    {
-                     before(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); 
-                    // InternalFlaDsl.g:840:1: ( 'valueCoarse' )
-                    // InternalFlaDsl.g:840:3: 'valueCoarse'
-                    {
-                    match(input,17,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getActualFailureTypeAccess().getVALUE_COARSEEnumLiteralDeclaration_5()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ActualFailureType__Alternatives"
-
-
-    // $ANTLR start "rule__Aavoidable__Alternatives"
-    // InternalFlaDsl.g:850:1: rule__Aavoidable__Alternatives : ( ( ( 'incompletion' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
-    public final void rule__Aavoidable__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:854:1: ( ( ( 'incompletion' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
-            int alt7=3;
-            switch ( input.LA(1) ) {
-            case 18:
-                {
-                alt7=1;
-                }
-                break;
-            case 19:
-                {
-                alt7=2;
-                }
-                break;
-            case 20:
-                {
-                alt7=3;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 7, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt7) {
-                case 1 :
-                    // InternalFlaDsl.g:855:1: ( ( 'incompletion' ) )
-                    {
-                    // InternalFlaDsl.g:855:1: ( ( 'incompletion' ) )
-                    // InternalFlaDsl.g:856:1: ( 'incompletion' )
-                    {
-                     before(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); 
-                    // InternalFlaDsl.g:857:1: ( 'incompletion' )
-                    // InternalFlaDsl.g:857:3: 'incompletion'
-                    {
-                    match(input,18,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getAavoidableAccess().getINCOMPLETIONEnumLiteralDeclaration_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:862:6: ( ( 'none' ) )
-                    {
-                    // InternalFlaDsl.g:862:6: ( ( 'none' ) )
-                    // InternalFlaDsl.g:863:1: ( 'none' )
-                    {
-                     before(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
-                    // InternalFlaDsl.g:864:1: ( 'none' )
-                    // InternalFlaDsl.g:864:3: 'none'
-                    {
-                    match(input,19,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getAavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:869:6: ( ( 'unspecified' ) )
-                    {
-                    // InternalFlaDsl.g:869:6: ( ( 'unspecified' ) )
-                    // InternalFlaDsl.g:870:1: ( 'unspecified' )
-                    {
-                     before(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
-                    // InternalFlaDsl.g:871:1: ( 'unspecified' )
-                    // InternalFlaDsl.g:871:3: 'unspecified'
-                    {
-                    match(input,20,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getAavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Aavoidable__Alternatives"
-
-
-    // $ANTLR start "rule__Cavoidable__Alternatives"
-    // InternalFlaDsl.g:881:1: rule__Cavoidable__Alternatives : ( ( ( 'inconsistency' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
-    public final void rule__Cavoidable__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:885:1: ( ( ( 'inconsistency' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
-            int alt8=3;
-            switch ( input.LA(1) ) {
-            case 21:
-                {
-                alt8=1;
-                }
-                break;
-            case 19:
-                {
-                alt8=2;
-                }
-                break;
-            case 20:
-                {
-                alt8=3;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 8, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt8) {
-                case 1 :
-                    // InternalFlaDsl.g:886:1: ( ( 'inconsistency' ) )
-                    {
-                    // InternalFlaDsl.g:886:1: ( ( 'inconsistency' ) )
-                    // InternalFlaDsl.g:887:1: ( 'inconsistency' )
-                    {
-                     before(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); 
-                    // InternalFlaDsl.g:888:1: ( 'inconsistency' )
-                    // InternalFlaDsl.g:888:3: 'inconsistency'
-                    {
-                    match(input,21,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getCavoidableAccess().getINCONSISTENCYEnumLiteralDeclaration_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:893:6: ( ( 'none' ) )
-                    {
-                    // InternalFlaDsl.g:893:6: ( ( 'none' ) )
-                    // InternalFlaDsl.g:894:1: ( 'none' )
-                    {
-                     before(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
-                    // InternalFlaDsl.g:895:1: ( 'none' )
-                    // InternalFlaDsl.g:895:3: 'none'
-                    {
-                    match(input,19,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getCavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:900:6: ( ( 'unspecified' ) )
-                    {
-                    // InternalFlaDsl.g:900:6: ( ( 'unspecified' ) )
-                    // InternalFlaDsl.g:901:1: ( 'unspecified' )
-                    {
-                     before(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
-                    // InternalFlaDsl.g:902:1: ( 'unspecified' )
-                    // InternalFlaDsl.g:902:3: 'unspecified'
-                    {
-                    match(input,20,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getCavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Cavoidable__Alternatives"
-
-
-    // $ANTLR start "rule__Iavoidable__Alternatives"
-    // InternalFlaDsl.g:912:1: rule__Iavoidable__Alternatives : ( ( ( 'interference' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
-    public final void rule__Iavoidable__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:916:1: ( ( ( 'interference' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
-            int alt9=3;
-            switch ( input.LA(1) ) {
-            case 22:
-                {
-                alt9=1;
-                }
-                break;
-            case 19:
-                {
-                alt9=2;
-                }
-                break;
-            case 20:
-                {
-                alt9=3;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 9, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt9) {
-                case 1 :
-                    // InternalFlaDsl.g:917:1: ( ( 'interference' ) )
-                    {
-                    // InternalFlaDsl.g:917:1: ( ( 'interference' ) )
-                    // InternalFlaDsl.g:918:1: ( 'interference' )
-                    {
-                     before(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); 
-                    // InternalFlaDsl.g:919:1: ( 'interference' )
-                    // InternalFlaDsl.g:919:3: 'interference'
-                    {
-                    match(input,22,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getIavoidableAccess().getINTERFERENCEEnumLiteralDeclaration_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:924:6: ( ( 'none' ) )
-                    {
-                    // InternalFlaDsl.g:924:6: ( ( 'none' ) )
-                    // InternalFlaDsl.g:925:1: ( 'none' )
-                    {
-                     before(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
-                    // InternalFlaDsl.g:926:1: ( 'none' )
-                    // InternalFlaDsl.g:926:3: 'none'
-                    {
-                    match(input,19,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getIavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:931:6: ( ( 'unspecified' ) )
-                    {
-                    // InternalFlaDsl.g:931:6: ( ( 'unspecified' ) )
-                    // InternalFlaDsl.g:932:1: ( 'unspecified' )
-                    {
-                     before(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
-                    // InternalFlaDsl.g:933:1: ( 'unspecified' )
-                    // InternalFlaDsl.g:933:3: 'unspecified'
-                    {
-                    match(input,20,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getIavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Iavoidable__Alternatives"
-
-
-    // $ANTLR start "rule__Davoidable__Alternatives"
-    // InternalFlaDsl.g:943:1: rule__Davoidable__Alternatives : ( ( ( 'impermanence' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
-    public final void rule__Davoidable__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:947:1: ( ( ( 'impermanence' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
-            int alt10=3;
-            switch ( input.LA(1) ) {
-            case 23:
-                {
-                alt10=1;
-                }
-                break;
-            case 19:
-                {
-                alt10=2;
-                }
-                break;
-            case 20:
-                {
-                alt10=3;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 10, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt10) {
-                case 1 :
-                    // InternalFlaDsl.g:948:1: ( ( 'impermanence' ) )
-                    {
-                    // InternalFlaDsl.g:948:1: ( ( 'impermanence' ) )
-                    // InternalFlaDsl.g:949:1: ( 'impermanence' )
-                    {
-                     before(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); 
-                    // InternalFlaDsl.g:950:1: ( 'impermanence' )
-                    // InternalFlaDsl.g:950:3: 'impermanence'
-                    {
-                    match(input,23,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getDavoidableAccess().getIMPERMANENCEEnumLiteralDeclaration_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:955:6: ( ( 'none' ) )
-                    {
-                    // InternalFlaDsl.g:955:6: ( ( 'none' ) )
-                    // InternalFlaDsl.g:956:1: ( 'none' )
-                    {
-                     before(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
-                    // InternalFlaDsl.g:957:1: ( 'none' )
-                    // InternalFlaDsl.g:957:3: 'none'
-                    {
-                    match(input,19,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getDavoidableAccess().getNONEEnumLiteralDeclaration_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:962:6: ( ( 'unspecified' ) )
-                    {
-                    // InternalFlaDsl.g:962:6: ( ( 'unspecified' ) )
-                    // InternalFlaDsl.g:963:1: ( 'unspecified' )
-                    {
-                     before(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
-                    // InternalFlaDsl.g:964:1: ( 'unspecified' )
-                    // InternalFlaDsl.g:964:3: 'unspecified'
-                    {
-                    match(input,20,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getDavoidableAccess().getUNSPECIFIEDEnumLiteralDeclaration_2()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Davoidable__Alternatives"
-
-
-    // $ANTLR start "rule__Amitigation__Alternatives"
-    // InternalFlaDsl.g:974:1: rule__Amitigation__Alternatives : ( ( ( 'all_or_nothing' ) ) | ( ( 'all_or_compensation' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
-    public final void rule__Amitigation__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:978:1: ( ( ( 'all_or_nothing' ) ) | ( ( 'all_or_compensation' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
-            int alt11=4;
-            switch ( input.LA(1) ) {
-            case 24:
-                {
-                alt11=1;
-                }
-                break;
-            case 25:
-                {
-                alt11=2;
-                }
-                break;
-            case 19:
-                {
-                alt11=3;
-                }
-                break;
-            case 20:
-                {
-                alt11=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 11, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt11) {
-                case 1 :
-                    // InternalFlaDsl.g:979:1: ( ( 'all_or_nothing' ) )
-                    {
-                    // InternalFlaDsl.g:979:1: ( ( 'all_or_nothing' ) )
-                    // InternalFlaDsl.g:980:1: ( 'all_or_nothing' )
-                    {
-                     before(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); 
-                    // InternalFlaDsl.g:981:1: ( 'all_or_nothing' )
-                    // InternalFlaDsl.g:981:3: 'all_or_nothing'
-                    {
-                    match(input,24,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getAmitigationAccess().getALL_OR_NOTHINGEnumLiteralDeclaration_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:986:6: ( ( 'all_or_compensation' ) )
-                    {
-                    // InternalFlaDsl.g:986:6: ( ( 'all_or_compensation' ) )
-                    // InternalFlaDsl.g:987:1: ( 'all_or_compensation' )
-                    {
-                     before(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); 
-                    // InternalFlaDsl.g:988:1: ( 'all_or_compensation' )
-                    // InternalFlaDsl.g:988:3: 'all_or_compensation'
-                    {
-                    match(input,25,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getAmitigationAccess().getALL_OR_COMPENSATIONEnumLiteralDeclaration_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:993:6: ( ( 'none' ) )
-                    {
-                    // InternalFlaDsl.g:993:6: ( ( 'none' ) )
-                    // InternalFlaDsl.g:994:1: ( 'none' )
-                    {
-                     before(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
-                    // InternalFlaDsl.g:995:1: ( 'none' )
-                    // InternalFlaDsl.g:995:3: 'none'
-                    {
-                    match(input,19,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getAmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalFlaDsl.g:1000:6: ( ( 'unspecified' ) )
-                    {
-                    // InternalFlaDsl.g:1000:6: ( ( 'unspecified' ) )
-                    // InternalFlaDsl.g:1001:1: ( 'unspecified' )
-                    {
-                     before(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
-                    // InternalFlaDsl.g:1002:1: ( 'unspecified' )
-                    // InternalFlaDsl.g:1002:3: 'unspecified'
-                    {
-                    match(input,20,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getAmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Amitigation__Alternatives"
-
-
-    // $ANTLR start "rule__Cmitigation__Alternatives"
-    // InternalFlaDsl.g:1012:1: rule__Cmitigation__Alternatives : ( ( ( 'full_consistency' ) ) | ( ( 'range_violation_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
-    public final void rule__Cmitigation__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1016:1: ( ( ( 'full_consistency' ) ) | ( ( 'range_violation_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
-            int alt12=4;
-            switch ( input.LA(1) ) {
-            case 26:
-                {
-                alt12=1;
-                }
-                break;
-            case 27:
-                {
-                alt12=2;
-                }
-                break;
-            case 19:
-                {
-                alt12=3;
-                }
-                break;
-            case 20:
-                {
-                alt12=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 12, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt12) {
-                case 1 :
-                    // InternalFlaDsl.g:1017:1: ( ( 'full_consistency' ) )
-                    {
-                    // InternalFlaDsl.g:1017:1: ( ( 'full_consistency' ) )
-                    // InternalFlaDsl.g:1018:1: ( 'full_consistency' )
-                    {
-                     before(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); 
-                    // InternalFlaDsl.g:1019:1: ( 'full_consistency' )
-                    // InternalFlaDsl.g:1019:3: 'full_consistency'
-                    {
-                    match(input,26,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getCmitigationAccess().getFULL_CONSISTENCYEnumLiteralDeclaration_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:1024:6: ( ( 'range_violation_allowed' ) )
-                    {
-                    // InternalFlaDsl.g:1024:6: ( ( 'range_violation_allowed' ) )
-                    // InternalFlaDsl.g:1025:1: ( 'range_violation_allowed' )
-                    {
-                     before(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); 
-                    // InternalFlaDsl.g:1026:1: ( 'range_violation_allowed' )
-                    // InternalFlaDsl.g:1026:3: 'range_violation_allowed'
-                    {
-                    match(input,27,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getCmitigationAccess().getRANGE_VIOLATION_ALLOWEDEnumLiteralDeclaration_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:1031:6: ( ( 'none' ) )
-                    {
-                    // InternalFlaDsl.g:1031:6: ( ( 'none' ) )
-                    // InternalFlaDsl.g:1032:1: ( 'none' )
-                    {
-                     before(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
-                    // InternalFlaDsl.g:1033:1: ( 'none' )
-                    // InternalFlaDsl.g:1033:3: 'none'
-                    {
-                    match(input,19,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getCmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalFlaDsl.g:1038:6: ( ( 'unspecified' ) )
-                    {
-                    // InternalFlaDsl.g:1038:6: ( ( 'unspecified' ) )
-                    // InternalFlaDsl.g:1039:1: ( 'unspecified' )
-                    {
-                     before(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
-                    // InternalFlaDsl.g:1040:1: ( 'unspecified' )
-                    // InternalFlaDsl.g:1040:3: 'unspecified'
-                    {
-                    match(input,20,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getCmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Cmitigation__Alternatives"
-
-
-    // $ANTLR start "rule__Imitigation__Alternatives"
-    // InternalFlaDsl.g:1050:1: rule__Imitigation__Alternatives : ( ( ( 'serializable' ) ) | ( ( 'portable_level' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
-    public final void rule__Imitigation__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1054:1: ( ( ( 'serializable' ) ) | ( ( 'portable_level' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
-            int alt13=4;
-            switch ( input.LA(1) ) {
-            case 28:
-                {
-                alt13=1;
-                }
-                break;
-            case 29:
-                {
-                alt13=2;
-                }
-                break;
-            case 19:
-                {
-                alt13=3;
-                }
-                break;
-            case 20:
-                {
-                alt13=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 13, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt13) {
-                case 1 :
-                    // InternalFlaDsl.g:1055:1: ( ( 'serializable' ) )
-                    {
-                    // InternalFlaDsl.g:1055:1: ( ( 'serializable' ) )
-                    // InternalFlaDsl.g:1056:1: ( 'serializable' )
-                    {
-                     before(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); 
-                    // InternalFlaDsl.g:1057:1: ( 'serializable' )
-                    // InternalFlaDsl.g:1057:3: 'serializable'
-                    {
-                    match(input,28,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getImitigationAccess().getSERIALIZABLEEnumLiteralDeclaration_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:1062:6: ( ( 'portable_level' ) )
-                    {
-                    // InternalFlaDsl.g:1062:6: ( ( 'portable_level' ) )
-                    // InternalFlaDsl.g:1063:1: ( 'portable_level' )
-                    {
-                     before(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); 
-                    // InternalFlaDsl.g:1064:1: ( 'portable_level' )
-                    // InternalFlaDsl.g:1064:3: 'portable_level'
-                    {
-                    match(input,29,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getImitigationAccess().getPORTABLE_LEVELEnumLiteralDeclaration_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:1069:6: ( ( 'none' ) )
-                    {
-                    // InternalFlaDsl.g:1069:6: ( ( 'none' ) )
-                    // InternalFlaDsl.g:1070:1: ( 'none' )
-                    {
-                     before(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); 
-                    // InternalFlaDsl.g:1071:1: ( 'none' )
-                    // InternalFlaDsl.g:1071:3: 'none'
-                    {
-                    match(input,19,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getImitigationAccess().getNONEEnumLiteralDeclaration_2()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalFlaDsl.g:1076:6: ( ( 'unspecified' ) )
-                    {
-                    // InternalFlaDsl.g:1076:6: ( ( 'unspecified' ) )
-                    // InternalFlaDsl.g:1077:1: ( 'unspecified' )
-                    {
-                     before(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
-                    // InternalFlaDsl.g:1078:1: ( 'unspecified' )
-                    // InternalFlaDsl.g:1078:3: 'unspecified'
-                    {
-                    match(input,20,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getImitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Imitigation__Alternatives"
-
-
-    // $ANTLR start "rule__Dmitigation__Alternatives"
-    // InternalFlaDsl.g:1088:1: rule__Dmitigation__Alternatives : ( ( ( 'no_loss' ) ) | ( ( 'partial_loss_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) );
-    public final void rule__Dmitigation__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1092:1: ( ( ( 'no_loss' ) ) | ( ( 'partial_loss_allowed' ) ) | ( ( 'none' ) ) | ( ( 'unspecified' ) ) )
-            int alt14=4;
-            switch ( input.LA(1) ) {
-            case 30:
-                {
-                alt14=1;
-                }
-                break;
-            case 31:
-                {
-                alt14=2;
-                }
-                break;
-            case 19:
-                {
-                alt14=3;
-                }
-                break;
-            case 20:
-                {
-                alt14=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 14, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt14) {
-                case 1 :
-                    // InternalFlaDsl.g:1093:1: ( ( 'no_loss' ) )
-                    {
-                    // InternalFlaDsl.g:1093:1: ( ( 'no_loss' ) )
-                    // InternalFlaDsl.g:1094:1: ( 'no_loss' )
-                    {
-                     before(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); 
-                    // InternalFlaDsl.g:1095:1: ( 'no_loss' )
-                    // InternalFlaDsl.g:1095:3: 'no_loss'
-                    {
-                    match(input,30,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getDmitigationAccess().getNO_LOSSEnumLiteralDeclaration_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalFlaDsl.g:1100:6: ( ( 'partial_loss_allowed' ) )
-                    {
-                    // InternalFlaDsl.g:1100:6: ( ( 'partial_loss_allowed' ) )
-                    // InternalFlaDsl.g:1101:1: ( 'partial_loss_allowed' )
-                    {
-                     before(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); 
-                    // InternalFlaDsl.g:1102:1: ( 'partial_loss_allowed' )
-                    // InternalFlaDsl.g:1102:3: 'partial_loss_allowed'
-                    {
-                    match(input,31,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getDmitigationAccess().getPARTIAL_LOSS_ALLOWEDEnumLiteralDeclaration_1()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalFlaDsl.g:1107:6: ( ( 'none' ) )
-                    {
-                    // InternalFlaDsl.g:1107:6: ( ( 'none' ) )
-                    // InternalFlaDsl.g:1108:1: ( 'none' )
-                    {
-                     before(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
-                    // InternalFlaDsl.g:1109:1: ( 'none' )
-                    // InternalFlaDsl.g:1109:3: 'none'
-                    {
-                    match(input,19,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getDmitigationAccess().getNONEEnumLiteralDeclaration_2()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalFlaDsl.g:1114:6: ( ( 'unspecified' ) )
-                    {
-                    // InternalFlaDsl.g:1114:6: ( ( 'unspecified' ) )
-                    // InternalFlaDsl.g:1115:1: ( 'unspecified' )
-                    {
-                     before(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
-                    // InternalFlaDsl.g:1116:1: ( 'unspecified' )
-                    // InternalFlaDsl.g:1116:3: 'unspecified'
-                    {
-                    match(input,20,FOLLOW_2); 
-
-                    }
-
-                     after(grammarAccess.getDmitigationAccess().getUNSPECIFIEDEnumLiteralDeclaration_3()); 
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Dmitigation__Alternatives"
-
-
-    // $ANTLR start "rule__Expression__Group__0"
-    // InternalFlaDsl.g:1128:1: rule__Expression__Group__0 : rule__Expression__Group__0__Impl rule__Expression__Group__1 ;
-    public final void rule__Expression__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1132:1: ( rule__Expression__Group__0__Impl rule__Expression__Group__1 )
-            // InternalFlaDsl.g:1133:2: rule__Expression__Group__0__Impl rule__Expression__Group__1
-            {
-            pushFollow(FOLLOW_4);
-            rule__Expression__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__Expression__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__0"
-
-
-    // $ANTLR start "rule__Expression__Group__0__Impl"
-    // InternalFlaDsl.g:1140:1: rule__Expression__Group__0__Impl : ( 'FLA:' ) ;
-    public final void rule__Expression__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1144:1: ( ( 'FLA:' ) )
-            // InternalFlaDsl.g:1145:1: ( 'FLA:' )
-            {
-            // InternalFlaDsl.g:1145:1: ( 'FLA:' )
-            // InternalFlaDsl.g:1146:1: 'FLA:'
-            {
-             before(grammarAccess.getExpressionAccess().getFLAKeyword_0()); 
-            match(input,32,FOLLOW_2); 
-             after(grammarAccess.getExpressionAccess().getFLAKeyword_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__0__Impl"
-
-
-    // $ANTLR start "rule__Expression__Group__1"
-    // InternalFlaDsl.g:1159:1: rule__Expression__Group__1 : rule__Expression__Group__1__Impl rule__Expression__Group__2 ;
-    public final void rule__Expression__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1163:1: ( rule__Expression__Group__1__Impl rule__Expression__Group__2 )
-            // InternalFlaDsl.g:1164:2: rule__Expression__Group__1__Impl rule__Expression__Group__2
-            {
-            pushFollow(FOLLOW_5);
-            rule__Expression__Group__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__Expression__Group__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__1"
-
-
-    // $ANTLR start "rule__Expression__Group__1__Impl"
-    // InternalFlaDsl.g:1171:1: rule__Expression__Group__1__Impl : ( ( rule__Expression__LhsAssignment_1 ) ) ;
-    public final void rule__Expression__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1175:1: ( ( ( rule__Expression__LhsAssignment_1 ) ) )
-            // InternalFlaDsl.g:1176:1: ( ( rule__Expression__LhsAssignment_1 ) )
-            {
-            // InternalFlaDsl.g:1176:1: ( ( rule__Expression__LhsAssignment_1 ) )
-            // InternalFlaDsl.g:1177:1: ( rule__Expression__LhsAssignment_1 )
-            {
-             before(grammarAccess.getExpressionAccess().getLhsAssignment_1()); 
-            // InternalFlaDsl.g:1178:1: ( rule__Expression__LhsAssignment_1 )
-            // InternalFlaDsl.g:1178:2: rule__Expression__LhsAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__Expression__LhsAssignment_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getExpressionAccess().getLhsAssignment_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__1__Impl"
-
-
-    // $ANTLR start "rule__Expression__Group__2"
-    // InternalFlaDsl.g:1188:1: rule__Expression__Group__2 : rule__Expression__Group__2__Impl rule__Expression__Group__3 ;
-    public final void rule__Expression__Group__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1192:1: ( rule__Expression__Group__2__Impl rule__Expression__Group__3 )
-            // InternalFlaDsl.g:1193:2: rule__Expression__Group__2__Impl rule__Expression__Group__3
-            {
-            pushFollow(FOLLOW_4);
-            rule__Expression__Group__2__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__Expression__Group__3();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__2"
-
-
-    // $ANTLR start "rule__Expression__Group__2__Impl"
-    // InternalFlaDsl.g:1200:1: rule__Expression__Group__2__Impl : ( '->' ) ;
-    public final void rule__Expression__Group__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1204:1: ( ( '->' ) )
-            // InternalFlaDsl.g:1205:1: ( '->' )
-            {
-            // InternalFlaDsl.g:1205:1: ( '->' )
-            // InternalFlaDsl.g:1206:1: '->'
-            {
-             before(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2()); 
-            match(input,33,FOLLOW_2); 
-             after(grammarAccess.getExpressionAccess().getHyphenMinusGreaterThanSignKeyword_2()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__2__Impl"
-
-
-    // $ANTLR start "rule__Expression__Group__3"
-    // InternalFlaDsl.g:1219:1: rule__Expression__Group__3 : rule__Expression__Group__3__Impl rule__Expression__Group__4 ;
-    public final void rule__Expression__Group__3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1223:1: ( rule__Expression__Group__3__Impl rule__Expression__Group__4 )
-            // InternalFlaDsl.g:1224:2: rule__Expression__Group__3__Impl rule__Expression__Group__4
-            {
-            pushFollow(FOLLOW_6);
-            rule__Expression__Group__3__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__Expression__Group__4();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__3"
-
-
-    // $ANTLR start "rule__Expression__Group__3__Impl"
-    // InternalFlaDsl.g:1231:1: rule__Expression__Group__3__Impl : ( ( rule__Expression__RhsAssignment_3 ) ) ;
-    public final void rule__Expression__Group__3__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1235:1: ( ( ( rule__Expression__RhsAssignment_3 ) ) )
-            // InternalFlaDsl.g:1236:1: ( ( rule__Expression__RhsAssignment_3 ) )
-            {
-            // InternalFlaDsl.g:1236:1: ( ( rule__Expression__RhsAssignment_3 ) )
-            // InternalFlaDsl.g:1237:1: ( rule__Expression__RhsAssignment_3 )
-            {
-             before(grammarAccess.getExpressionAccess().getRhsAssignment_3()); 
-            // InternalFlaDsl.g:1238:1: ( rule__Expression__RhsAssignment_3 )
-            // InternalFlaDsl.g:1238:2: rule__Expression__RhsAssignment_3
-            {
-            pushFollow(FOLLOW_2);
-            rule__Expression__RhsAssignment_3();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getExpressionAccess().getRhsAssignment_3()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__3__Impl"
-
-
-    // $ANTLR start "rule__Expression__Group__4"
-    // InternalFlaDsl.g:1248:1: rule__Expression__Group__4 : rule__Expression__Group__4__Impl ;
-    public final void rule__Expression__Group__4() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1252:1: ( rule__Expression__Group__4__Impl )
-            // InternalFlaDsl.g:1253:2: rule__Expression__Group__4__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__Expression__Group__4__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__4"
-
-
-    // $ANTLR start "rule__Expression__Group__4__Impl"
-    // InternalFlaDsl.g:1259:1: rule__Expression__Group__4__Impl : ( ';' ) ;
-    public final void rule__Expression__Group__4__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1263:1: ( ( ';' ) )
-            // InternalFlaDsl.g:1264:1: ( ';' )
-            {
-            // InternalFlaDsl.g:1264:1: ( ';' )
-            // InternalFlaDsl.g:1265:1: ';'
-            {
-             before(grammarAccess.getExpressionAccess().getSemicolonKeyword_4()); 
-            match(input,34,FOLLOW_2); 
-             after(grammarAccess.getExpressionAccess().getSemicolonKeyword_4()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__Group__4__Impl"
-
-
-    // $ANTLR start "rule__Lhs__Group__0"
-    // InternalFlaDsl.g:1288:1: rule__Lhs__Group__0 : rule__Lhs__Group__0__Impl rule__Lhs__Group__1 ;
-    public final void rule__Lhs__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1292:1: ( rule__Lhs__Group__0__Impl rule__Lhs__Group__1 )
-            // InternalFlaDsl.g:1293:2: rule__Lhs__Group__0__Impl rule__Lhs__Group__1
-            {
-            pushFollow(FOLLOW_7);
-            rule__Lhs__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__Lhs__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__Group__0"
-
-
-    // $ANTLR start "rule__Lhs__Group__0__Impl"
-    // InternalFlaDsl.g:1300:1: rule__Lhs__Group__0__Impl : ( ( rule__Lhs__FailuresAssignment_0 ) ) ;
-    public final void rule__Lhs__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1304:1: ( ( ( rule__Lhs__FailuresAssignment_0 ) ) )
-            // InternalFlaDsl.g:1305:1: ( ( rule__Lhs__FailuresAssignment_0 ) )
-            {
-            // InternalFlaDsl.g:1305:1: ( ( rule__Lhs__FailuresAssignment_0 ) )
-            // InternalFlaDsl.g:1306:1: ( rule__Lhs__FailuresAssignment_0 )
-            {
-             before(grammarAccess.getLhsAccess().getFailuresAssignment_0()); 
-            // InternalFlaDsl.g:1307:1: ( rule__Lhs__FailuresAssignment_0 )
-            // InternalFlaDsl.g:1307:2: rule__Lhs__FailuresAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__Lhs__FailuresAssignment_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getLhsAccess().getFailuresAssignment_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__Group__0__Impl"
-
-
-    // $ANTLR start "rule__Lhs__Group__1"
-    // InternalFlaDsl.g:1317:1: rule__Lhs__Group__1 : rule__Lhs__Group__1__Impl ;
-    public final void rule__Lhs__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1321:1: ( rule__Lhs__Group__1__Impl )
-            // InternalFlaDsl.g:1322:2: rule__Lhs__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__Lhs__Group__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__Group__1"
-
-
-    // $ANTLR start "rule__Lhs__Group__1__Impl"
-    // InternalFlaDsl.g:1328:1: rule__Lhs__Group__1__Impl : ( ( rule__Lhs__Group_1__0 )* ) ;
-    public final void rule__Lhs__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1332:1: ( ( ( rule__Lhs__Group_1__0 )* ) )
-            // InternalFlaDsl.g:1333:1: ( ( rule__Lhs__Group_1__0 )* )
-            {
-            // InternalFlaDsl.g:1333:1: ( ( rule__Lhs__Group_1__0 )* )
-            // InternalFlaDsl.g:1334:1: ( rule__Lhs__Group_1__0 )*
-            {
-             before(grammarAccess.getLhsAccess().getGroup_1()); 
-            // InternalFlaDsl.g:1335:1: ( rule__Lhs__Group_1__0 )*
-            loop15:
-            do {
-                int alt15=2;
-                int LA15_0 = input.LA(1);
-
-                if ( (LA15_0==35) ) {
-                    alt15=1;
-                }
-
-
-                switch (alt15) {
-            	case 1 :
-            	    // InternalFlaDsl.g:1335:2: rule__Lhs__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_8);
-            	    rule__Lhs__Group_1__0();
-
-            	    state._fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop15;
-                }
-            } while (true);
-
-             after(grammarAccess.getLhsAccess().getGroup_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__Group__1__Impl"
-
-
-    // $ANTLR start "rule__Lhs__Group_1__0"
-    // InternalFlaDsl.g:1349:1: rule__Lhs__Group_1__0 : rule__Lhs__Group_1__0__Impl rule__Lhs__Group_1__1 ;
-    public final void rule__Lhs__Group_1__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1353:1: ( rule__Lhs__Group_1__0__Impl rule__Lhs__Group_1__1 )
-            // InternalFlaDsl.g:1354:2: rule__Lhs__Group_1__0__Impl rule__Lhs__Group_1__1
-            {
-            pushFollow(FOLLOW_4);
-            rule__Lhs__Group_1__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__Lhs__Group_1__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__Group_1__0"
-
-
-    // $ANTLR start "rule__Lhs__Group_1__0__Impl"
-    // InternalFlaDsl.g:1361:1: rule__Lhs__Group_1__0__Impl : ( ',' ) ;
-    public final void rule__Lhs__Group_1__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1365:1: ( ( ',' ) )
-            // InternalFlaDsl.g:1366:1: ( ',' )
-            {
-            // InternalFlaDsl.g:1366:1: ( ',' )
-            // InternalFlaDsl.g:1367:1: ','
-            {
-             before(grammarAccess.getLhsAccess().getCommaKeyword_1_0()); 
-            match(input,35,FOLLOW_2); 
-             after(grammarAccess.getLhsAccess().getCommaKeyword_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__Group_1__0__Impl"
-
-
-    // $ANTLR start "rule__Lhs__Group_1__1"
-    // InternalFlaDsl.g:1380:1: rule__Lhs__Group_1__1 : rule__Lhs__Group_1__1__Impl ;
-    public final void rule__Lhs__Group_1__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1384:1: ( rule__Lhs__Group_1__1__Impl )
-            // InternalFlaDsl.g:1385:2: rule__Lhs__Group_1__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__Lhs__Group_1__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__Group_1__1"
-
-
-    // $ANTLR start "rule__Lhs__Group_1__1__Impl"
-    // InternalFlaDsl.g:1391:1: rule__Lhs__Group_1__1__Impl : ( ( rule__Lhs__FailuresAssignment_1_1 ) ) ;
-    public final void rule__Lhs__Group_1__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1395:1: ( ( ( rule__Lhs__FailuresAssignment_1_1 ) ) )
-            // InternalFlaDsl.g:1396:1: ( ( rule__Lhs__FailuresAssignment_1_1 ) )
-            {
-            // InternalFlaDsl.g:1396:1: ( ( rule__Lhs__FailuresAssignment_1_1 ) )
-            // InternalFlaDsl.g:1397:1: ( rule__Lhs__FailuresAssignment_1_1 )
-            {
-             before(grammarAccess.getLhsAccess().getFailuresAssignment_1_1()); 
-            // InternalFlaDsl.g:1398:1: ( rule__Lhs__FailuresAssignment_1_1 )
-            // InternalFlaDsl.g:1398:2: rule__Lhs__FailuresAssignment_1_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__Lhs__FailuresAssignment_1_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getLhsAccess().getFailuresAssignment_1_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__Group_1__1__Impl"
-
-
-    // $ANTLR start "rule__Rhs__Group__0"
-    // InternalFlaDsl.g:1412:1: rule__Rhs__Group__0 : rule__Rhs__Group__0__Impl rule__Rhs__Group__1 ;
-    public final void rule__Rhs__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1416:1: ( rule__Rhs__Group__0__Impl rule__Rhs__Group__1 )
-            // InternalFlaDsl.g:1417:2: rule__Rhs__Group__0__Impl rule__Rhs__Group__1
-            {
-            pushFollow(FOLLOW_7);
-            rule__Rhs__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__Rhs__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__Group__0"
-
-
-    // $ANTLR start "rule__Rhs__Group__0__Impl"
-    // InternalFlaDsl.g:1424:1: rule__Rhs__Group__0__Impl : ( ( rule__Rhs__FailuresAssignment_0 ) ) ;
-    public final void rule__Rhs__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1428:1: ( ( ( rule__Rhs__FailuresAssignment_0 ) ) )
-            // InternalFlaDsl.g:1429:1: ( ( rule__Rhs__FailuresAssignment_0 ) )
-            {
-            // InternalFlaDsl.g:1429:1: ( ( rule__Rhs__FailuresAssignment_0 ) )
-            // InternalFlaDsl.g:1430:1: ( rule__Rhs__FailuresAssignment_0 )
-            {
-             before(grammarAccess.getRhsAccess().getFailuresAssignment_0()); 
-            // InternalFlaDsl.g:1431:1: ( rule__Rhs__FailuresAssignment_0 )
-            // InternalFlaDsl.g:1431:2: rule__Rhs__FailuresAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__Rhs__FailuresAssignment_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getRhsAccess().getFailuresAssignment_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__Group__0__Impl"
-
-
-    // $ANTLR start "rule__Rhs__Group__1"
-    // InternalFlaDsl.g:1441:1: rule__Rhs__Group__1 : rule__Rhs__Group__1__Impl ;
-    public final void rule__Rhs__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1445:1: ( rule__Rhs__Group__1__Impl )
-            // InternalFlaDsl.g:1446:2: rule__Rhs__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__Rhs__Group__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__Group__1"
-
-
-    // $ANTLR start "rule__Rhs__Group__1__Impl"
-    // InternalFlaDsl.g:1452:1: rule__Rhs__Group__1__Impl : ( ( rule__Rhs__Group_1__0 )* ) ;
-    public final void rule__Rhs__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1456:1: ( ( ( rule__Rhs__Group_1__0 )* ) )
-            // InternalFlaDsl.g:1457:1: ( ( rule__Rhs__Group_1__0 )* )
-            {
-            // InternalFlaDsl.g:1457:1: ( ( rule__Rhs__Group_1__0 )* )
-            // InternalFlaDsl.g:1458:1: ( rule__Rhs__Group_1__0 )*
-            {
-             before(grammarAccess.getRhsAccess().getGroup_1()); 
-            // InternalFlaDsl.g:1459:1: ( rule__Rhs__Group_1__0 )*
-            loop16:
-            do {
-                int alt16=2;
-                int LA16_0 = input.LA(1);
-
-                if ( (LA16_0==35) ) {
-                    alt16=1;
-                }
-
-
-                switch (alt16) {
-            	case 1 :
-            	    // InternalFlaDsl.g:1459:2: rule__Rhs__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_8);
-            	    rule__Rhs__Group_1__0();
-
-            	    state._fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop16;
-                }
-            } while (true);
-
-             after(grammarAccess.getRhsAccess().getGroup_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__Group__1__Impl"
-
-
-    // $ANTLR start "rule__Rhs__Group_1__0"
-    // InternalFlaDsl.g:1473:1: rule__Rhs__Group_1__0 : rule__Rhs__Group_1__0__Impl rule__Rhs__Group_1__1 ;
-    public final void rule__Rhs__Group_1__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1477:1: ( rule__Rhs__Group_1__0__Impl rule__Rhs__Group_1__1 )
-            // InternalFlaDsl.g:1478:2: rule__Rhs__Group_1__0__Impl rule__Rhs__Group_1__1
-            {
-            pushFollow(FOLLOW_4);
-            rule__Rhs__Group_1__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__Rhs__Group_1__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__Group_1__0"
-
-
-    // $ANTLR start "rule__Rhs__Group_1__0__Impl"
-    // InternalFlaDsl.g:1485:1: rule__Rhs__Group_1__0__Impl : ( ',' ) ;
-    public final void rule__Rhs__Group_1__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1489:1: ( ( ',' ) )
-            // InternalFlaDsl.g:1490:1: ( ',' )
-            {
-            // InternalFlaDsl.g:1490:1: ( ',' )
-            // InternalFlaDsl.g:1491:1: ','
-            {
-             before(grammarAccess.getRhsAccess().getCommaKeyword_1_0()); 
-            match(input,35,FOLLOW_2); 
-             after(grammarAccess.getRhsAccess().getCommaKeyword_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__Group_1__0__Impl"
-
-
-    // $ANTLR start "rule__Rhs__Group_1__1"
-    // InternalFlaDsl.g:1504:1: rule__Rhs__Group_1__1 : rule__Rhs__Group_1__1__Impl ;
-    public final void rule__Rhs__Group_1__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1508:1: ( rule__Rhs__Group_1__1__Impl )
-            // InternalFlaDsl.g:1509:2: rule__Rhs__Group_1__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__Rhs__Group_1__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__Group_1__1"
-
-
-    // $ANTLR start "rule__Rhs__Group_1__1__Impl"
-    // InternalFlaDsl.g:1515:1: rule__Rhs__Group_1__1__Impl : ( ( rule__Rhs__FailuresAssignment_1_1 ) ) ;
-    public final void rule__Rhs__Group_1__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1519:1: ( ( ( rule__Rhs__FailuresAssignment_1_1 ) ) )
-            // InternalFlaDsl.g:1520:1: ( ( rule__Rhs__FailuresAssignment_1_1 ) )
-            {
-            // InternalFlaDsl.g:1520:1: ( ( rule__Rhs__FailuresAssignment_1_1 ) )
-            // InternalFlaDsl.g:1521:1: ( rule__Rhs__FailuresAssignment_1_1 )
-            {
-             before(grammarAccess.getRhsAccess().getFailuresAssignment_1_1()); 
-            // InternalFlaDsl.g:1522:1: ( rule__Rhs__FailuresAssignment_1_1 )
-            // InternalFlaDsl.g:1522:2: rule__Rhs__FailuresAssignment_1_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__Rhs__FailuresAssignment_1_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getRhsAccess().getFailuresAssignment_1_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__Group_1__1__Impl"
-
-
-    // $ANTLR start "rule__InputExpression__Group__0"
-    // InternalFlaDsl.g:1536:1: rule__InputExpression__Group__0 : rule__InputExpression__Group__0__Impl rule__InputExpression__Group__1 ;
-    public final void rule__InputExpression__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1540:1: ( rule__InputExpression__Group__0__Impl rule__InputExpression__Group__1 )
-            // InternalFlaDsl.g:1541:2: rule__InputExpression__Group__0__Impl rule__InputExpression__Group__1
-            {
-            pushFollow(FOLLOW_9);
-            rule__InputExpression__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__InputExpression__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InputExpression__Group__0"
-
-
-    // $ANTLR start "rule__InputExpression__Group__0__Impl"
-    // InternalFlaDsl.g:1548:1: rule__InputExpression__Group__0__Impl : ( ( rule__InputExpression__Alternatives_0 ) ) ;
-    public final void rule__InputExpression__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1552:1: ( ( ( rule__InputExpression__Alternatives_0 ) ) )
-            // InternalFlaDsl.g:1553:1: ( ( rule__InputExpression__Alternatives_0 ) )
-            {
-            // InternalFlaDsl.g:1553:1: ( ( rule__InputExpression__Alternatives_0 ) )
-            // InternalFlaDsl.g:1554:1: ( rule__InputExpression__Alternatives_0 )
-            {
-             before(grammarAccess.getInputExpressionAccess().getAlternatives_0()); 
-            // InternalFlaDsl.g:1555:1: ( rule__InputExpression__Alternatives_0 )
-            // InternalFlaDsl.g:1555:2: rule__InputExpression__Alternatives_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__InputExpression__Alternatives_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getInputExpressionAccess().getAlternatives_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InputExpression__Group__0__Impl"
-
-
-    // $ANTLR start "rule__InputExpression__Group__1"
-    // InternalFlaDsl.g:1565:1: rule__InputExpression__Group__1 : rule__InputExpression__Group__1__Impl rule__InputExpression__Group__2 ;
-    public final void rule__InputExpression__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1569:1: ( rule__InputExpression__Group__1__Impl rule__InputExpression__Group__2 )
-            // InternalFlaDsl.g:1570:2: rule__InputExpression__Group__1__Impl rule__InputExpression__Group__2
-            {
-            pushFollow(FOLLOW_10);
-            rule__InputExpression__Group__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__InputExpression__Group__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InputExpression__Group__1"
-
-
-    // $ANTLR start "rule__InputExpression__Group__1__Impl"
-    // InternalFlaDsl.g:1577:1: rule__InputExpression__Group__1__Impl : ( '.' ) ;
-    public final void rule__InputExpression__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1581:1: ( ( '.' ) )
-            // InternalFlaDsl.g:1582:1: ( '.' )
-            {
-            // InternalFlaDsl.g:1582:1: ( '.' )
-            // InternalFlaDsl.g:1583:1: '.'
-            {
-             before(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getInputExpressionAccess().getFullStopKeyword_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InputExpression__Group__1__Impl"
-
-
-    // $ANTLR start "rule__InputExpression__Group__2"
-    // InternalFlaDsl.g:1596:1: rule__InputExpression__Group__2 : rule__InputExpression__Group__2__Impl ;
-    public final void rule__InputExpression__Group__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1600:1: ( rule__InputExpression__Group__2__Impl )
-            // InternalFlaDsl.g:1601:2: rule__InputExpression__Group__2__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__InputExpression__Group__2__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InputExpression__Group__2"
-
-
-    // $ANTLR start "rule__InputExpression__Group__2__Impl"
-    // InternalFlaDsl.g:1607:1: rule__InputExpression__Group__2__Impl : ( ( rule__InputExpression__FailureExprAssignment_2 ) ) ;
-    public final void rule__InputExpression__Group__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1611:1: ( ( ( rule__InputExpression__FailureExprAssignment_2 ) ) )
-            // InternalFlaDsl.g:1612:1: ( ( rule__InputExpression__FailureExprAssignment_2 ) )
-            {
-            // InternalFlaDsl.g:1612:1: ( ( rule__InputExpression__FailureExprAssignment_2 ) )
-            // InternalFlaDsl.g:1613:1: ( rule__InputExpression__FailureExprAssignment_2 )
-            {
-             before(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2()); 
-            // InternalFlaDsl.g:1614:1: ( rule__InputExpression__FailureExprAssignment_2 )
-            // InternalFlaDsl.g:1614:2: rule__InputExpression__FailureExprAssignment_2
-            {
-            pushFollow(FOLLOW_2);
-            rule__InputExpression__FailureExprAssignment_2();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getInputExpressionAccess().getFailureExprAssignment_2()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InputExpression__Group__2__Impl"
-
-
-    // $ANTLR start "rule__OutputExpression__Group__0"
-    // InternalFlaDsl.g:1630:1: rule__OutputExpression__Group__0 : rule__OutputExpression__Group__0__Impl rule__OutputExpression__Group__1 ;
-    public final void rule__OutputExpression__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1634:1: ( rule__OutputExpression__Group__0__Impl rule__OutputExpression__Group__1 )
-            // InternalFlaDsl.g:1635:2: rule__OutputExpression__Group__0__Impl rule__OutputExpression__Group__1
-            {
-            pushFollow(FOLLOW_9);
-            rule__OutputExpression__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__OutputExpression__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutputExpression__Group__0"
-
-
-    // $ANTLR start "rule__OutputExpression__Group__0__Impl"
-    // InternalFlaDsl.g:1642:1: rule__OutputExpression__Group__0__Impl : ( ( rule__OutputExpression__Alternatives_0 ) ) ;
-    public final void rule__OutputExpression__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1646:1: ( ( ( rule__OutputExpression__Alternatives_0 ) ) )
-            // InternalFlaDsl.g:1647:1: ( ( rule__OutputExpression__Alternatives_0 ) )
-            {
-            // InternalFlaDsl.g:1647:1: ( ( rule__OutputExpression__Alternatives_0 ) )
-            // InternalFlaDsl.g:1648:1: ( rule__OutputExpression__Alternatives_0 )
-            {
-             before(grammarAccess.getOutputExpressionAccess().getAlternatives_0()); 
-            // InternalFlaDsl.g:1649:1: ( rule__OutputExpression__Alternatives_0 )
-            // InternalFlaDsl.g:1649:2: rule__OutputExpression__Alternatives_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__OutputExpression__Alternatives_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getOutputExpressionAccess().getAlternatives_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutputExpression__Group__0__Impl"
-
-
-    // $ANTLR start "rule__OutputExpression__Group__1"
-    // InternalFlaDsl.g:1659:1: rule__OutputExpression__Group__1 : rule__OutputExpression__Group__1__Impl rule__OutputExpression__Group__2 ;
-    public final void rule__OutputExpression__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1663:1: ( rule__OutputExpression__Group__1__Impl rule__OutputExpression__Group__2 )
-            // InternalFlaDsl.g:1664:2: rule__OutputExpression__Group__1__Impl rule__OutputExpression__Group__2
-            {
-            pushFollow(FOLLOW_10);
-            rule__OutputExpression__Group__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__OutputExpression__Group__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutputExpression__Group__1"
-
-
-    // $ANTLR start "rule__OutputExpression__Group__1__Impl"
-    // InternalFlaDsl.g:1671:1: rule__OutputExpression__Group__1__Impl : ( '.' ) ;
-    public final void rule__OutputExpression__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1675:1: ( ( '.' ) )
-            // InternalFlaDsl.g:1676:1: ( '.' )
-            {
-            // InternalFlaDsl.g:1676:1: ( '.' )
-            // InternalFlaDsl.g:1677:1: '.'
-            {
-             before(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getOutputExpressionAccess().getFullStopKeyword_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutputExpression__Group__1__Impl"
-
-
-    // $ANTLR start "rule__OutputExpression__Group__2"
-    // InternalFlaDsl.g:1690:1: rule__OutputExpression__Group__2 : rule__OutputExpression__Group__2__Impl ;
-    public final void rule__OutputExpression__Group__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1694:1: ( rule__OutputExpression__Group__2__Impl )
-            // InternalFlaDsl.g:1695:2: rule__OutputExpression__Group__2__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__OutputExpression__Group__2__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutputExpression__Group__2"
-
-
-    // $ANTLR start "rule__OutputExpression__Group__2__Impl"
-    // InternalFlaDsl.g:1701:1: rule__OutputExpression__Group__2__Impl : ( ( rule__OutputExpression__FailureExprAssignment_2 ) ) ;
-    public final void rule__OutputExpression__Group__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1705:1: ( ( ( rule__OutputExpression__FailureExprAssignment_2 ) ) )
-            // InternalFlaDsl.g:1706:1: ( ( rule__OutputExpression__FailureExprAssignment_2 ) )
-            {
-            // InternalFlaDsl.g:1706:1: ( ( rule__OutputExpression__FailureExprAssignment_2 ) )
-            // InternalFlaDsl.g:1707:1: ( rule__OutputExpression__FailureExprAssignment_2 )
-            {
-             before(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2()); 
-            // InternalFlaDsl.g:1708:1: ( rule__OutputExpression__FailureExprAssignment_2 )
-            // InternalFlaDsl.g:1708:2: rule__OutputExpression__FailureExprAssignment_2
-            {
-            pushFollow(FOLLOW_2);
-            rule__OutputExpression__FailureExprAssignment_2();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getOutputExpressionAccess().getFailureExprAssignment_2()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutputExpression__Group__2__Impl"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3__0"
-    // InternalFlaDsl.g:1724:1: rule__InFailureExpr__Group_3__0 : rule__InFailureExpr__Group_3__0__Impl rule__InFailureExpr__Group_3__1 ;
-    public final void rule__InFailureExpr__Group_3__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1728:1: ( rule__InFailureExpr__Group_3__0__Impl rule__InFailureExpr__Group_3__1 )
-            // InternalFlaDsl.g:1729:2: rule__InFailureExpr__Group_3__0__Impl rule__InFailureExpr__Group_3__1
-            {
-            pushFollow(FOLLOW_11);
-            rule__InFailureExpr__Group_3__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__InFailureExpr__Group_3__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3__0"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3__0__Impl"
-    // InternalFlaDsl.g:1736:1: rule__InFailureExpr__Group_3__0__Impl : ( '{' ) ;
-    public final void rule__InFailureExpr__Group_3__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1740:1: ( ( '{' ) )
-            // InternalFlaDsl.g:1741:1: ( '{' )
-            {
-            // InternalFlaDsl.g:1741:1: ( '{' )
-            // InternalFlaDsl.g:1742:1: '{'
-            {
-             before(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); 
-            match(input,37,FOLLOW_2); 
-             after(grammarAccess.getInFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3__0__Impl"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3__1"
-    // InternalFlaDsl.g:1755:1: rule__InFailureExpr__Group_3__1 : rule__InFailureExpr__Group_3__1__Impl rule__InFailureExpr__Group_3__2 ;
-    public final void rule__InFailureExpr__Group_3__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1759:1: ( rule__InFailureExpr__Group_3__1__Impl rule__InFailureExpr__Group_3__2 )
-            // InternalFlaDsl.g:1760:2: rule__InFailureExpr__Group_3__1__Impl rule__InFailureExpr__Group_3__2
-            {
-            pushFollow(FOLLOW_7);
-            rule__InFailureExpr__Group_3__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__InFailureExpr__Group_3__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3__1"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3__1__Impl"
-    // InternalFlaDsl.g:1767:1: rule__InFailureExpr__Group_3__1__Impl : ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) ) ;
-    public final void rule__InFailureExpr__Group_3__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1771:1: ( ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) ) )
-            // InternalFlaDsl.g:1772:1: ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) )
-            {
-            // InternalFlaDsl.g:1772:1: ( ( rule__InFailureExpr__FailuresAssignment_3_1 ) )
-            // InternalFlaDsl.g:1773:1: ( rule__InFailureExpr__FailuresAssignment_3_1 )
-            {
-             before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1()); 
-            // InternalFlaDsl.g:1774:1: ( rule__InFailureExpr__FailuresAssignment_3_1 )
-            // InternalFlaDsl.g:1774:2: rule__InFailureExpr__FailuresAssignment_3_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__InFailureExpr__FailuresAssignment_3_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3__1__Impl"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3__2"
-    // InternalFlaDsl.g:1784:1: rule__InFailureExpr__Group_3__2 : rule__InFailureExpr__Group_3__2__Impl rule__InFailureExpr__Group_3__3 ;
-    public final void rule__InFailureExpr__Group_3__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1788:1: ( rule__InFailureExpr__Group_3__2__Impl rule__InFailureExpr__Group_3__3 )
-            // InternalFlaDsl.g:1789:2: rule__InFailureExpr__Group_3__2__Impl rule__InFailureExpr__Group_3__3
-            {
-            pushFollow(FOLLOW_12);
-            rule__InFailureExpr__Group_3__2__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__InFailureExpr__Group_3__3();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3__2"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3__2__Impl"
-    // InternalFlaDsl.g:1796:1: rule__InFailureExpr__Group_3__2__Impl : ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) ) ;
-    public final void rule__InFailureExpr__Group_3__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1800:1: ( ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) ) )
-            // InternalFlaDsl.g:1801:1: ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) )
-            {
-            // InternalFlaDsl.g:1801:1: ( ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* ) )
-            // InternalFlaDsl.g:1802:1: ( ( rule__InFailureExpr__Group_3_2__0 ) ) ( ( rule__InFailureExpr__Group_3_2__0 )* )
-            {
-            // InternalFlaDsl.g:1802:1: ( ( rule__InFailureExpr__Group_3_2__0 ) )
-            // InternalFlaDsl.g:1803:1: ( rule__InFailureExpr__Group_3_2__0 )
-            {
-             before(grammarAccess.getInFailureExprAccess().getGroup_3_2()); 
-            // InternalFlaDsl.g:1804:1: ( rule__InFailureExpr__Group_3_2__0 )
-            // InternalFlaDsl.g:1804:2: rule__InFailureExpr__Group_3_2__0
-            {
-            pushFollow(FOLLOW_8);
-            rule__InFailureExpr__Group_3_2__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getInFailureExprAccess().getGroup_3_2()); 
-
-            }
-
-            // InternalFlaDsl.g:1807:1: ( ( rule__InFailureExpr__Group_3_2__0 )* )
-            // InternalFlaDsl.g:1808:1: ( rule__InFailureExpr__Group_3_2__0 )*
-            {
-             before(grammarAccess.getInFailureExprAccess().getGroup_3_2()); 
-            // InternalFlaDsl.g:1809:1: ( rule__InFailureExpr__Group_3_2__0 )*
-            loop17:
-            do {
-                int alt17=2;
-                int LA17_0 = input.LA(1);
-
-                if ( (LA17_0==35) ) {
-                    alt17=1;
-                }
-
-
-                switch (alt17) {
-            	case 1 :
-            	    // InternalFlaDsl.g:1809:2: rule__InFailureExpr__Group_3_2__0
-            	    {
-            	    pushFollow(FOLLOW_8);
-            	    rule__InFailureExpr__Group_3_2__0();
-
-            	    state._fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop17;
-                }
-            } while (true);
-
-             after(grammarAccess.getInFailureExprAccess().getGroup_3_2()); 
-
-            }
-
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3__2__Impl"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3__3"
-    // InternalFlaDsl.g:1820:1: rule__InFailureExpr__Group_3__3 : rule__InFailureExpr__Group_3__3__Impl ;
-    public final void rule__InFailureExpr__Group_3__3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1824:1: ( rule__InFailureExpr__Group_3__3__Impl )
-            // InternalFlaDsl.g:1825:2: rule__InFailureExpr__Group_3__3__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__InFailureExpr__Group_3__3__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3__3"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3__3__Impl"
-    // InternalFlaDsl.g:1831:1: rule__InFailureExpr__Group_3__3__Impl : ( '}' ) ;
-    public final void rule__InFailureExpr__Group_3__3__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1835:1: ( ( '}' ) )
-            // InternalFlaDsl.g:1836:1: ( '}' )
-            {
-            // InternalFlaDsl.g:1836:1: ( '}' )
-            // InternalFlaDsl.g:1837:1: '}'
-            {
-             before(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3()); 
-            match(input,38,FOLLOW_2); 
-             after(grammarAccess.getInFailureExprAccess().getRightCurlyBracketKeyword_3_3()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3__3__Impl"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3_2__0"
-    // InternalFlaDsl.g:1858:1: rule__InFailureExpr__Group_3_2__0 : rule__InFailureExpr__Group_3_2__0__Impl rule__InFailureExpr__Group_3_2__1 ;
-    public final void rule__InFailureExpr__Group_3_2__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1862:1: ( rule__InFailureExpr__Group_3_2__0__Impl rule__InFailureExpr__Group_3_2__1 )
-            // InternalFlaDsl.g:1863:2: rule__InFailureExpr__Group_3_2__0__Impl rule__InFailureExpr__Group_3_2__1
-            {
-            pushFollow(FOLLOW_11);
-            rule__InFailureExpr__Group_3_2__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__InFailureExpr__Group_3_2__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3_2__0"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3_2__0__Impl"
-    // InternalFlaDsl.g:1870:1: rule__InFailureExpr__Group_3_2__0__Impl : ( ',' ) ;
-    public final void rule__InFailureExpr__Group_3_2__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1874:1: ( ( ',' ) )
-            // InternalFlaDsl.g:1875:1: ( ',' )
-            {
-            // InternalFlaDsl.g:1875:1: ( ',' )
-            // InternalFlaDsl.g:1876:1: ','
-            {
-             before(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0()); 
-            match(input,35,FOLLOW_2); 
-             after(grammarAccess.getInFailureExprAccess().getCommaKeyword_3_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3_2__0__Impl"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3_2__1"
-    // InternalFlaDsl.g:1889:1: rule__InFailureExpr__Group_3_2__1 : rule__InFailureExpr__Group_3_2__1__Impl ;
-    public final void rule__InFailureExpr__Group_3_2__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1893:1: ( rule__InFailureExpr__Group_3_2__1__Impl )
-            // InternalFlaDsl.g:1894:2: rule__InFailureExpr__Group_3_2__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__InFailureExpr__Group_3_2__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3_2__1"
-
-
-    // $ANTLR start "rule__InFailureExpr__Group_3_2__1__Impl"
-    // InternalFlaDsl.g:1900:1: rule__InFailureExpr__Group_3_2__1__Impl : ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) ) ;
-    public final void rule__InFailureExpr__Group_3_2__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1904:1: ( ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) ) )
-            // InternalFlaDsl.g:1905:1: ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) )
-            {
-            // InternalFlaDsl.g:1905:1: ( ( rule__InFailureExpr__FailuresAssignment_3_2_1 ) )
-            // InternalFlaDsl.g:1906:1: ( rule__InFailureExpr__FailuresAssignment_3_2_1 )
-            {
-             before(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1()); 
-            // InternalFlaDsl.g:1907:1: ( rule__InFailureExpr__FailuresAssignment_3_2_1 )
-            // InternalFlaDsl.g:1907:2: rule__InFailureExpr__FailuresAssignment_3_2_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__InFailureExpr__FailuresAssignment_3_2_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getInFailureExprAccess().getFailuresAssignment_3_2_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__Group_3_2__1__Impl"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3__0"
-    // InternalFlaDsl.g:1921:1: rule__OutFailureExpr__Group_3__0 : rule__OutFailureExpr__Group_3__0__Impl rule__OutFailureExpr__Group_3__1 ;
-    public final void rule__OutFailureExpr__Group_3__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1925:1: ( rule__OutFailureExpr__Group_3__0__Impl rule__OutFailureExpr__Group_3__1 )
-            // InternalFlaDsl.g:1926:2: rule__OutFailureExpr__Group_3__0__Impl rule__OutFailureExpr__Group_3__1
-            {
-            pushFollow(FOLLOW_11);
-            rule__OutFailureExpr__Group_3__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__OutFailureExpr__Group_3__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3__0"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3__0__Impl"
-    // InternalFlaDsl.g:1933:1: rule__OutFailureExpr__Group_3__0__Impl : ( '{' ) ;
-    public final void rule__OutFailureExpr__Group_3__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1937:1: ( ( '{' ) )
-            // InternalFlaDsl.g:1938:1: ( '{' )
-            {
-            // InternalFlaDsl.g:1938:1: ( '{' )
-            // InternalFlaDsl.g:1939:1: '{'
-            {
-             before(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); 
-            match(input,37,FOLLOW_2); 
-             after(grammarAccess.getOutFailureExprAccess().getLeftCurlyBracketKeyword_3_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3__0__Impl"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3__1"
-    // InternalFlaDsl.g:1952:1: rule__OutFailureExpr__Group_3__1 : rule__OutFailureExpr__Group_3__1__Impl rule__OutFailureExpr__Group_3__2 ;
-    public final void rule__OutFailureExpr__Group_3__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1956:1: ( rule__OutFailureExpr__Group_3__1__Impl rule__OutFailureExpr__Group_3__2 )
-            // InternalFlaDsl.g:1957:2: rule__OutFailureExpr__Group_3__1__Impl rule__OutFailureExpr__Group_3__2
-            {
-            pushFollow(FOLLOW_7);
-            rule__OutFailureExpr__Group_3__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__OutFailureExpr__Group_3__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3__1"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3__1__Impl"
-    // InternalFlaDsl.g:1964:1: rule__OutFailureExpr__Group_3__1__Impl : ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) ) ;
-    public final void rule__OutFailureExpr__Group_3__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1968:1: ( ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) ) )
-            // InternalFlaDsl.g:1969:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) )
-            {
-            // InternalFlaDsl.g:1969:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_1 ) )
-            // InternalFlaDsl.g:1970:1: ( rule__OutFailureExpr__FailuresAssignment_3_1 )
-            {
-             before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1()); 
-            // InternalFlaDsl.g:1971:1: ( rule__OutFailureExpr__FailuresAssignment_3_1 )
-            // InternalFlaDsl.g:1971:2: rule__OutFailureExpr__FailuresAssignment_3_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__OutFailureExpr__FailuresAssignment_3_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3__1__Impl"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3__2"
-    // InternalFlaDsl.g:1981:1: rule__OutFailureExpr__Group_3__2 : rule__OutFailureExpr__Group_3__2__Impl rule__OutFailureExpr__Group_3__3 ;
-    public final void rule__OutFailureExpr__Group_3__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1985:1: ( rule__OutFailureExpr__Group_3__2__Impl rule__OutFailureExpr__Group_3__3 )
-            // InternalFlaDsl.g:1986:2: rule__OutFailureExpr__Group_3__2__Impl rule__OutFailureExpr__Group_3__3
-            {
-            pushFollow(FOLLOW_12);
-            rule__OutFailureExpr__Group_3__2__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__OutFailureExpr__Group_3__3();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3__2"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3__2__Impl"
-    // InternalFlaDsl.g:1993:1: rule__OutFailureExpr__Group_3__2__Impl : ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) ) ;
-    public final void rule__OutFailureExpr__Group_3__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:1997:1: ( ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) ) )
-            // InternalFlaDsl.g:1998:1: ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) )
-            {
-            // InternalFlaDsl.g:1998:1: ( ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* ) )
-            // InternalFlaDsl.g:1999:1: ( ( rule__OutFailureExpr__Group_3_2__0 ) ) ( ( rule__OutFailureExpr__Group_3_2__0 )* )
-            {
-            // InternalFlaDsl.g:1999:1: ( ( rule__OutFailureExpr__Group_3_2__0 ) )
-            // InternalFlaDsl.g:2000:1: ( rule__OutFailureExpr__Group_3_2__0 )
-            {
-             before(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); 
-            // InternalFlaDsl.g:2001:1: ( rule__OutFailureExpr__Group_3_2__0 )
-            // InternalFlaDsl.g:2001:2: rule__OutFailureExpr__Group_3_2__0
-            {
-            pushFollow(FOLLOW_8);
-            rule__OutFailureExpr__Group_3_2__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); 
-
-            }
-
-            // InternalFlaDsl.g:2004:1: ( ( rule__OutFailureExpr__Group_3_2__0 )* )
-            // InternalFlaDsl.g:2005:1: ( rule__OutFailureExpr__Group_3_2__0 )*
-            {
-             before(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); 
-            // InternalFlaDsl.g:2006:1: ( rule__OutFailureExpr__Group_3_2__0 )*
-            loop18:
-            do {
-                int alt18=2;
-                int LA18_0 = input.LA(1);
-
-                if ( (LA18_0==35) ) {
-                    alt18=1;
-                }
-
-
-                switch (alt18) {
-            	case 1 :
-            	    // InternalFlaDsl.g:2006:2: rule__OutFailureExpr__Group_3_2__0
-            	    {
-            	    pushFollow(FOLLOW_8);
-            	    rule__OutFailureExpr__Group_3_2__0();
-
-            	    state._fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop18;
-                }
-            } while (true);
-
-             after(grammarAccess.getOutFailureExprAccess().getGroup_3_2()); 
-
-            }
-
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3__2__Impl"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3__3"
-    // InternalFlaDsl.g:2017:1: rule__OutFailureExpr__Group_3__3 : rule__OutFailureExpr__Group_3__3__Impl ;
-    public final void rule__OutFailureExpr__Group_3__3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2021:1: ( rule__OutFailureExpr__Group_3__3__Impl )
-            // InternalFlaDsl.g:2022:2: rule__OutFailureExpr__Group_3__3__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__OutFailureExpr__Group_3__3__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3__3"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3__3__Impl"
-    // InternalFlaDsl.g:2028:1: rule__OutFailureExpr__Group_3__3__Impl : ( '}' ) ;
-    public final void rule__OutFailureExpr__Group_3__3__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2032:1: ( ( '}' ) )
-            // InternalFlaDsl.g:2033:1: ( '}' )
-            {
-            // InternalFlaDsl.g:2033:1: ( '}' )
-            // InternalFlaDsl.g:2034:1: '}'
-            {
-             before(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3()); 
-            match(input,38,FOLLOW_2); 
-             after(grammarAccess.getOutFailureExprAccess().getRightCurlyBracketKeyword_3_3()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3__3__Impl"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3_2__0"
-    // InternalFlaDsl.g:2055:1: rule__OutFailureExpr__Group_3_2__0 : rule__OutFailureExpr__Group_3_2__0__Impl rule__OutFailureExpr__Group_3_2__1 ;
-    public final void rule__OutFailureExpr__Group_3_2__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2059:1: ( rule__OutFailureExpr__Group_3_2__0__Impl rule__OutFailureExpr__Group_3_2__1 )
-            // InternalFlaDsl.g:2060:2: rule__OutFailureExpr__Group_3_2__0__Impl rule__OutFailureExpr__Group_3_2__1
-            {
-            pushFollow(FOLLOW_11);
-            rule__OutFailureExpr__Group_3_2__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__OutFailureExpr__Group_3_2__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3_2__0"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3_2__0__Impl"
-    // InternalFlaDsl.g:2067:1: rule__OutFailureExpr__Group_3_2__0__Impl : ( ',' ) ;
-    public final void rule__OutFailureExpr__Group_3_2__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2071:1: ( ( ',' ) )
-            // InternalFlaDsl.g:2072:1: ( ',' )
-            {
-            // InternalFlaDsl.g:2072:1: ( ',' )
-            // InternalFlaDsl.g:2073:1: ','
-            {
-             before(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0()); 
-            match(input,35,FOLLOW_2); 
-             after(grammarAccess.getOutFailureExprAccess().getCommaKeyword_3_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3_2__0__Impl"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3_2__1"
-    // InternalFlaDsl.g:2086:1: rule__OutFailureExpr__Group_3_2__1 : rule__OutFailureExpr__Group_3_2__1__Impl ;
-    public final void rule__OutFailureExpr__Group_3_2__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2090:1: ( rule__OutFailureExpr__Group_3_2__1__Impl )
-            // InternalFlaDsl.g:2091:2: rule__OutFailureExpr__Group_3_2__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__OutFailureExpr__Group_3_2__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3_2__1"
-
-
-    // $ANTLR start "rule__OutFailureExpr__Group_3_2__1__Impl"
-    // InternalFlaDsl.g:2097:1: rule__OutFailureExpr__Group_3_2__1__Impl : ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) ) ;
-    public final void rule__OutFailureExpr__Group_3_2__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2101:1: ( ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) ) )
-            // InternalFlaDsl.g:2102:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) )
-            {
-            // InternalFlaDsl.g:2102:1: ( ( rule__OutFailureExpr__FailuresAssignment_3_2_1 ) )
-            // InternalFlaDsl.g:2103:1: ( rule__OutFailureExpr__FailuresAssignment_3_2_1 )
-            {
-             before(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1()); 
-            // InternalFlaDsl.g:2104:1: ( rule__OutFailureExpr__FailuresAssignment_3_2_1 )
-            // InternalFlaDsl.g:2104:2: rule__OutFailureExpr__FailuresAssignment_3_2_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__OutFailureExpr__FailuresAssignment_3_2_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getOutFailureExprAccess().getFailuresAssignment_3_2_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__Group_3_2__1__Impl"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group__0"
-    // InternalFlaDsl.g:2118:1: rule__FailureDefinition__Group__0 : rule__FailureDefinition__Group__0__Impl rule__FailureDefinition__Group__1 ;
-    public final void rule__FailureDefinition__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2122:1: ( rule__FailureDefinition__Group__0__Impl rule__FailureDefinition__Group__1 )
-            // InternalFlaDsl.g:2123:2: rule__FailureDefinition__Group__0__Impl rule__FailureDefinition__Group__1
-            {
-            pushFollow(FOLLOW_11);
-            rule__FailureDefinition__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__FailureDefinition__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group__0"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group__0__Impl"
-    // InternalFlaDsl.g:2130:1: rule__FailureDefinition__Group__0__Impl : ( () ) ;
-    public final void rule__FailureDefinition__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2134:1: ( ( () ) )
-            // InternalFlaDsl.g:2135:1: ( () )
-            {
-            // InternalFlaDsl.g:2135:1: ( () )
-            // InternalFlaDsl.g:2136:1: ()
-            {
-             before(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0()); 
-            // InternalFlaDsl.g:2137:1: ()
-            // InternalFlaDsl.g:2139:1: 
-            {
-            }
-
-             after(grammarAccess.getFailureDefinitionAccess().getFailureDefinitionAction_0()); 
-
-            }
-
-
-            }
-
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group__0__Impl"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group__1"
-    // InternalFlaDsl.g:2149:1: rule__FailureDefinition__Group__1 : rule__FailureDefinition__Group__1__Impl rule__FailureDefinition__Group__2 ;
-    public final void rule__FailureDefinition__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2153:1: ( rule__FailureDefinition__Group__1__Impl rule__FailureDefinition__Group__2 )
-            // InternalFlaDsl.g:2154:2: rule__FailureDefinition__Group__1__Impl rule__FailureDefinition__Group__2
-            {
-            pushFollow(FOLLOW_9);
-            rule__FailureDefinition__Group__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__FailureDefinition__Group__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group__1"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group__1__Impl"
-    // InternalFlaDsl.g:2161:1: rule__FailureDefinition__Group__1__Impl : ( ( rule__FailureDefinition__TypeAssignment_1 ) ) ;
-    public final void rule__FailureDefinition__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2165:1: ( ( ( rule__FailureDefinition__TypeAssignment_1 ) ) )
-            // InternalFlaDsl.g:2166:1: ( ( rule__FailureDefinition__TypeAssignment_1 ) )
-            {
-            // InternalFlaDsl.g:2166:1: ( ( rule__FailureDefinition__TypeAssignment_1 ) )
-            // InternalFlaDsl.g:2167:1: ( rule__FailureDefinition__TypeAssignment_1 )
-            {
-             before(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1()); 
-            // InternalFlaDsl.g:2168:1: ( rule__FailureDefinition__TypeAssignment_1 )
-            // InternalFlaDsl.g:2168:2: rule__FailureDefinition__TypeAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__FailureDefinition__TypeAssignment_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getFailureDefinitionAccess().getTypeAssignment_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group__1__Impl"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group__2"
-    // InternalFlaDsl.g:2178:1: rule__FailureDefinition__Group__2 : rule__FailureDefinition__Group__2__Impl ;
-    public final void rule__FailureDefinition__Group__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2182:1: ( rule__FailureDefinition__Group__2__Impl )
-            // InternalFlaDsl.g:2183:2: rule__FailureDefinition__Group__2__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__FailureDefinition__Group__2__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group__2"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group__2__Impl"
-    // InternalFlaDsl.g:2189:1: rule__FailureDefinition__Group__2__Impl : ( ( rule__FailureDefinition__Group_2__0 )? ) ;
-    public final void rule__FailureDefinition__Group__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2193:1: ( ( ( rule__FailureDefinition__Group_2__0 )? ) )
-            // InternalFlaDsl.g:2194:1: ( ( rule__FailureDefinition__Group_2__0 )? )
-            {
-            // InternalFlaDsl.g:2194:1: ( ( rule__FailureDefinition__Group_2__0 )? )
-            // InternalFlaDsl.g:2195:1: ( rule__FailureDefinition__Group_2__0 )?
-            {
-             before(grammarAccess.getFailureDefinitionAccess().getGroup_2()); 
-            // InternalFlaDsl.g:2196:1: ( rule__FailureDefinition__Group_2__0 )?
-            int alt19=2;
-            int LA19_0 = input.LA(1);
-
-            if ( (LA19_0==36) ) {
-                alt19=1;
-            }
-            switch (alt19) {
-                case 1 :
-                    // InternalFlaDsl.g:2196:2: rule__FailureDefinition__Group_2__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__FailureDefinition__Group_2__0();
-
-                    state._fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-             after(grammarAccess.getFailureDefinitionAccess().getGroup_2()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group__2__Impl"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group_2__0"
-    // InternalFlaDsl.g:2212:1: rule__FailureDefinition__Group_2__0 : rule__FailureDefinition__Group_2__0__Impl rule__FailureDefinition__Group_2__1 ;
-    public final void rule__FailureDefinition__Group_2__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2216:1: ( rule__FailureDefinition__Group_2__0__Impl rule__FailureDefinition__Group_2__1 )
-            // InternalFlaDsl.g:2217:2: rule__FailureDefinition__Group_2__0__Impl rule__FailureDefinition__Group_2__1
-            {
-            pushFollow(FOLLOW_13);
-            rule__FailureDefinition__Group_2__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__FailureDefinition__Group_2__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group_2__0"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group_2__0__Impl"
-    // InternalFlaDsl.g:2224:1: rule__FailureDefinition__Group_2__0__Impl : ( '.' ) ;
-    public final void rule__FailureDefinition__Group_2__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2228:1: ( ( '.' ) )
-            // InternalFlaDsl.g:2229:1: ( '.' )
-            {
-            // InternalFlaDsl.g:2229:1: ( '.' )
-            // InternalFlaDsl.g:2230:1: '.'
-            {
-             before(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getFailureDefinitionAccess().getFullStopKeyword_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group_2__0__Impl"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group_2__1"
-    // InternalFlaDsl.g:2243:1: rule__FailureDefinition__Group_2__1 : rule__FailureDefinition__Group_2__1__Impl ;
-    public final void rule__FailureDefinition__Group_2__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2247:1: ( rule__FailureDefinition__Group_2__1__Impl )
-            // InternalFlaDsl.g:2248:2: rule__FailureDefinition__Group_2__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__FailureDefinition__Group_2__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group_2__1"
-
-
-    // $ANTLR start "rule__FailureDefinition__Group_2__1__Impl"
-    // InternalFlaDsl.g:2254:1: rule__FailureDefinition__Group_2__1__Impl : ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) ) ;
-    public final void rule__FailureDefinition__Group_2__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2258:1: ( ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) ) )
-            // InternalFlaDsl.g:2259:1: ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) )
-            {
-            // InternalFlaDsl.g:2259:1: ( ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 ) )
-            // InternalFlaDsl.g:2260:1: ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 )
-            {
-             before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1()); 
-            // InternalFlaDsl.g:2261:1: ( rule__FailureDefinition__AcidAvoidableAssignment_2_1 )
-            // InternalFlaDsl.g:2261:2: rule__FailureDefinition__AcidAvoidableAssignment_2_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__FailureDefinition__AcidAvoidableAssignment_2_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableAssignment_2_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__Group_2__1__Impl"
-
-
-    // $ANTLR start "rule__NoFailureDefinition__Group__0"
-    // InternalFlaDsl.g:2275:1: rule__NoFailureDefinition__Group__0 : rule__NoFailureDefinition__Group__0__Impl rule__NoFailureDefinition__Group__1 ;
-    public final void rule__NoFailureDefinition__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2279:1: ( rule__NoFailureDefinition__Group__0__Impl rule__NoFailureDefinition__Group__1 )
-            // InternalFlaDsl.g:2280:2: rule__NoFailureDefinition__Group__0__Impl rule__NoFailureDefinition__Group__1
-            {
-            pushFollow(FOLLOW_14);
-            rule__NoFailureDefinition__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__NoFailureDefinition__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__NoFailureDefinition__Group__0"
-
-
-    // $ANTLR start "rule__NoFailureDefinition__Group__0__Impl"
-    // InternalFlaDsl.g:2287:1: rule__NoFailureDefinition__Group__0__Impl : ( () ) ;
-    public final void rule__NoFailureDefinition__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2291:1: ( ( () ) )
-            // InternalFlaDsl.g:2292:1: ( () )
-            {
-            // InternalFlaDsl.g:2292:1: ( () )
-            // InternalFlaDsl.g:2293:1: ()
-            {
-             before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0()); 
-            // InternalFlaDsl.g:2294:1: ()
-            // InternalFlaDsl.g:2296:1: 
-            {
-            }
-
-             after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureDefinitionAction_0()); 
-
-            }
-
-
-            }
-
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__NoFailureDefinition__Group__0__Impl"
-
-
-    // $ANTLR start "rule__NoFailureDefinition__Group__1"
-    // InternalFlaDsl.g:2306:1: rule__NoFailureDefinition__Group__1 : rule__NoFailureDefinition__Group__1__Impl ;
-    public final void rule__NoFailureDefinition__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2310:1: ( rule__NoFailureDefinition__Group__1__Impl )
-            // InternalFlaDsl.g:2311:2: rule__NoFailureDefinition__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__NoFailureDefinition__Group__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__NoFailureDefinition__Group__1"
-
-
-    // $ANTLR start "rule__NoFailureDefinition__Group__1__Impl"
-    // InternalFlaDsl.g:2317:1: rule__NoFailureDefinition__Group__1__Impl : ( 'noFailure' ) ;
-    public final void rule__NoFailureDefinition__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2321:1: ( ( 'noFailure' ) )
-            // InternalFlaDsl.g:2322:1: ( 'noFailure' )
-            {
-            // InternalFlaDsl.g:2322:1: ( 'noFailure' )
-            // InternalFlaDsl.g:2323:1: 'noFailure'
-            {
-             before(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1()); 
-            match(input,39,FOLLOW_2); 
-             after(grammarAccess.getNoFailureDefinitionAccess().getNoFailureKeyword_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__NoFailureDefinition__Group__1__Impl"
-
-
-    // $ANTLR start "rule__ComplexNofailureDefinition__Group__0"
-    // InternalFlaDsl.g:2340:1: rule__ComplexNofailureDefinition__Group__0 : rule__ComplexNofailureDefinition__Group__0__Impl rule__ComplexNofailureDefinition__Group__1 ;
-    public final void rule__ComplexNofailureDefinition__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2344:1: ( rule__ComplexNofailureDefinition__Group__0__Impl rule__ComplexNofailureDefinition__Group__1 )
-            // InternalFlaDsl.g:2345:2: rule__ComplexNofailureDefinition__Group__0__Impl rule__ComplexNofailureDefinition__Group__1
-            {
-            pushFollow(FOLLOW_14);
-            rule__ComplexNofailureDefinition__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ComplexNofailureDefinition__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ComplexNofailureDefinition__Group__0"
-
-
-    // $ANTLR start "rule__ComplexNofailureDefinition__Group__0__Impl"
-    // InternalFlaDsl.g:2352:1: rule__ComplexNofailureDefinition__Group__0__Impl : ( () ) ;
-    public final void rule__ComplexNofailureDefinition__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2356:1: ( ( () ) )
-            // InternalFlaDsl.g:2357:1: ( () )
-            {
-            // InternalFlaDsl.g:2357:1: ( () )
-            // InternalFlaDsl.g:2358:1: ()
-            {
-             before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0()); 
-            // InternalFlaDsl.g:2359:1: ()
-            // InternalFlaDsl.g:2361:1: 
-            {
-            }
-
-             after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureDefinitionAction_0()); 
-
-            }
-
-
-            }
-
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ComplexNofailureDefinition__Group__0__Impl"
-
-
-    // $ANTLR start "rule__ComplexNofailureDefinition__Group__1"
-    // InternalFlaDsl.g:2371:1: rule__ComplexNofailureDefinition__Group__1 : rule__ComplexNofailureDefinition__Group__1__Impl rule__ComplexNofailureDefinition__Group__2 ;
-    public final void rule__ComplexNofailureDefinition__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2375:1: ( rule__ComplexNofailureDefinition__Group__1__Impl rule__ComplexNofailureDefinition__Group__2 )
-            // InternalFlaDsl.g:2376:2: rule__ComplexNofailureDefinition__Group__1__Impl rule__ComplexNofailureDefinition__Group__2
-            {
-            pushFollow(FOLLOW_9);
-            rule__ComplexNofailureDefinition__Group__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ComplexNofailureDefinition__Group__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ComplexNofailureDefinition__Group__1"
-
-
-    // $ANTLR start "rule__ComplexNofailureDefinition__Group__1__Impl"
-    // InternalFlaDsl.g:2383:1: rule__ComplexNofailureDefinition__Group__1__Impl : ( 'noFailure' ) ;
-    public final void rule__ComplexNofailureDefinition__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2387:1: ( ( 'noFailure' ) )
-            // InternalFlaDsl.g:2388:1: ( 'noFailure' )
-            {
-            // InternalFlaDsl.g:2388:1: ( 'noFailure' )
-            // InternalFlaDsl.g:2389:1: 'noFailure'
-            {
-             before(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1()); 
-            match(input,39,FOLLOW_2); 
-             after(grammarAccess.getComplexNofailureDefinitionAccess().getNoFailureKeyword_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ComplexNofailureDefinition__Group__1__Impl"
-
-
-    // $ANTLR start "rule__ComplexNofailureDefinition__Group__2"
-    // InternalFlaDsl.g:2402:1: rule__ComplexNofailureDefinition__Group__2 : rule__ComplexNofailureDefinition__Group__2__Impl rule__ComplexNofailureDefinition__Group__3 ;
-    public final void rule__ComplexNofailureDefinition__Group__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2406:1: ( rule__ComplexNofailureDefinition__Group__2__Impl rule__ComplexNofailureDefinition__Group__3 )
-            // InternalFlaDsl.g:2407:2: rule__ComplexNofailureDefinition__Group__2__Impl rule__ComplexNofailureDefinition__Group__3
-            {
-            pushFollow(FOLLOW_15);
-            rule__ComplexNofailureDefinition__Group__2__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ComplexNofailureDefinition__Group__3();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ComplexNofailureDefinition__Group__2"
-
-
-    // $ANTLR start "rule__ComplexNofailureDefinition__Group__2__Impl"
-    // InternalFlaDsl.g:2414:1: rule__ComplexNofailureDefinition__Group__2__Impl : ( '.' ) ;
-    public final void rule__ComplexNofailureDefinition__Group__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2418:1: ( ( '.' ) )
-            // InternalFlaDsl.g:2419:1: ( '.' )
-            {
-            // InternalFlaDsl.g:2419:1: ( '.' )
-            // InternalFlaDsl.g:2420:1: '.'
-            {
-             before(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getComplexNofailureDefinitionAccess().getFullStopKeyword_2()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ComplexNofailureDefinition__Group__2__Impl"
-
-
-    // $ANTLR start "rule__ComplexNofailureDefinition__Group__3"
-    // InternalFlaDsl.g:2433:1: rule__ComplexNofailureDefinition__Group__3 : rule__ComplexNofailureDefinition__Group__3__Impl ;
-    public final void rule__ComplexNofailureDefinition__Group__3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2437:1: ( rule__ComplexNofailureDefinition__Group__3__Impl )
-            // InternalFlaDsl.g:2438:2: rule__ComplexNofailureDefinition__Group__3__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__ComplexNofailureDefinition__Group__3__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ComplexNofailureDefinition__Group__3"
-
-
-    // $ANTLR start "rule__ComplexNofailureDefinition__Group__3__Impl"
-    // InternalFlaDsl.g:2444:1: rule__ComplexNofailureDefinition__Group__3__Impl : ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) ) ;
-    public final void rule__ComplexNofailureDefinition__Group__3__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2448:1: ( ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) ) )
-            // InternalFlaDsl.g:2449:1: ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) )
-            {
-            // InternalFlaDsl.g:2449:1: ( ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 ) )
-            // InternalFlaDsl.g:2450:1: ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 )
-            {
-             before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3()); 
-            // InternalFlaDsl.g:2451:1: ( rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 )
-            // InternalFlaDsl.g:2451:2: rule__ComplexNofailureDefinition__AcidMitigationAssignment_3
-            {
-            pushFollow(FOLLOW_2);
-            rule__ComplexNofailureDefinition__AcidMitigationAssignment_3();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationAssignment_3()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ComplexNofailureDefinition__Group__3__Impl"
-
-
-    // $ANTLR start "rule__WildcardDefinition__Group__0"
-    // InternalFlaDsl.g:2469:1: rule__WildcardDefinition__Group__0 : rule__WildcardDefinition__Group__0__Impl rule__WildcardDefinition__Group__1 ;
-    public final void rule__WildcardDefinition__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2473:1: ( rule__WildcardDefinition__Group__0__Impl rule__WildcardDefinition__Group__1 )
-            // InternalFlaDsl.g:2474:2: rule__WildcardDefinition__Group__0__Impl rule__WildcardDefinition__Group__1
-            {
-            pushFollow(FOLLOW_16);
-            rule__WildcardDefinition__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__WildcardDefinition__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WildcardDefinition__Group__0"
-
-
-    // $ANTLR start "rule__WildcardDefinition__Group__0__Impl"
-    // InternalFlaDsl.g:2481:1: rule__WildcardDefinition__Group__0__Impl : ( () ) ;
-    public final void rule__WildcardDefinition__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2485:1: ( ( () ) )
-            // InternalFlaDsl.g:2486:1: ( () )
-            {
-            // InternalFlaDsl.g:2486:1: ( () )
-            // InternalFlaDsl.g:2487:1: ()
-            {
-             before(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0()); 
-            // InternalFlaDsl.g:2488:1: ()
-            // InternalFlaDsl.g:2490:1: 
-            {
-            }
-
-             after(grammarAccess.getWildcardDefinitionAccess().getWildcardDefinitionAction_0()); 
-
-            }
-
-
-            }
-
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WildcardDefinition__Group__0__Impl"
-
-
-    // $ANTLR start "rule__WildcardDefinition__Group__1"
-    // InternalFlaDsl.g:2500:1: rule__WildcardDefinition__Group__1 : rule__WildcardDefinition__Group__1__Impl ;
-    public final void rule__WildcardDefinition__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2504:1: ( rule__WildcardDefinition__Group__1__Impl )
-            // InternalFlaDsl.g:2505:2: rule__WildcardDefinition__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__WildcardDefinition__Group__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WildcardDefinition__Group__1"
-
-
-    // $ANTLR start "rule__WildcardDefinition__Group__1__Impl"
-    // InternalFlaDsl.g:2511:1: rule__WildcardDefinition__Group__1__Impl : ( 'wildcard' ) ;
-    public final void rule__WildcardDefinition__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2515:1: ( ( 'wildcard' ) )
-            // InternalFlaDsl.g:2516:1: ( 'wildcard' )
-            {
-            // InternalFlaDsl.g:2516:1: ( 'wildcard' )
-            // InternalFlaDsl.g:2517:1: 'wildcard'
-            {
-             before(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1()); 
-            match(input,40,FOLLOW_2); 
-             after(grammarAccess.getWildcardDefinitionAccess().getWildcardKeyword_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WildcardDefinition__Group__1__Impl"
-
-
-    // $ANTLR start "rule__VariableDefinition__Group__0"
-    // InternalFlaDsl.g:2534:1: rule__VariableDefinition__Group__0 : rule__VariableDefinition__Group__0__Impl rule__VariableDefinition__Group__1 ;
-    public final void rule__VariableDefinition__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2538:1: ( rule__VariableDefinition__Group__0__Impl rule__VariableDefinition__Group__1 )
-            // InternalFlaDsl.g:2539:2: rule__VariableDefinition__Group__0__Impl rule__VariableDefinition__Group__1
-            {
-            pushFollow(FOLLOW_10);
-            rule__VariableDefinition__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__VariableDefinition__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__VariableDefinition__Group__0"
-
-
-    // $ANTLR start "rule__VariableDefinition__Group__0__Impl"
-    // InternalFlaDsl.g:2546:1: rule__VariableDefinition__Group__0__Impl : ( () ) ;
-    public final void rule__VariableDefinition__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2550:1: ( ( () ) )
-            // InternalFlaDsl.g:2551:1: ( () )
-            {
-            // InternalFlaDsl.g:2551:1: ( () )
-            // InternalFlaDsl.g:2552:1: ()
-            {
-             before(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0()); 
-            // InternalFlaDsl.g:2553:1: ()
-            // InternalFlaDsl.g:2555:1: 
-            {
-            }
-
-             after(grammarAccess.getVariableDefinitionAccess().getVariableDefinitionAction_0()); 
-
-            }
-
-
-            }
-
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__VariableDefinition__Group__0__Impl"
-
-
-    // $ANTLR start "rule__VariableDefinition__Group__1"
-    // InternalFlaDsl.g:2565:1: rule__VariableDefinition__Group__1 : rule__VariableDefinition__Group__1__Impl ;
-    public final void rule__VariableDefinition__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2569:1: ( rule__VariableDefinition__Group__1__Impl )
-            // InternalFlaDsl.g:2570:2: rule__VariableDefinition__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__VariableDefinition__Group__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__VariableDefinition__Group__1"
-
-
-    // $ANTLR start "rule__VariableDefinition__Group__1__Impl"
-    // InternalFlaDsl.g:2576:1: rule__VariableDefinition__Group__1__Impl : ( ( rule__VariableDefinition__VariableNameAssignment_1 ) ) ;
-    public final void rule__VariableDefinition__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2580:1: ( ( ( rule__VariableDefinition__VariableNameAssignment_1 ) ) )
-            // InternalFlaDsl.g:2581:1: ( ( rule__VariableDefinition__VariableNameAssignment_1 ) )
-            {
-            // InternalFlaDsl.g:2581:1: ( ( rule__VariableDefinition__VariableNameAssignment_1 ) )
-            // InternalFlaDsl.g:2582:1: ( rule__VariableDefinition__VariableNameAssignment_1 )
-            {
-             before(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1()); 
-            // InternalFlaDsl.g:2583:1: ( rule__VariableDefinition__VariableNameAssignment_1 )
-            // InternalFlaDsl.g:2583:2: rule__VariableDefinition__VariableNameAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__VariableDefinition__VariableNameAssignment_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getVariableDefinitionAccess().getVariableNameAssignment_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__VariableDefinition__Group__1__Impl"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__0"
-    // InternalFlaDsl.g:2597:1: rule__ACIDavoidable__Group__0 : rule__ACIDavoidable__Group__0__Impl rule__ACIDavoidable__Group__1 ;
-    public final void rule__ACIDavoidable__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2601:1: ( rule__ACIDavoidable__Group__0__Impl rule__ACIDavoidable__Group__1 )
-            // InternalFlaDsl.g:2602:2: rule__ACIDavoidable__Group__0__Impl rule__ACIDavoidable__Group__1
-            {
-            pushFollow(FOLLOW_9);
-            rule__ACIDavoidable__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__0"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__0__Impl"
-    // InternalFlaDsl.g:2609:1: rule__ACIDavoidable__Group__0__Impl : ( ( rule__ACIDavoidable__AAssignment_0 ) ) ;
-    public final void rule__ACIDavoidable__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2613:1: ( ( ( rule__ACIDavoidable__AAssignment_0 ) ) )
-            // InternalFlaDsl.g:2614:1: ( ( rule__ACIDavoidable__AAssignment_0 ) )
-            {
-            // InternalFlaDsl.g:2614:1: ( ( rule__ACIDavoidable__AAssignment_0 ) )
-            // InternalFlaDsl.g:2615:1: ( rule__ACIDavoidable__AAssignment_0 )
-            {
-             before(grammarAccess.getACIDavoidableAccess().getAAssignment_0()); 
-            // InternalFlaDsl.g:2616:1: ( rule__ACIDavoidable__AAssignment_0 )
-            // InternalFlaDsl.g:2616:2: rule__ACIDavoidable__AAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__AAssignment_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDavoidableAccess().getAAssignment_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__0__Impl"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__1"
-    // InternalFlaDsl.g:2626:1: rule__ACIDavoidable__Group__1 : rule__ACIDavoidable__Group__1__Impl rule__ACIDavoidable__Group__2 ;
-    public final void rule__ACIDavoidable__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2630:1: ( rule__ACIDavoidable__Group__1__Impl rule__ACIDavoidable__Group__2 )
-            // InternalFlaDsl.g:2631:2: rule__ACIDavoidable__Group__1__Impl rule__ACIDavoidable__Group__2
-            {
-            pushFollow(FOLLOW_17);
-            rule__ACIDavoidable__Group__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__Group__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__1"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__1__Impl"
-    // InternalFlaDsl.g:2638:1: rule__ACIDavoidable__Group__1__Impl : ( '.' ) ;
-    public final void rule__ACIDavoidable__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2642:1: ( ( '.' ) )
-            // InternalFlaDsl.g:2643:1: ( '.' )
-            {
-            // InternalFlaDsl.g:2643:1: ( '.' )
-            // InternalFlaDsl.g:2644:1: '.'
-            {
-             before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__1__Impl"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__2"
-    // InternalFlaDsl.g:2657:1: rule__ACIDavoidable__Group__2 : rule__ACIDavoidable__Group__2__Impl rule__ACIDavoidable__Group__3 ;
-    public final void rule__ACIDavoidable__Group__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2661:1: ( rule__ACIDavoidable__Group__2__Impl rule__ACIDavoidable__Group__3 )
-            // InternalFlaDsl.g:2662:2: rule__ACIDavoidable__Group__2__Impl rule__ACIDavoidable__Group__3
-            {
-            pushFollow(FOLLOW_9);
-            rule__ACIDavoidable__Group__2__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__Group__3();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__2"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__2__Impl"
-    // InternalFlaDsl.g:2669:1: rule__ACIDavoidable__Group__2__Impl : ( ( rule__ACIDavoidable__CAssignment_2 ) ) ;
-    public final void rule__ACIDavoidable__Group__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2673:1: ( ( ( rule__ACIDavoidable__CAssignment_2 ) ) )
-            // InternalFlaDsl.g:2674:1: ( ( rule__ACIDavoidable__CAssignment_2 ) )
-            {
-            // InternalFlaDsl.g:2674:1: ( ( rule__ACIDavoidable__CAssignment_2 ) )
-            // InternalFlaDsl.g:2675:1: ( rule__ACIDavoidable__CAssignment_2 )
-            {
-             before(grammarAccess.getACIDavoidableAccess().getCAssignment_2()); 
-            // InternalFlaDsl.g:2676:1: ( rule__ACIDavoidable__CAssignment_2 )
-            // InternalFlaDsl.g:2676:2: rule__ACIDavoidable__CAssignment_2
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__CAssignment_2();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDavoidableAccess().getCAssignment_2()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__2__Impl"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__3"
-    // InternalFlaDsl.g:2686:1: rule__ACIDavoidable__Group__3 : rule__ACIDavoidable__Group__3__Impl rule__ACIDavoidable__Group__4 ;
-    public final void rule__ACIDavoidable__Group__3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2690:1: ( rule__ACIDavoidable__Group__3__Impl rule__ACIDavoidable__Group__4 )
-            // InternalFlaDsl.g:2691:2: rule__ACIDavoidable__Group__3__Impl rule__ACIDavoidable__Group__4
-            {
-            pushFollow(FOLLOW_18);
-            rule__ACIDavoidable__Group__3__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__Group__4();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__3"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__3__Impl"
-    // InternalFlaDsl.g:2698:1: rule__ACIDavoidable__Group__3__Impl : ( '.' ) ;
-    public final void rule__ACIDavoidable__Group__3__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2702:1: ( ( '.' ) )
-            // InternalFlaDsl.g:2703:1: ( '.' )
-            {
-            // InternalFlaDsl.g:2703:1: ( '.' )
-            // InternalFlaDsl.g:2704:1: '.'
-            {
-             before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_3()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__3__Impl"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__4"
-    // InternalFlaDsl.g:2717:1: rule__ACIDavoidable__Group__4 : rule__ACIDavoidable__Group__4__Impl rule__ACIDavoidable__Group__5 ;
-    public final void rule__ACIDavoidable__Group__4() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2721:1: ( rule__ACIDavoidable__Group__4__Impl rule__ACIDavoidable__Group__5 )
-            // InternalFlaDsl.g:2722:2: rule__ACIDavoidable__Group__4__Impl rule__ACIDavoidable__Group__5
-            {
-            pushFollow(FOLLOW_9);
-            rule__ACIDavoidable__Group__4__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__Group__5();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__4"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__4__Impl"
-    // InternalFlaDsl.g:2729:1: rule__ACIDavoidable__Group__4__Impl : ( ( rule__ACIDavoidable__IAssignment_4 ) ) ;
-    public final void rule__ACIDavoidable__Group__4__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2733:1: ( ( ( rule__ACIDavoidable__IAssignment_4 ) ) )
-            // InternalFlaDsl.g:2734:1: ( ( rule__ACIDavoidable__IAssignment_4 ) )
-            {
-            // InternalFlaDsl.g:2734:1: ( ( rule__ACIDavoidable__IAssignment_4 ) )
-            // InternalFlaDsl.g:2735:1: ( rule__ACIDavoidable__IAssignment_4 )
-            {
-             before(grammarAccess.getACIDavoidableAccess().getIAssignment_4()); 
-            // InternalFlaDsl.g:2736:1: ( rule__ACIDavoidable__IAssignment_4 )
-            // InternalFlaDsl.g:2736:2: rule__ACIDavoidable__IAssignment_4
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__IAssignment_4();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDavoidableAccess().getIAssignment_4()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__4__Impl"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__5"
-    // InternalFlaDsl.g:2746:1: rule__ACIDavoidable__Group__5 : rule__ACIDavoidable__Group__5__Impl rule__ACIDavoidable__Group__6 ;
-    public final void rule__ACIDavoidable__Group__5() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2750:1: ( rule__ACIDavoidable__Group__5__Impl rule__ACIDavoidable__Group__6 )
-            // InternalFlaDsl.g:2751:2: rule__ACIDavoidable__Group__5__Impl rule__ACIDavoidable__Group__6
-            {
-            pushFollow(FOLLOW_19);
-            rule__ACIDavoidable__Group__5__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__Group__6();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__5"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__5__Impl"
-    // InternalFlaDsl.g:2758:1: rule__ACIDavoidable__Group__5__Impl : ( '.' ) ;
-    public final void rule__ACIDavoidable__Group__5__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2762:1: ( ( '.' ) )
-            // InternalFlaDsl.g:2763:1: ( '.' )
-            {
-            // InternalFlaDsl.g:2763:1: ( '.' )
-            // InternalFlaDsl.g:2764:1: '.'
-            {
-             before(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getACIDavoidableAccess().getFullStopKeyword_5()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__5__Impl"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__6"
-    // InternalFlaDsl.g:2777:1: rule__ACIDavoidable__Group__6 : rule__ACIDavoidable__Group__6__Impl ;
-    public final void rule__ACIDavoidable__Group__6() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2781:1: ( rule__ACIDavoidable__Group__6__Impl )
-            // InternalFlaDsl.g:2782:2: rule__ACIDavoidable__Group__6__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__Group__6__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__6"
-
-
-    // $ANTLR start "rule__ACIDavoidable__Group__6__Impl"
-    // InternalFlaDsl.g:2788:1: rule__ACIDavoidable__Group__6__Impl : ( ( rule__ACIDavoidable__DAssignment_6 ) ) ;
-    public final void rule__ACIDavoidable__Group__6__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2792:1: ( ( ( rule__ACIDavoidable__DAssignment_6 ) ) )
-            // InternalFlaDsl.g:2793:1: ( ( rule__ACIDavoidable__DAssignment_6 ) )
-            {
-            // InternalFlaDsl.g:2793:1: ( ( rule__ACIDavoidable__DAssignment_6 ) )
-            // InternalFlaDsl.g:2794:1: ( rule__ACIDavoidable__DAssignment_6 )
-            {
-             before(grammarAccess.getACIDavoidableAccess().getDAssignment_6()); 
-            // InternalFlaDsl.g:2795:1: ( rule__ACIDavoidable__DAssignment_6 )
-            // InternalFlaDsl.g:2795:2: rule__ACIDavoidable__DAssignment_6
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDavoidable__DAssignment_6();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDavoidableAccess().getDAssignment_6()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__Group__6__Impl"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__0"
-    // InternalFlaDsl.g:2819:1: rule__ACIDMitigation__Group__0 : rule__ACIDMitigation__Group__0__Impl rule__ACIDMitigation__Group__1 ;
-    public final void rule__ACIDMitigation__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2823:1: ( rule__ACIDMitigation__Group__0__Impl rule__ACIDMitigation__Group__1 )
-            // InternalFlaDsl.g:2824:2: rule__ACIDMitigation__Group__0__Impl rule__ACIDMitigation__Group__1
-            {
-            pushFollow(FOLLOW_9);
-            rule__ACIDMitigation__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__0"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__0__Impl"
-    // InternalFlaDsl.g:2831:1: rule__ACIDMitigation__Group__0__Impl : ( ( rule__ACIDMitigation__AAssignment_0 ) ) ;
-    public final void rule__ACIDMitigation__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2835:1: ( ( ( rule__ACIDMitigation__AAssignment_0 ) ) )
-            // InternalFlaDsl.g:2836:1: ( ( rule__ACIDMitigation__AAssignment_0 ) )
-            {
-            // InternalFlaDsl.g:2836:1: ( ( rule__ACIDMitigation__AAssignment_0 ) )
-            // InternalFlaDsl.g:2837:1: ( rule__ACIDMitigation__AAssignment_0 )
-            {
-             before(grammarAccess.getACIDMitigationAccess().getAAssignment_0()); 
-            // InternalFlaDsl.g:2838:1: ( rule__ACIDMitigation__AAssignment_0 )
-            // InternalFlaDsl.g:2838:2: rule__ACIDMitigation__AAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__AAssignment_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDMitigationAccess().getAAssignment_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__0__Impl"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__1"
-    // InternalFlaDsl.g:2848:1: rule__ACIDMitigation__Group__1 : rule__ACIDMitigation__Group__1__Impl rule__ACIDMitigation__Group__2 ;
-    public final void rule__ACIDMitigation__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2852:1: ( rule__ACIDMitigation__Group__1__Impl rule__ACIDMitigation__Group__2 )
-            // InternalFlaDsl.g:2853:2: rule__ACIDMitigation__Group__1__Impl rule__ACIDMitigation__Group__2
-            {
-            pushFollow(FOLLOW_20);
-            rule__ACIDMitigation__Group__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__Group__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__1"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__1__Impl"
-    // InternalFlaDsl.g:2860:1: rule__ACIDMitigation__Group__1__Impl : ( '.' ) ;
-    public final void rule__ACIDMitigation__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2864:1: ( ( '.' ) )
-            // InternalFlaDsl.g:2865:1: ( '.' )
-            {
-            // InternalFlaDsl.g:2865:1: ( '.' )
-            // InternalFlaDsl.g:2866:1: '.'
-            {
-             before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__1__Impl"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__2"
-    // InternalFlaDsl.g:2879:1: rule__ACIDMitigation__Group__2 : rule__ACIDMitigation__Group__2__Impl rule__ACIDMitigation__Group__3 ;
-    public final void rule__ACIDMitigation__Group__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2883:1: ( rule__ACIDMitigation__Group__2__Impl rule__ACIDMitigation__Group__3 )
-            // InternalFlaDsl.g:2884:2: rule__ACIDMitigation__Group__2__Impl rule__ACIDMitigation__Group__3
-            {
-            pushFollow(FOLLOW_9);
-            rule__ACIDMitigation__Group__2__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__Group__3();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__2"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__2__Impl"
-    // InternalFlaDsl.g:2891:1: rule__ACIDMitigation__Group__2__Impl : ( ( rule__ACIDMitigation__CAssignment_2 ) ) ;
-    public final void rule__ACIDMitigation__Group__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2895:1: ( ( ( rule__ACIDMitigation__CAssignment_2 ) ) )
-            // InternalFlaDsl.g:2896:1: ( ( rule__ACIDMitigation__CAssignment_2 ) )
-            {
-            // InternalFlaDsl.g:2896:1: ( ( rule__ACIDMitigation__CAssignment_2 ) )
-            // InternalFlaDsl.g:2897:1: ( rule__ACIDMitigation__CAssignment_2 )
-            {
-             before(grammarAccess.getACIDMitigationAccess().getCAssignment_2()); 
-            // InternalFlaDsl.g:2898:1: ( rule__ACIDMitigation__CAssignment_2 )
-            // InternalFlaDsl.g:2898:2: rule__ACIDMitigation__CAssignment_2
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__CAssignment_2();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDMitigationAccess().getCAssignment_2()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__2__Impl"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__3"
-    // InternalFlaDsl.g:2908:1: rule__ACIDMitigation__Group__3 : rule__ACIDMitigation__Group__3__Impl rule__ACIDMitigation__Group__4 ;
-    public final void rule__ACIDMitigation__Group__3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2912:1: ( rule__ACIDMitigation__Group__3__Impl rule__ACIDMitigation__Group__4 )
-            // InternalFlaDsl.g:2913:2: rule__ACIDMitigation__Group__3__Impl rule__ACIDMitigation__Group__4
-            {
-            pushFollow(FOLLOW_21);
-            rule__ACIDMitigation__Group__3__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__Group__4();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__3"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__3__Impl"
-    // InternalFlaDsl.g:2920:1: rule__ACIDMitigation__Group__3__Impl : ( '.' ) ;
-    public final void rule__ACIDMitigation__Group__3__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2924:1: ( ( '.' ) )
-            // InternalFlaDsl.g:2925:1: ( '.' )
-            {
-            // InternalFlaDsl.g:2925:1: ( '.' )
-            // InternalFlaDsl.g:2926:1: '.'
-            {
-             before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_3()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__3__Impl"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__4"
-    // InternalFlaDsl.g:2939:1: rule__ACIDMitigation__Group__4 : rule__ACIDMitigation__Group__4__Impl rule__ACIDMitigation__Group__5 ;
-    public final void rule__ACIDMitigation__Group__4() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2943:1: ( rule__ACIDMitigation__Group__4__Impl rule__ACIDMitigation__Group__5 )
-            // InternalFlaDsl.g:2944:2: rule__ACIDMitigation__Group__4__Impl rule__ACIDMitigation__Group__5
-            {
-            pushFollow(FOLLOW_9);
-            rule__ACIDMitigation__Group__4__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__Group__5();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__4"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__4__Impl"
-    // InternalFlaDsl.g:2951:1: rule__ACIDMitigation__Group__4__Impl : ( ( rule__ACIDMitigation__IAssignment_4 ) ) ;
-    public final void rule__ACIDMitigation__Group__4__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2955:1: ( ( ( rule__ACIDMitigation__IAssignment_4 ) ) )
-            // InternalFlaDsl.g:2956:1: ( ( rule__ACIDMitigation__IAssignment_4 ) )
-            {
-            // InternalFlaDsl.g:2956:1: ( ( rule__ACIDMitigation__IAssignment_4 ) )
-            // InternalFlaDsl.g:2957:1: ( rule__ACIDMitigation__IAssignment_4 )
-            {
-             before(grammarAccess.getACIDMitigationAccess().getIAssignment_4()); 
-            // InternalFlaDsl.g:2958:1: ( rule__ACIDMitigation__IAssignment_4 )
-            // InternalFlaDsl.g:2958:2: rule__ACIDMitigation__IAssignment_4
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__IAssignment_4();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDMitigationAccess().getIAssignment_4()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__4__Impl"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__5"
-    // InternalFlaDsl.g:2968:1: rule__ACIDMitigation__Group__5 : rule__ACIDMitigation__Group__5__Impl rule__ACIDMitigation__Group__6 ;
-    public final void rule__ACIDMitigation__Group__5() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2972:1: ( rule__ACIDMitigation__Group__5__Impl rule__ACIDMitigation__Group__6 )
-            // InternalFlaDsl.g:2973:2: rule__ACIDMitigation__Group__5__Impl rule__ACIDMitigation__Group__6
-            {
-            pushFollow(FOLLOW_22);
-            rule__ACIDMitigation__Group__5__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__Group__6();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__5"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__5__Impl"
-    // InternalFlaDsl.g:2980:1: rule__ACIDMitigation__Group__5__Impl : ( '.' ) ;
-    public final void rule__ACIDMitigation__Group__5__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:2984:1: ( ( '.' ) )
-            // InternalFlaDsl.g:2985:1: ( '.' )
-            {
-            // InternalFlaDsl.g:2985:1: ( '.' )
-            // InternalFlaDsl.g:2986:1: '.'
-            {
-             before(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5()); 
-            match(input,36,FOLLOW_2); 
-             after(grammarAccess.getACIDMitigationAccess().getFullStopKeyword_5()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__5__Impl"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__6"
-    // InternalFlaDsl.g:2999:1: rule__ACIDMitigation__Group__6 : rule__ACIDMitigation__Group__6__Impl ;
-    public final void rule__ACIDMitigation__Group__6() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3003:1: ( rule__ACIDMitigation__Group__6__Impl )
-            // InternalFlaDsl.g:3004:2: rule__ACIDMitigation__Group__6__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__Group__6__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__6"
-
-
-    // $ANTLR start "rule__ACIDMitigation__Group__6__Impl"
-    // InternalFlaDsl.g:3010:1: rule__ACIDMitigation__Group__6__Impl : ( ( rule__ACIDMitigation__DAssignment_6 ) ) ;
-    public final void rule__ACIDMitigation__Group__6__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3014:1: ( ( ( rule__ACIDMitigation__DAssignment_6 ) ) )
-            // InternalFlaDsl.g:3015:1: ( ( rule__ACIDMitigation__DAssignment_6 ) )
-            {
-            // InternalFlaDsl.g:3015:1: ( ( rule__ACIDMitigation__DAssignment_6 ) )
-            // InternalFlaDsl.g:3016:1: ( rule__ACIDMitigation__DAssignment_6 )
-            {
-             before(grammarAccess.getACIDMitigationAccess().getDAssignment_6()); 
-            // InternalFlaDsl.g:3017:1: ( rule__ACIDMitigation__DAssignment_6 )
-            // InternalFlaDsl.g:3017:2: rule__ACIDMitigation__DAssignment_6
-            {
-            pushFollow(FOLLOW_2);
-            rule__ACIDMitigation__DAssignment_6();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getACIDMitigationAccess().getDAssignment_6()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__Group__6__Impl"
-
-
-    // $ANTLR start "rule__Behaviour__RulesAssignment"
-    // InternalFlaDsl.g:3044:1: rule__Behaviour__RulesAssignment : ( ruleExpression ) ;
-    public final void rule__Behaviour__RulesAssignment() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3048:1: ( ( ruleExpression ) )
-            // InternalFlaDsl.g:3049:1: ( ruleExpression )
-            {
-            // InternalFlaDsl.g:3049:1: ( ruleExpression )
-            // InternalFlaDsl.g:3050:1: ruleExpression
-            {
-             before(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); 
-            pushFollow(FOLLOW_2);
-            ruleExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getBehaviourAccess().getRulesExpressionParserRuleCall_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Behaviour__RulesAssignment"
-
-
-    // $ANTLR start "rule__Expression__LhsAssignment_1"
-    // InternalFlaDsl.g:3059:1: rule__Expression__LhsAssignment_1 : ( ruleLhs ) ;
-    public final void rule__Expression__LhsAssignment_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3063:1: ( ( ruleLhs ) )
-            // InternalFlaDsl.g:3064:1: ( ruleLhs )
-            {
-            // InternalFlaDsl.g:3064:1: ( ruleLhs )
-            // InternalFlaDsl.g:3065:1: ruleLhs
-            {
-             before(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleLhs();
-
-            state._fsp--;
-
-             after(grammarAccess.getExpressionAccess().getLhsLhsParserRuleCall_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__LhsAssignment_1"
-
-
-    // $ANTLR start "rule__Expression__RhsAssignment_3"
-    // InternalFlaDsl.g:3074:1: rule__Expression__RhsAssignment_3 : ( ruleRhs ) ;
-    public final void rule__Expression__RhsAssignment_3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3078:1: ( ( ruleRhs ) )
-            // InternalFlaDsl.g:3079:1: ( ruleRhs )
-            {
-            // InternalFlaDsl.g:3079:1: ( ruleRhs )
-            // InternalFlaDsl.g:3080:1: ruleRhs
-            {
-             before(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_2);
-            ruleRhs();
-
-            state._fsp--;
-
-             after(grammarAccess.getExpressionAccess().getRhsRhsParserRuleCall_3_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Expression__RhsAssignment_3"
-
-
-    // $ANTLR start "rule__Lhs__FailuresAssignment_0"
-    // InternalFlaDsl.g:3089:1: rule__Lhs__FailuresAssignment_0 : ( ruleInputExpression ) ;
-    public final void rule__Lhs__FailuresAssignment_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3093:1: ( ( ruleInputExpression ) )
-            // InternalFlaDsl.g:3094:1: ( ruleInputExpression )
-            {
-            // InternalFlaDsl.g:3094:1: ( ruleInputExpression )
-            // InternalFlaDsl.g:3095:1: ruleInputExpression
-            {
-             before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); 
-            pushFollow(FOLLOW_2);
-            ruleInputExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_0_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__FailuresAssignment_0"
-
-
-    // $ANTLR start "rule__Lhs__FailuresAssignment_1_1"
-    // InternalFlaDsl.g:3104:1: rule__Lhs__FailuresAssignment_1_1 : ( ruleInputExpression ) ;
-    public final void rule__Lhs__FailuresAssignment_1_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3108:1: ( ( ruleInputExpression ) )
-            // InternalFlaDsl.g:3109:1: ( ruleInputExpression )
-            {
-            // InternalFlaDsl.g:3109:1: ( ruleInputExpression )
-            // InternalFlaDsl.g:3110:1: ruleInputExpression
-            {
-             before(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleInputExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getLhsAccess().getFailuresInputExpressionParserRuleCall_1_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Lhs__FailuresAssignment_1_1"
-
-
-    // $ANTLR start "rule__Rhs__FailuresAssignment_0"
-    // InternalFlaDsl.g:3119:1: rule__Rhs__FailuresAssignment_0 : ( ruleOutputExpression ) ;
-    public final void rule__Rhs__FailuresAssignment_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3123:1: ( ( ruleOutputExpression ) )
-            // InternalFlaDsl.g:3124:1: ( ruleOutputExpression )
-            {
-            // InternalFlaDsl.g:3124:1: ( ruleOutputExpression )
-            // InternalFlaDsl.g:3125:1: ruleOutputExpression
-            {
-             before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); 
-            pushFollow(FOLLOW_2);
-            ruleOutputExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_0_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__FailuresAssignment_0"
-
-
-    // $ANTLR start "rule__Rhs__FailuresAssignment_1_1"
-    // InternalFlaDsl.g:3134:1: rule__Rhs__FailuresAssignment_1_1 : ( ruleOutputExpression ) ;
-    public final void rule__Rhs__FailuresAssignment_1_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3138:1: ( ( ruleOutputExpression ) )
-            // InternalFlaDsl.g:3139:1: ( ruleOutputExpression )
-            {
-            // InternalFlaDsl.g:3139:1: ( ruleOutputExpression )
-            // InternalFlaDsl.g:3140:1: ruleOutputExpression
-            {
-             before(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleOutputExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getRhsAccess().getFailuresOutputExpressionParserRuleCall_1_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__Rhs__FailuresAssignment_1_1"
-
-
-    // $ANTLR start "rule__InputExpression__RefAssignment_0_0"
-    // InternalFlaDsl.g:3149:1: rule__InputExpression__RefAssignment_0_0 : ( ( RULE_ID ) ) ;
-    public final void rule__InputExpression__RefAssignment_0_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3153:1: ( ( ( RULE_ID ) ) )
-            // InternalFlaDsl.g:3154:1: ( ( RULE_ID ) )
-            {
-            // InternalFlaDsl.g:3154:1: ( ( RULE_ID ) )
-            // InternalFlaDsl.g:3155:1: ( RULE_ID )
-            {
-             before(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); 
-            // InternalFlaDsl.g:3156:1: ( RULE_ID )
-            // InternalFlaDsl.g:3157:1: RULE_ID
-            {
-             before(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); 
-            match(input,RULE_ID,FOLLOW_2); 
-             after(grammarAccess.getInputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); 
-
-            }
-
-             after(grammarAccess.getInputExpressionAccess().getRefPortCrossReference_0_0_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InputExpression__RefAssignment_0_0"
-
-
-    // $ANTLR start "rule__InputExpression__FailureExprAssignment_2"
-    // InternalFlaDsl.g:3168:1: rule__InputExpression__FailureExprAssignment_2 : ( ruleInFailureExpr ) ;
-    public final void rule__InputExpression__FailureExprAssignment_2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3172:1: ( ( ruleInFailureExpr ) )
-            // InternalFlaDsl.g:3173:1: ( ruleInFailureExpr )
-            {
-            // InternalFlaDsl.g:3173:1: ( ruleInFailureExpr )
-            // InternalFlaDsl.g:3174:1: ruleInFailureExpr
-            {
-             before(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_2);
-            ruleInFailureExpr();
-
-            state._fsp--;
-
-             after(grammarAccess.getInputExpressionAccess().getFailureExprInFailureExprParserRuleCall_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InputExpression__FailureExprAssignment_2"
-
-
-    // $ANTLR start "rule__OutputExpression__RefAssignment_0_0"
-    // InternalFlaDsl.g:3183:1: rule__OutputExpression__RefAssignment_0_0 : ( ( RULE_ID ) ) ;
-    public final void rule__OutputExpression__RefAssignment_0_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3187:1: ( ( ( RULE_ID ) ) )
-            // InternalFlaDsl.g:3188:1: ( ( RULE_ID ) )
-            {
-            // InternalFlaDsl.g:3188:1: ( ( RULE_ID ) )
-            // InternalFlaDsl.g:3189:1: ( RULE_ID )
-            {
-             before(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); 
-            // InternalFlaDsl.g:3190:1: ( RULE_ID )
-            // InternalFlaDsl.g:3191:1: RULE_ID
-            {
-             before(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); 
-            match(input,RULE_ID,FOLLOW_2); 
-             after(grammarAccess.getOutputExpressionAccess().getRefPortIDTerminalRuleCall_0_0_0_1()); 
-
-            }
-
-             after(grammarAccess.getOutputExpressionAccess().getRefPortCrossReference_0_0_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutputExpression__RefAssignment_0_0"
-
-
-    // $ANTLR start "rule__OutputExpression__FailureExprAssignment_2"
-    // InternalFlaDsl.g:3202:1: rule__OutputExpression__FailureExprAssignment_2 : ( ruleOutFailureExpr ) ;
-    public final void rule__OutputExpression__FailureExprAssignment_2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3206:1: ( ( ruleOutFailureExpr ) )
-            // InternalFlaDsl.g:3207:1: ( ruleOutFailureExpr )
-            {
-            // InternalFlaDsl.g:3207:1: ( ruleOutFailureExpr )
-            // InternalFlaDsl.g:3208:1: ruleOutFailureExpr
-            {
-             before(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_2);
-            ruleOutFailureExpr();
-
-            state._fsp--;
-
-             after(grammarAccess.getOutputExpressionAccess().getFailureExprOutFailureExprParserRuleCall_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutputExpression__FailureExprAssignment_2"
-
-
-    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_0"
-    // InternalFlaDsl.g:3217:1: rule__InFailureExpr__FailuresAssignment_0 : ( ruleWildcardDefinition ) ;
-    public final void rule__InFailureExpr__FailuresAssignment_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3221:1: ( ( ruleWildcardDefinition ) )
-            // InternalFlaDsl.g:3222:1: ( ruleWildcardDefinition )
-            {
-            // InternalFlaDsl.g:3222:1: ( ruleWildcardDefinition )
-            // InternalFlaDsl.g:3223:1: ruleWildcardDefinition
-            {
-             before(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); 
-            pushFollow(FOLLOW_2);
-            ruleWildcardDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getInFailureExprAccess().getFailuresWildcardDefinitionParserRuleCall_0_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_0"
-
-
-    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_1"
-    // InternalFlaDsl.g:3232:1: rule__InFailureExpr__FailuresAssignment_1 : ( ruleNoFailureDefinition ) ;
-    public final void rule__InFailureExpr__FailuresAssignment_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3236:1: ( ( ruleNoFailureDefinition ) )
-            // InternalFlaDsl.g:3237:1: ( ruleNoFailureDefinition )
-            {
-            // InternalFlaDsl.g:3237:1: ( ruleNoFailureDefinition )
-            // InternalFlaDsl.g:3238:1: ruleNoFailureDefinition
-            {
-             before(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleNoFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getInFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_1"
-
-
-    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_2"
-    // InternalFlaDsl.g:3247:1: rule__InFailureExpr__FailuresAssignment_2 : ( ruleFailureDefinition ) ;
-    public final void rule__InFailureExpr__FailuresAssignment_2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3251:1: ( ( ruleFailureDefinition ) )
-            // InternalFlaDsl.g:3252:1: ( ruleFailureDefinition )
-            {
-            // InternalFlaDsl.g:3252:1: ( ruleFailureDefinition )
-            // InternalFlaDsl.g:3253:1: ruleFailureDefinition
-            {
-             before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_2);
-            ruleFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_2"
-
-
-    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_3_1"
-    // InternalFlaDsl.g:3262:1: rule__InFailureExpr__FailuresAssignment_3_1 : ( ruleFailureDefinition ) ;
-    public final void rule__InFailureExpr__FailuresAssignment_3_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3266:1: ( ( ruleFailureDefinition ) )
-            // InternalFlaDsl.g:3267:1: ( ruleFailureDefinition )
-            {
-            // InternalFlaDsl.g:3267:1: ( ruleFailureDefinition )
-            // InternalFlaDsl.g:3268:1: ruleFailureDefinition
-            {
-             before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_3_1"
-
-
-    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_3_2_1"
-    // InternalFlaDsl.g:3277:1: rule__InFailureExpr__FailuresAssignment_3_2_1 : ( ruleFailureDefinition ) ;
-    public final void rule__InFailureExpr__FailuresAssignment_3_2_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3281:1: ( ( ruleFailureDefinition ) )
-            // InternalFlaDsl.g:3282:1: ( ruleFailureDefinition )
-            {
-            // InternalFlaDsl.g:3282:1: ( ruleFailureDefinition )
-            // InternalFlaDsl.g:3283:1: ruleFailureDefinition
-            {
-             before(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getInFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_3_2_1"
-
-
-    // $ANTLR start "rule__InFailureExpr__FailuresAssignment_4"
-    // InternalFlaDsl.g:3292:1: rule__InFailureExpr__FailuresAssignment_4 : ( ruleVariableDefinition ) ;
-    public final void rule__InFailureExpr__FailuresAssignment_4() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3296:1: ( ( ruleVariableDefinition ) )
-            // InternalFlaDsl.g:3297:1: ( ruleVariableDefinition )
-            {
-            // InternalFlaDsl.g:3297:1: ( ruleVariableDefinition )
-            // InternalFlaDsl.g:3298:1: ruleVariableDefinition
-            {
-             before(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
-            pushFollow(FOLLOW_2);
-            ruleVariableDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getInFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__InFailureExpr__FailuresAssignment_4"
-
-
-    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_0"
-    // InternalFlaDsl.g:3307:1: rule__OutFailureExpr__FailuresAssignment_0 : ( ruleNoFailureDefinition ) ;
-    public final void rule__OutFailureExpr__FailuresAssignment_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3311:1: ( ( ruleNoFailureDefinition ) )
-            // InternalFlaDsl.g:3312:1: ( ruleNoFailureDefinition )
-            {
-            // InternalFlaDsl.g:3312:1: ( ruleNoFailureDefinition )
-            // InternalFlaDsl.g:3313:1: ruleNoFailureDefinition
-            {
-             before(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); 
-            pushFollow(FOLLOW_2);
-            ruleNoFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getOutFailureExprAccess().getFailuresNoFailureDefinitionParserRuleCall_0_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_0"
-
-
-    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_1"
-    // InternalFlaDsl.g:3322:1: rule__OutFailureExpr__FailuresAssignment_1 : ( ruleComplexNofailureDefinition ) ;
-    public final void rule__OutFailureExpr__FailuresAssignment_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3326:1: ( ( ruleComplexNofailureDefinition ) )
-            // InternalFlaDsl.g:3327:1: ( ruleComplexNofailureDefinition )
-            {
-            // InternalFlaDsl.g:3327:1: ( ruleComplexNofailureDefinition )
-            // InternalFlaDsl.g:3328:1: ruleComplexNofailureDefinition
-            {
-             before(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleComplexNofailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getOutFailureExprAccess().getFailuresComplexNofailureDefinitionParserRuleCall_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_1"
-
-
-    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_2"
-    // InternalFlaDsl.g:3337:1: rule__OutFailureExpr__FailuresAssignment_2 : ( ruleFailureDefinition ) ;
-    public final void rule__OutFailureExpr__FailuresAssignment_2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3341:1: ( ( ruleFailureDefinition ) )
-            // InternalFlaDsl.g:3342:1: ( ruleFailureDefinition )
-            {
-            // InternalFlaDsl.g:3342:1: ( ruleFailureDefinition )
-            // InternalFlaDsl.g:3343:1: ruleFailureDefinition
-            {
-             before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_2);
-            ruleFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_2"
-
-
-    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_3_1"
-    // InternalFlaDsl.g:3352:1: rule__OutFailureExpr__FailuresAssignment_3_1 : ( ruleFailureDefinition ) ;
-    public final void rule__OutFailureExpr__FailuresAssignment_3_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3356:1: ( ( ruleFailureDefinition ) )
-            // InternalFlaDsl.g:3357:1: ( ruleFailureDefinition )
-            {
-            // InternalFlaDsl.g:3357:1: ( ruleFailureDefinition )
-            // InternalFlaDsl.g:3358:1: ruleFailureDefinition
-            {
-             before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_3_1"
-
-
-    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_3_2_1"
-    // InternalFlaDsl.g:3367:1: rule__OutFailureExpr__FailuresAssignment_3_2_1 : ( ruleFailureDefinition ) ;
-    public final void rule__OutFailureExpr__FailuresAssignment_3_2_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3371:1: ( ( ruleFailureDefinition ) )
-            // InternalFlaDsl.g:3372:1: ( ruleFailureDefinition )
-            {
-            // InternalFlaDsl.g:3372:1: ( ruleFailureDefinition )
-            // InternalFlaDsl.g:3373:1: ruleFailureDefinition
-            {
-             before(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleFailureDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getOutFailureExprAccess().getFailuresFailureDefinitionParserRuleCall_3_2_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_3_2_1"
-
-
-    // $ANTLR start "rule__OutFailureExpr__FailuresAssignment_4"
-    // InternalFlaDsl.g:3382:1: rule__OutFailureExpr__FailuresAssignment_4 : ( ruleVariableDefinition ) ;
-    public final void rule__OutFailureExpr__FailuresAssignment_4() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3386:1: ( ( ruleVariableDefinition ) )
-            // InternalFlaDsl.g:3387:1: ( ruleVariableDefinition )
-            {
-            // InternalFlaDsl.g:3387:1: ( ruleVariableDefinition )
-            // InternalFlaDsl.g:3388:1: ruleVariableDefinition
-            {
-             before(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
-            pushFollow(FOLLOW_2);
-            ruleVariableDefinition();
-
-            state._fsp--;
-
-             after(grammarAccess.getOutFailureExprAccess().getFailuresVariableDefinitionParserRuleCall_4_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OutFailureExpr__FailuresAssignment_4"
-
-
-    // $ANTLR start "rule__FailureDefinition__TypeAssignment_1"
-    // InternalFlaDsl.g:3397:1: rule__FailureDefinition__TypeAssignment_1 : ( ruleActualFailureType ) ;
-    public final void rule__FailureDefinition__TypeAssignment_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3401:1: ( ( ruleActualFailureType ) )
-            // InternalFlaDsl.g:3402:1: ( ruleActualFailureType )
-            {
-            // InternalFlaDsl.g:3402:1: ( ruleActualFailureType )
-            // InternalFlaDsl.g:3403:1: ruleActualFailureType
-            {
-             before(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleActualFailureType();
-
-            state._fsp--;
-
-             after(grammarAccess.getFailureDefinitionAccess().getTypeActualFailureTypeEnumRuleCall_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__TypeAssignment_1"
-
-
-    // $ANTLR start "rule__FailureDefinition__AcidAvoidableAssignment_2_1"
-    // InternalFlaDsl.g:3412:1: rule__FailureDefinition__AcidAvoidableAssignment_2_1 : ( ruleACIDavoidable ) ;
-    public final void rule__FailureDefinition__AcidAvoidableAssignment_2_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3416:1: ( ( ruleACIDavoidable ) )
-            // InternalFlaDsl.g:3417:1: ( ruleACIDavoidable )
-            {
-            // InternalFlaDsl.g:3417:1: ( ruleACIDavoidable )
-            // InternalFlaDsl.g:3418:1: ruleACIDavoidable
-            {
-             before(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleACIDavoidable();
-
-            state._fsp--;
-
-             after(grammarAccess.getFailureDefinitionAccess().getAcidAvoidableACIDavoidableParserRuleCall_2_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__FailureDefinition__AcidAvoidableAssignment_2_1"
-
-
-    // $ANTLR start "rule__ComplexNofailureDefinition__AcidMitigationAssignment_3"
-    // InternalFlaDsl.g:3427:1: rule__ComplexNofailureDefinition__AcidMitigationAssignment_3 : ( ruleACIDMitigation ) ;
-    public final void rule__ComplexNofailureDefinition__AcidMitigationAssignment_3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3431:1: ( ( ruleACIDMitigation ) )
-            // InternalFlaDsl.g:3432:1: ( ruleACIDMitigation )
-            {
-            // InternalFlaDsl.g:3432:1: ( ruleACIDMitigation )
-            // InternalFlaDsl.g:3433:1: ruleACIDMitigation
-            {
-             before(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_2);
-            ruleACIDMitigation();
-
-            state._fsp--;
-
-             after(grammarAccess.getComplexNofailureDefinitionAccess().getAcidMitigationACIDMitigationParserRuleCall_3_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ComplexNofailureDefinition__AcidMitigationAssignment_3"
-
-
-    // $ANTLR start "rule__VariableDefinition__VariableNameAssignment_1"
-    // InternalFlaDsl.g:3442:1: rule__VariableDefinition__VariableNameAssignment_1 : ( RULE_ID ) ;
-    public final void rule__VariableDefinition__VariableNameAssignment_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3446:1: ( ( RULE_ID ) )
-            // InternalFlaDsl.g:3447:1: ( RULE_ID )
-            {
-            // InternalFlaDsl.g:3447:1: ( RULE_ID )
-            // InternalFlaDsl.g:3448:1: RULE_ID
-            {
-             before(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_2); 
-             after(grammarAccess.getVariableDefinitionAccess().getVariableNameIDTerminalRuleCall_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__VariableDefinition__VariableNameAssignment_1"
-
-
-    // $ANTLR start "rule__ACIDavoidable__AAssignment_0"
-    // InternalFlaDsl.g:3457:1: rule__ACIDavoidable__AAssignment_0 : ( ruleAavoidable ) ;
-    public final void rule__ACIDavoidable__AAssignment_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3461:1: ( ( ruleAavoidable ) )
-            // InternalFlaDsl.g:3462:1: ( ruleAavoidable )
-            {
-            // InternalFlaDsl.g:3462:1: ( ruleAavoidable )
-            // InternalFlaDsl.g:3463:1: ruleAavoidable
-            {
-             before(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); 
-            pushFollow(FOLLOW_2);
-            ruleAavoidable();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDavoidableAccess().getAAavoidableEnumRuleCall_0_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__AAssignment_0"
-
-
-    // $ANTLR start "rule__ACIDavoidable__CAssignment_2"
-    // InternalFlaDsl.g:3472:1: rule__ACIDavoidable__CAssignment_2 : ( ruleCavoidable ) ;
-    public final void rule__ACIDavoidable__CAssignment_2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3476:1: ( ( ruleCavoidable ) )
-            // InternalFlaDsl.g:3477:1: ( ruleCavoidable )
-            {
-            // InternalFlaDsl.g:3477:1: ( ruleCavoidable )
-            // InternalFlaDsl.g:3478:1: ruleCavoidable
-            {
-             before(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); 
-            pushFollow(FOLLOW_2);
-            ruleCavoidable();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDavoidableAccess().getCCavoidableEnumRuleCall_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__CAssignment_2"
-
-
-    // $ANTLR start "rule__ACIDavoidable__IAssignment_4"
-    // InternalFlaDsl.g:3487:1: rule__ACIDavoidable__IAssignment_4 : ( ruleIavoidable ) ;
-    public final void rule__ACIDavoidable__IAssignment_4() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3491:1: ( ( ruleIavoidable ) )
-            // InternalFlaDsl.g:3492:1: ( ruleIavoidable )
-            {
-            // InternalFlaDsl.g:3492:1: ( ruleIavoidable )
-            // InternalFlaDsl.g:3493:1: ruleIavoidable
-            {
-             before(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); 
-            pushFollow(FOLLOW_2);
-            ruleIavoidable();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDavoidableAccess().getIIavoidableEnumRuleCall_4_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__IAssignment_4"
-
-
-    // $ANTLR start "rule__ACIDavoidable__DAssignment_6"
-    // InternalFlaDsl.g:3502:1: rule__ACIDavoidable__DAssignment_6 : ( ruleDavoidable ) ;
-    public final void rule__ACIDavoidable__DAssignment_6() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3506:1: ( ( ruleDavoidable ) )
-            // InternalFlaDsl.g:3507:1: ( ruleDavoidable )
-            {
-            // InternalFlaDsl.g:3507:1: ( ruleDavoidable )
-            // InternalFlaDsl.g:3508:1: ruleDavoidable
-            {
-             before(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); 
-            pushFollow(FOLLOW_2);
-            ruleDavoidable();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDavoidableAccess().getDDavoidableEnumRuleCall_6_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDavoidable__DAssignment_6"
-
-
-    // $ANTLR start "rule__ACIDMitigation__AAssignment_0"
-    // InternalFlaDsl.g:3517:1: rule__ACIDMitigation__AAssignment_0 : ( ruleAmitigation ) ;
-    public final void rule__ACIDMitigation__AAssignment_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3521:1: ( ( ruleAmitigation ) )
-            // InternalFlaDsl.g:3522:1: ( ruleAmitigation )
-            {
-            // InternalFlaDsl.g:3522:1: ( ruleAmitigation )
-            // InternalFlaDsl.g:3523:1: ruleAmitigation
-            {
-             before(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); 
-            pushFollow(FOLLOW_2);
-            ruleAmitigation();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDMitigationAccess().getAAmitigationEnumRuleCall_0_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__AAssignment_0"
-
-
-    // $ANTLR start "rule__ACIDMitigation__CAssignment_2"
-    // InternalFlaDsl.g:3532:1: rule__ACIDMitigation__CAssignment_2 : ( ruleCmitigation ) ;
-    public final void rule__ACIDMitigation__CAssignment_2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3536:1: ( ( ruleCmitigation ) )
-            // InternalFlaDsl.g:3537:1: ( ruleCmitigation )
-            {
-            // InternalFlaDsl.g:3537:1: ( ruleCmitigation )
-            // InternalFlaDsl.g:3538:1: ruleCmitigation
-            {
-             before(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); 
-            pushFollow(FOLLOW_2);
-            ruleCmitigation();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDMitigationAccess().getCCmitigationEnumRuleCall_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__CAssignment_2"
-
-
-    // $ANTLR start "rule__ACIDMitigation__IAssignment_4"
-    // InternalFlaDsl.g:3547:1: rule__ACIDMitigation__IAssignment_4 : ( ruleImitigation ) ;
-    public final void rule__ACIDMitigation__IAssignment_4() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3551:1: ( ( ruleImitigation ) )
-            // InternalFlaDsl.g:3552:1: ( ruleImitigation )
-            {
-            // InternalFlaDsl.g:3552:1: ( ruleImitigation )
-            // InternalFlaDsl.g:3553:1: ruleImitigation
-            {
-             before(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); 
-            pushFollow(FOLLOW_2);
-            ruleImitigation();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDMitigationAccess().getIImitigationEnumRuleCall_4_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__IAssignment_4"
-
-
-    // $ANTLR start "rule__ACIDMitigation__DAssignment_6"
-    // InternalFlaDsl.g:3562:1: rule__ACIDMitigation__DAssignment_6 : ( ruleDmitigation ) ;
-    public final void rule__ACIDMitigation__DAssignment_6() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // InternalFlaDsl.g:3566:1: ( ( ruleDmitigation ) )
-            // InternalFlaDsl.g:3567:1: ( ruleDmitigation )
-            {
-            // InternalFlaDsl.g:3567:1: ( ruleDmitigation )
-            // InternalFlaDsl.g:3568:1: ruleDmitigation
-            {
-             before(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); 
-            pushFollow(FOLLOW_2);
-            ruleDmitigation();
-
-            state._fsp--;
-
-             after(grammarAccess.getACIDMitigationAccess().getDDmitigationEnumRuleCall_6_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ACIDMitigation__DAssignment_6"
-
-    // Delegated rules
-
-
- 
-
-    public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000100000002L});
-    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000810L});
-    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000200000000L});
-    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000800000002L});
-    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000001000000000L});
-    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x000001A00003F010L});
-    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x000000000003F000L});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x00000000001C0000L});
-    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000008000000000L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000003180000L});
-    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000380000L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000580000L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000980000L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x000000000C180000L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000030180000L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00000000C0180000L});
-
-}
\ No newline at end of file
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/internal/FlaDslActivator.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/internal/FlaDslActivator.java
deleted file mode 100644
index 7d03be7..0000000
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src-gen/org/polarsys/chess/xtext/ui/internal/FlaDslActivator.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * generated by Xtext
- */
-package org.polarsys.chess.xtext.ui.internal;
-
-import java.util.Collections;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.xtext.ui.shared.SharedStateModule;
-import org.eclipse.xtext.util.Modules2;
-import org.osgi.framework.BundleContext;
-
-import com.google.common.collect.Maps;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Module;
-
-/**
- * This class was generated. Customizations should only happen in a newly
- * introduced subclass. 
- */
-public class FlaDslActivator extends AbstractUIPlugin {
-	
-	public static final String ORG_POLARSYS_CHESS_XTEXT_FLADSL = "org.polarsys.chess.xtext.FlaDsl";
-	
-	private static final Logger logger = Logger.getLogger(FlaDslActivator.class);
-	
-	private static FlaDslActivator INSTANCE;
-	
-	private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
-	
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		INSTANCE = this;
-	}
-	
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		injectors.clear();
-		INSTANCE = null;
-		super.stop(context);
-	}
-	
-	public static FlaDslActivator getInstance() {
-		return INSTANCE;
-	}
-	
-	public Injector getInjector(String language) {
-		synchronized (injectors) {
-			Injector injector = injectors.get(language);
-			if (injector == null) {
-				injectors.put(language, injector = createInjector(language));
-			}
-			return injector;
-		}
-	}
-	
-	protected Injector createInjector(String language) {
-		try {
-			Module runtimeModule = getRuntimeModule(language);
-			Module sharedStateModule = getSharedStateModule();
-			Module uiModule = getUiModule(language);
-			Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
-			return Guice.createInjector(mergedModule);
-		} catch (Exception e) {
-			logger.error("Failed to create injector for " + language);
-			logger.error(e.getMessage(), e);
-			throw new RuntimeException("Failed to create injector for " + language, e);
-		}
-	}
-
-	protected Module getRuntimeModule(String grammar) {
-		if (ORG_POLARSYS_CHESS_XTEXT_FLADSL.equals(grammar)) {
-			return new org.polarsys.chess.xtext.FlaDslRuntimeModule();
-		}
-		
-		throw new IllegalArgumentException(grammar);
-	}
-	
-	protected Module getUiModule(String grammar) {
-		if (ORG_POLARSYS_CHESS_XTEXT_FLADSL.equals(grammar)) {
-			return new org.polarsys.chess.xtext.ui.FlaDslUiModule(this);
-		}
-		
-		throw new IllegalArgumentException(grammar);
-	}
-	
-	protected Module getSharedStateModule() {
-		return new SharedStateModule();
-	}
-	
-}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java
deleted file mode 100644
index cc1fd9b..0000000
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*

- * generated by Xtext

- */

-package org.polarsys.chess.xtext.ui;

-

-import org.eclipse.ui.plugin.AbstractUIPlugin;

-

-/**

- * Use this class to register components to be used within the IDE.

- */

-public class FlaDslUiModule extends org.polarsys.chess.xtext.ui.AbstractFlaDslUiModule {

-	public FlaDslUiModule(AbstractUIPlugin plugin) {

-		super(plugin);

-	}

-}

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.xtend
new file mode 100644
index 0000000..9950f8f
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/FlaDslUiModule.xtend
@@ -0,0 +1,13 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package org.polarsys.chess.xtext.ui
+
+import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
+
+/**
+ * Use this class to register components to be used within the Eclipse IDE.
+ */
+@FinalFieldsConstructor
+class FlaDslUiModule extends AbstractFlaDslUiModule {
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
index a930674..a09389c 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/src/org/polarsys/chess/xtext/ui/contentassist/FlaDslProposalProvider.xtend
@@ -1,13 +1,13 @@
-/*

- * generated by Xtext

- */

-package org.polarsys.chess.xtext.ui.contentassist

-

-import org.polarsys.chess.xtext.ui.contentassist.AbstractFlaDslProposalProvider

-

-/**

- * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist

- * on how to customize the content assistant.

- */

-class FlaDslProposalProvider extends AbstractFlaDslProposalProvider {

-}

+/*
+ * generated by Xtext 2.12.0
+ */
+package org.polarsys.chess.xtext.ui.contentassist
+
+
+/**
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist
+ * on how to customize the content assistant.
+ */
+class FlaDslProposalProvider extends AbstractFlaDslProposalProvider {
+}
+
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/.classpath b/plugins/fla/org.polarsys.chess.xtext.fladsl/.classpath
index 29ba398..026e45b 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/.classpath
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/.classpath
@@ -2,8 +2,8 @@
 <classpath>

 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="src" path="xtend-gen"/>

-	<classpathentry kind="src" path="src-gen"/>

-	<classpathentry kind="output" path="bin"/>

+	<classpathentry kind="src" path="src/"/>

+	<classpathentry kind="src" path="src-gen/"/>

+	<classpathentry kind="src" path="xtend-gen/"/>

+	<classpathentry kind="output" path="target/classes"/>

 </classpath>

diff --git "a/plugins/fla/org.polarsys.chess.xtext.fladsl/.launch/Generate Language Infrastructure \050org.intecs.chess.xtext.fladsl\051.launch" "b/plugins/fla/org.polarsys.chess.xtext.fladsl/.launch/Generate Language Infrastructure \050org.intecs.chess.xtext.fladsl\051.launch"
deleted file mode 100644
index 2f295b6..0000000
--- "a/plugins/fla/org.polarsys.chess.xtext.fladsl/.launch/Generate Language Infrastructure \050org.intecs.chess.xtext.fladsl\051.launch"
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">

-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1299248699643_13&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.polarsys.chess.xtext.fladsl&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.polarsys.chess.xtext.fladsl.generator&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.polarsys.chess.xtext.fladsl.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.polarsys.chess.xtext.fladsl.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>

-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">

-<listEntry value="/org.polarsys.chess.xtext.fladsl"/>

-</listAttribute>

-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">

-<listEntry value="4"/>

-</listAttribute>

-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">

-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>

-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>

-</listAttribute>

-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>

-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/polarsys/chess/xtext/GenerateFlaDsl.mwe2"/>

-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.polarsys.chess.xtext.fladsl"/>

-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>

-</launchConfiguration>

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/.project b/plugins/fla/org.polarsys.chess.xtext.fladsl/.project
index 86f5c3b..6e299c9 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/.project
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/.project
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.polarsys.chess.xtext.fladsl</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.m2e.core.maven2Builder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.m2e.core.maven2Nature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>

-	</natures>

-</projectDescription>

+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.polarsys.chess.xtext.fladsl</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.core.resources.prefs b/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.core.resources.prefs
index 4824b80..99f26c0 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.core.resources.prefs
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.core.resources.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1

-encoding/<project>=UTF-8

+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.jdt.core.prefs b/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.jdt.core.prefs
index 295926d..0c68a61 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-eclipse.preferences.version=1

-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.m2e.core.prefs b/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/META-INF/MANIFEST.MF b/plugins/fla/org.polarsys.chess.xtext.fladsl/META-INF/MANIFEST.MF
index 73e2b6a..66217bd 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/META-INF/MANIFEST.MF
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/META-INF/MANIFEST.MF
@@ -1,41 +1,54 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: org.polarsys.chess.xtext.fladsl

-Bundle-Vendor: Intecs

-Bundle-Version: 1.0.0.qualifier

-Bundle-SymbolicName: org.polarsys.chess.xtext.fladsl; singleton:=true

-Bundle-ActivationPolicy: lazy

-Require-Bundle: org.eclipse.xtext;visibility:=reexport,

- org.eclipse.xtext.xbase;resolution:=optional;visibility:=reexport,

- org.eclipse.xtext.generator;resolution:=optional,

- org.apache.commons.logging;bundle-version="1.1.1";resolution:=optional,

- org.eclipse.emf.codegen.ecore;resolution:=optional,

- org.eclipse.emf.mwe.utils;resolution:=optional,

- org.eclipse.emf.mwe2.launch;resolution:=optional,

- org.eclipse.uml2.uml;bundle-version="5.0.0",

- org.eclipse.uml2.codegen.ecore;bundle-version="2.0.1",

- org.eclipse.xtext.util,

- org.eclipse.emf.ecore,

- org.eclipse.emf.common,

- org.antlr.runtime,

- org.eclipse.xtext.common.types,

- org.objectweb.asm;bundle-version="5.0.1";resolution:=optional,

- org.eclipse.equinox.common;bundle-version="3.6.200",

- org.eclipse.xtext.xbase.lib,

- org.polarsys.chess.xtext.global;bundle-version="1.0.0",

- org.polarsys.chess.chessmlprofile;bundle-version="0.9.0"

-Import-Package: org.apache.log4j,

- org.eclipse.xtext.xbase.lib

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

-Export-Package: org.polarsys.chess.xtext,

- org.polarsys.chess.xtext.formatting,

- org.polarsys.chess.xtext.generator,

- org.polarsys.chess.xtext.scoping,

- org.polarsys.chess.xtext.validation,

- org.polarsys.chess.xtext.services,

- org.polarsys.chess.xtext.flaDsl,

- org.polarsys.chess.xtext.flaDsl.impl,

- org.polarsys.chess.xtext.flaDsl.util,

- org.polarsys.chess.xtext.serializer,

- org.polarsys.chess.xtext.parser.antlr,

- org.polarsys.chess.xtext.parser.antlr.internal

+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.polarsys.chess.xtext.fladsl
+Bundle-Vendor: Intecs
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.polarsys.chess.xtext.fladsl; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext,
+ org.eclipse.xtext.xbase,
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.emf.mwe2.launch;resolution:=optional,
+ org.eclipse.uml2.uml;bundle-version="5.0.0",
+ org.eclipse.uml2.codegen.ecore;bundle-version="2.0.1",
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.common,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types,
+ org.eclipse.xtext.xbase.lib,
+ org.polarsys.chess.xtext.global;bundle-version="1.0.0",
+ org.polarsys.chess.chessmlprofile;bundle-version="0.9.0",
+ org.eclipse.equinox.common;bundle-version="3.5.0",
+ org.eclipse.xtext.util,
+ org.eclipse.xtend.lib
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.polarsys.chess.xtext,
+ org.polarsys.chess.xtext.flaDsl;uses:="org.eclipse.emf.ecore,org.eclipse.emf.common.util,org.eclipse.uml2.uml",
+ org.polarsys.chess.xtext.flaDsl.impl;
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.ecore.impl,
+   org.eclipse.emf.common.util,
+   org.eclipse.uml2.uml,
+   org.polarsys.chess.xtext.flaDsl,
+   org.eclipse.emf.common.notify",
+ org.polarsys.chess.xtext.flaDsl.util;
+  uses:="org.eclipse.emf.ecore,
+   org.polarsys.chess.xtext.flaDsl,
+   org.eclipse.emf.common.notify,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.emf.ecore.util",
+ org.polarsys.chess.xtext.formatting2;uses:="org.polarsys.chess.xtext.flaDsl,org.eclipse.xtext.formatting2",
+ org.polarsys.chess.xtext.generator;uses:="org.eclipse.xtext.generator,org.eclipse.emf.ecore.resource",
+ org.polarsys.chess.xtext.parser.antlr;uses:="org.eclipse.xtext.parser.antlr,org.polarsys.chess.xtext.parser.antlr.internal,org.polarsys.chess.xtext.services",
+ org.polarsys.chess.xtext.parser.antlr.internal;
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.common.util,
+   org.eclipse.xtext.parser.antlr,
+   org.antlr.runtime,
+   org.polarsys.chess.xtext.services",
+ org.polarsys.chess.xtext.scoping,
+ org.polarsys.chess.xtext.serializer,
+ org.polarsys.chess.xtext.services;uses:="org.eclipse.xtext.common.services,org.eclipse.xtext.service,org.eclipse.xtext",
+ org.polarsys.chess.xtext.validation
+Import-Package: org.apache.log4j
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/build.properties b/plugins/fla/org.polarsys.chess.xtext.fladsl/build.properties
index 7da718d..18d540b 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/build.properties
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/build.properties
@@ -1,8 +1,20 @@
-source.. = src/,\

-           src-gen/,\

-           xtend-gen/

-bin.includes = model/,\

-               META-INF/,\

-               .,\

-               plugin.xml

-

+source.. = src/,\
+           src-gen/,\
+           xtend-gen/
+bin.includes = model/generated/,\
+               .,\
+               META-INF/,\
+               plugin.xml
+bin.excludes = **/*.mwe2,\
+               **/*.xtend
+additional.bundles = org.eclipse.xtext.xbase,\
+                     org.eclipse.xtext.common.types,\
+                     org.eclipse.xtext.xtext.generator,\
+                     org.eclipse.emf.codegen.ecore,\
+                     org.eclipse.emf.mwe.utils,\
+                     org.eclipse.emf.mwe2.launch,\
+                     org.eclipse.emf.mwe2.lib,\
+                     org.objectweb.asm,\
+                     org.apache.commons.logging,\
+                     org.apache.log4j,\
+                     com.ibm.icu
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml b/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml
index ca15dd9..626e354 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/plugin.xml
@@ -1,16 +1,10 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.0"?>

-

-<plugin>

-

-  <extension point="org.eclipse.emf.ecore.generated_package">

-    <package 

-       uri = "http://www.intecs.org/chess/xtext/FlaDsl" 

-       class = "org.polarsys.chess.xtext.flaDsl.FlaDslPackage"

-       genModel = "model/generated/FlaDsl.genmodel" /> 

-	

-  </extension>

-

-

-

-</plugin>

+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+	<extension point="org.eclipse.emf.ecore.generated_package">
+		<package 
+			uri = "http://www.intecs.org/chess/xtext/FlaDsl"
+			class = "org.polarsys.chess.xtext.flaDsl.FlaDslPackage"
+			genModel = "model/generated/FlaDsl.genmodel" />
+	</extension>
+</plugin>
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDsl.xtext b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDsl.xtext
index 40f25d2..8c42783 100644
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDsl.xtext
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDsl.xtext
@@ -1,77 +1,77 @@
-/*

- * TODO: License and author (Petter Isberg - MDH) 

- */

-

-grammar org.polarsys.chess.xtext.FlaDsl with org.eclipse.xtext.common.Terminals

-

-import "http://www.eclipse.org/uml2/5.0.0/UML" as uml

-import "http://www.eclipse.org/emf/2002/Ecore" as ecore

-

-generate flaDsl "http://www.intecs.org/chess/xtext/FlaDsl"

-

-/*

- * FLA Grammar

- */

- 

-Behaviour:

-	rules+=Expression+;

-	

-Expression:

-	'FLA:' lhs=Lhs '->' rhs=Rhs ';';

-

-Lhs: failures+=InputExpression (',' failures+=InputExpression)*;

-Rhs: failures+=OutputExpression (',' failures+=OutputExpression)*;

-

-InputExpression: (ref=[uml::Port]| "undefined") '.' failureExpr=InFailureExpr;

-OutputExpression: (ref=[uml::Port]| "undefined") '.' failureExpr=OutFailureExpr;

-

-InFailureExpr: 

-	failures+=WildcardDefinition | 

-	failures+=NoFailureDefinition | 

-	failures+=FailureDefinition |

-	'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | 

-	failures+=VariableDefinition

-; 

-

-OutFailureExpr: 

-	failures+=NoFailureDefinition | 

-	failures+=ComplexNofailureDefinition | 

-	failures+=FailureDefinition | 

-	'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' |

-	failures+=VariableDefinition

-;

-

-Definitions: FailureDefinition | NoFailureDefinition | ComplexNofailureDefinition | WildcardDefinition | VariableDefinition;

-

-FailureDefinition: {FailureDefinition} type = ActualFailureType ('.' acidAvoidable = ACIDavoidable)?;

-NoFailureDefinition: {NoFailureDefinition} 'noFailure';

-ComplexNofailureDefinition: {NoFailureDefinition} 'noFailure' '.' acidMitigation = ACIDMitigation;

-WildcardDefinition: {WildcardDefinition} 'wildcard';

-VariableDefinition: {VariableDefinition} variableName=ID;

-

-enum FailureType: NO_FAILURE='noFailure' | EARLY='early'| LATE='late' | COMMISSION='commission' | OMISSION='omission' | VALUE_SUBTLE='valueSubtle' | VALUE_COARSE='valueCoarse' | WILDCARD="wildcard" | VARIABLE='variable';

-enum ActualFailureType returns FailureType: EARLY | LATE | COMMISSION | OMISSION | VALUE_SUBTLE | VALUE_COARSE;

-enum NoFailureType returns FailureType: NO_FAILURE;

-enum Wildcard returns FailureType: WILDCARD;

-

-ACIDavoidable: a = Aavoidable '.' c = Cavoidable '.' i = Iavoidable '.' d = Davoidable;

-

-enum Aavoidable: INCOMPLETION='incompletion' | NONE='none' | UNSPECIFIED='unspecified';

-enum Cavoidable: INCONSISTENCY='inconsistency' | NONE='none' | UNSPECIFIED='unspecified';

-enum Iavoidable: INTERFERENCE='interference' | NONE='none' | UNSPECIFIED='unspecified';

-enum Davoidable: IMPERMANENCE='impermanence' | NONE='none' | UNSPECIFIED='unspecified';

-

-ACIDMitigation: a = Amitigation '.' c = Cmitigation '.' i = Imitigation '.' d = Dmitigation;

-

-enum Amitigation: ALL_OR_NOTHING='all_or_nothing' | ALL_OR_COMPENSATION='all_or_compensation' | NONE='none' | UNSPECIFIED='unspecified';

-enum Cmitigation: FULL_CONSISTENCY='full_consistency' | RANGE_VIOLATION_ALLOWED='range_violation_allowed' | NONE='none' | UNSPECIFIED='unspecified';

-enum Imitigation: SERIALIZABLE='serializable' | PORTABLE_LEVEL='portable_level' | NONE='none' | UNSPECIFIED='unspecified';

-enum Dmitigation: NO_LOSS='no_loss' | PARTIAL_LOSS_ALLOWED='partial_loss_allowed' | NONE='none' | UNSPECIFIED='unspecified';

-	

-/*

- * Additional rule to refer UML elements in a Model

- */

-

-FQN returns ecore::EString :

-	ID('::'ID)*

-;

+/*
+ * TODO: License and author (Petter Isberg - MDH) 
+ */
+
+grammar org.polarsys.chess.xtext.FlaDsl with org.eclipse.xtext.common.Terminals
+
+import "http://www.eclipse.org/uml2/5.0.0/UML" as uml
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+
+generate flaDsl "http://www.intecs.org/chess/xtext/FlaDsl"
+
+/*
+ * FLA Grammar
+ */
+ 
+Behaviour:
+	rules+=Expression+;
+	
+Expression:
+	'FLA:' lhs=Lhs '->' rhs=Rhs ';';
+
+Lhs: failures+=InputExpression (',' failures+=InputExpression)*;
+Rhs: failures+=OutputExpression (',' failures+=OutputExpression)*;
+
+InputExpression: (ref=[uml::Port]| "undefined") '.' failureExpr=InFailureExpr;
+OutputExpression: (ref=[uml::Port]| "undefined") '.' failureExpr=OutFailureExpr;
+
+InFailureExpr: 
+	failures+=WildcardDefinition | 
+	failures+=NoFailureDefinition | 
+	failures+=FailureDefinition |
+	'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' | 
+	failures+=VariableDefinition
+; 
+
+OutFailureExpr: 
+	failures+=NoFailureDefinition | 
+	failures+=ComplexNofailureDefinition | 
+	failures+=FailureDefinition | 
+	'{' failures+=FailureDefinition (',' failures+=FailureDefinition)+ '}' |
+	failures+=VariableDefinition
+;
+
+Definitions: FailureDefinition | NoFailureDefinition | ComplexNofailureDefinition | WildcardDefinition | VariableDefinition;
+
+FailureDefinition: {FailureDefinition} type = ActualFailureType ('.' acidAvoidable = ACIDavoidable)?;
+NoFailureDefinition: {NoFailureDefinition} 'noFailure';
+ComplexNofailureDefinition: {NoFailureDefinition} 'noFailure' '.' acidMitigation = ACIDMitigation;
+WildcardDefinition: {WildcardDefinition} 'wildcard';
+VariableDefinition: {VariableDefinition} variableName=ID;
+
+enum FailureType: NO_FAILURE='noFailure' | EARLY='early'| LATE='late' | COMMISSION='commission' | OMISSION='omission' | VALUE_SUBTLE='valueSubtle' | VALUE_COARSE='valueCoarse' | WILDCARD="wildcard" | VARIABLE='variable';
+enum ActualFailureType returns FailureType: EARLY | LATE | COMMISSION | OMISSION | VALUE_SUBTLE | VALUE_COARSE;
+enum NoFailureType returns FailureType: NO_FAILURE;
+enum Wildcard returns FailureType: WILDCARD;
+
+ACIDavoidable: a = Aavoidable '.' c = Cavoidable '.' i = Iavoidable '.' d = Davoidable;
+
+enum Aavoidable: INCOMPLETION='incompletion' | NONE='none' | UNSPECIFIED='unspecified';
+enum Cavoidable: INCONSISTENCY='inconsistency' | NONE='none' | UNSPECIFIED='unspecified';
+enum Iavoidable: INTERFERENCE='interference' | NONE='none' | UNSPECIFIED='unspecified';
+enum Davoidable: IMPERMANENCE='impermanence' | NONE='none' | UNSPECIFIED='unspecified';
+
+ACIDMitigation: a = Amitigation '.' c = Cmitigation '.' i = Imitigation '.' d = Dmitigation;
+
+enum Amitigation: ALL_OR_NOTHING='all_or_nothing' | ALL_OR_COMPENSATION='all_or_compensation' | NONE='none' | UNSPECIFIED='unspecified';
+enum Cmitigation: FULL_CONSISTENCY='full_consistency' | RANGE_VIOLATION_ALLOWED='range_violation_allowed' | NONE='none' | UNSPECIFIED='unspecified';
+enum Imitigation: SERIALIZABLE='serializable' | PORTABLE_LEVEL='portable_level' | NONE='none' | UNSPECIFIED='unspecified';
+enum Dmitigation: NO_LOSS='no_loss' | PARTIAL_LOSS_ALLOWED='partial_loss_allowed' | NONE='none' | UNSPECIFIED='unspecified';
+	
+/*
+ * Additional rule to refer UML elements in a Model
+ */
+
+FQN returns ecore::EString :
+	ID('::'ID)*
+;
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java
deleted file mode 100644
index 6af7490..0000000
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.java
+++ /dev/null
@@ -1,11 +0,0 @@
-/*

- * generated by Xtext

- */

-package org.polarsys.chess.xtext;

-

-/**

- * Use this class to register components to be used at runtime / without the Equinox extension registry.

- */

-public class FlaDslRuntimeModule extends org.polarsys.chess.xtext.AbstractFlaDslRuntimeModule {

-

-}

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.xtend
new file mode 100644
index 0000000..364f3b6
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslRuntimeModule.xtend
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package org.polarsys.chess.xtext
+
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+class FlaDslRuntimeModule extends AbstractFlaDslRuntimeModule {
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java
deleted file mode 100644
index 632413a..0000000
--- a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*

- * generated by Xtext

- */

-package org.polarsys.chess.xtext;

-

-/**

- * Initialization support for running Xtext languages 

- * without equinox extension registry

- */

-public class FlaDslStandaloneSetup extends FlaDslStandaloneSetupGenerated{

-

-	public static void doSetup() {

-		new FlaDslStandaloneSetup().createInjectorAndDoEMFRegistration();

-	}

-}

-

diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.xtend
new file mode 100644
index 0000000..dd2e7d7
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/FlaDslStandaloneSetup.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package org.polarsys.chess.xtext
+
+
+/**
+ * Initialization support for running Xtext languages without Equinox extension registry.
+ */
+class FlaDslStandaloneSetup extends FlaDslStandaloneSetupGenerated {
+
+	def static void doSetup() {
+		new FlaDslStandaloneSetup().createInjectorAndDoEMFRegistration()
+	}
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/formatting2/FlaDslFormatter.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/formatting2/FlaDslFormatter.xtend
new file mode 100644
index 0000000..01e9934
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/formatting2/FlaDslFormatter.xtend
@@ -0,0 +1,31 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package org.polarsys.chess.xtext.formatting2
+
+import com.google.inject.Inject
+import org.eclipse.xtext.formatting2.AbstractFormatter2
+import org.eclipse.xtext.formatting2.IFormattableDocument
+import org.polarsys.chess.xtext.flaDsl.Behaviour
+import org.polarsys.chess.xtext.flaDsl.Expression
+import org.polarsys.chess.xtext.services.FlaDslGrammarAccess
+
+class FlaDslFormatter extends AbstractFormatter2 {
+	
+	@Inject extension FlaDslGrammarAccess
+
+	def dispatch void format(Behaviour behaviour, extension IFormattableDocument document) {
+		// TODO: format HiddenRegions around keywords, attributes, cross references, etc. 
+		for (Expression expression : behaviour.getRules()) {
+			expression.format;
+		}
+	}
+
+	def dispatch void format(Expression expression, extension IFormattableDocument document) {
+		// TODO: format HiddenRegions around keywords, attributes, cross references, etc. 
+		expression.getLhs.format;
+		expression.getRhs.format;
+	}
+	
+	// TODO: implement for Lhs, Rhs, InputExpression, OutputExpression, InFailureExpr, OutFailureExpr, FailureDefinition, NoFailureDefinition
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/serializer/FlaDslSemanticSequencer.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/serializer/FlaDslSemanticSequencer.xtend
new file mode 100644
index 0000000..36213de
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/serializer/FlaDslSemanticSequencer.xtend
@@ -0,0 +1,8 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package org.polarsys.chess.xtext.serializer
+
+
+class FlaDslSemanticSequencer extends AbstractFlaDslSemanticSequencer {
+}
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/serializer/FlaDslSyntacticSequencer.xtend b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/serializer/FlaDslSyntacticSequencer.xtend
new file mode 100644
index 0000000..9b2d269
--- /dev/null
+++ b/plugins/fla/org.polarsys.chess.xtext.fladsl/src/org/polarsys/chess/xtext/serializer/FlaDslSyntacticSequencer.xtend
@@ -0,0 +1,8 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package org.polarsys.chess.xtext.serializer
+
+
+class FlaDslSyntacticSequencer extends AbstractFlaDslSyntacticSequencer {
+}
diff --git a/plugins/org.polarsys.chess.checkers/.classpath b/plugins/org.polarsys.chess.checkers/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.polarsys.chess.checkers/.gitignore b/plugins/org.polarsys.chess.checkers/.gitignore
new file mode 100644
index 0000000..09e3bc9
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/target/
diff --git a/plugins/org.polarsys.chess.checkers/.project b/plugins/org.polarsys.chess.checkers/.project
new file mode 100644
index 0000000..2ec8ad1
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.polarsys.chess.checkers</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.core.resources.prefs b/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.jdt.core.prefs b/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.m2e.core.prefs
similarity index 100%
rename from plugins/fla/org.polarsys.chess.xtext.fladsl.ui/.settings/org.eclipse.m2e.core.prefs
rename to plugins/org.polarsys.chess.checkers/.settings/org.eclipse.m2e.core.prefs
diff --git a/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.xtend.core.Xtend.prefs b/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..fdf3191
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,7 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/main/java.directory=xtend-gen
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=xtend-gen
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/plugins/org.polarsys.chess.checkers/META-INF/MANIFEST.MF b/plugins/org.polarsys.chess.checkers/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..21e1d24
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/META-INF/MANIFEST.MF
@@ -0,0 +1,33 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.polarsys.chess.checkers
+Bundle-SymbolicName: org.polarsys.chess.checkers;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: com.google.guava;bundle-version="15.0.0",
+ org.eclipse.uml2.uml,
+ org.eclipse.papyrus.sysml,
+ org.eclipse.ui.workbench,
+ org.eclipse.osgi,
+ org.eclipse.core.runtime;bundle-version="3.12.0",
+ org.polarsys.chess.service,
+ org.eclipse.papyrus.uml.tools,
+ org.eclipse.core.resources,
+ org.eclipse.papyrus.uml.tools.utils,
+ org.apache.log4j;bundle-version="1.2.15",
+ eu.fbk.eclipse.standardtools.utils,
+ org.eclipse.core.jobs,
+ org.eclipse.ui.workbench.texteditor,
+ org.eclipse.emf.common.ui,
+ org.eclipse.uml2.uml.resources,
+ org.eclipse.gmf.runtime.common.ui.services,
+ org.eclipse.papyrus.views.modelexplorer,
+ org.polarsys.chess.contracts.profile,
+ org.eclipse.emf.common,
+ org.eclipse.xtext
+Export-Package: org.polarsys.chess.checkers,
+ org.polarsys.chess.checkers.core.checkerManager,
+ org.polarsys.chess.checkers.core.impl
+Bundle-Activator: org.polarsys.chess.checkers.Activator
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: Fondazione Bruno Kessler
diff --git a/plugins/org.polarsys.chess.checkers/build.properties b/plugins/org.polarsys.chess.checkers/build.properties
new file mode 100644
index 0000000..6c480f3
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               icons/
diff --git a/plugins/org.polarsys.chess.checkers/icons/checker.png b/plugins/org.polarsys.chess.checkers/icons/checker.png
new file mode 100644
index 0000000..9a05c9d
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/icons/checker.png
Binary files differ
diff --git a/plugins/org.polarsys.chess.checkers/icons/checker_old.png b/plugins/org.polarsys.chess.checkers/icons/checker_old.png
new file mode 100644
index 0000000..9775146
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/icons/checker_old.png
Binary files differ
diff --git a/plugins/org.polarsys.chess.checkers/plugin.xml b/plugins/org.polarsys.chess.checkers/plugin.xml
new file mode 100644
index 0000000..0d8baa9
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/plugin.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            allPopups="false"
+            locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
+         <toolbar
+               id="RunCheckers"
+               label="Run Checkers">
+            <command
+                  commandId="org.polarsys.chess.checkers.ui.commands.runCheckers"
+                  icon="icons/checker.png"
+                  label="Run Checkers"
+                  style="push">
+            </command>
+         </toolbar>
+      </menuContribution>
+   </extension>
+   <extension
+         point="org.eclipse.ui.commands">
+      <command
+            defaultHandler="org.polarsys.chess.checkers.ui.commands.RunCheckers"
+            id="org.polarsys.chess.checkers.ui.commands.runCheckers"
+            name="Run Checkers">
+      </command>
+   </extension>
+   <extension
+         point="org.eclipse.ui.preferencePages">
+      <page
+            class="org.polarsys.chess.checkers.ui.preferences.ModelCheckingPreferencePage"
+            id="org.polarsys.chess.checkers.ui.preferences.ModelCheckingPreferencePage"
+            name="Checkers">
+      </page>
+   </extension>
+   <extension
+         point="org.eclipse.core.runtime.preferences">
+      <initializer
+            class="org.polarsys.chess.checkers.ui.preferences.ModelCheckingPreferenceInitializer">
+      </initializer>
+   </extension>
+
+</plugin>
diff --git a/plugins/org.polarsys.chess.checkers/pom.xml b/plugins/org.polarsys.chess.checkers/pom.xml
new file mode 100644
index 0000000..df207fe
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/pom.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.polarsys.chess</groupId>
+    <artifactId>org.polarsys.chess.parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../org.polarsys.chess.parent</relativePath>
+  </parent>
+  <artifactId>org.polarsys.chess.checkers</artifactId>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/Activator.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/Activator.java
new file mode 100644
index 0000000..6cdb5b5
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/Activator.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (C) 2019 Fondazione Bruno Kessler.
+ * All rights reserved. 
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.polarsys.chess.checkers;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.LogManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+import org.polarsys.chess.checkers.core.checkerManager.CheckerManager;
+import org.polarsys.chess.checkers.core.checkerManager.CheckersContainer;
+import org.polarsys.chess.checkers.core.impl.IdentifiersChecker;
+import org.polarsys.chess.checkers.core.impl.NameDistance;
+import org.polarsys.chess.checkers.core.impl.StateStatus;
+import org.polarsys.chess.checkers.core.impl.TestChecker1;
+import org.polarsys.chess.checkers.core.impl.TestChecker2;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.polarsys.chess.checkers";
+
+	// The system property that contains the log level to use
+	public static final String LOG4J_LOG_LEVEL = "Log4jLogLevel";
+
+	// The shared instance
+	private static Activator plugin;
+
+	private static CheckerManager checkerManager;
+
+	boolean started;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.
+	 * BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+		System.out.println("Activator: " + this);
+		checkerManager = getCheckerManager();
+/*
+		Set<String> tags1 = new HashSet<String>();
+		tags1.add("fast");
+		tags1.add("errors");
+		tags1.add("sysml");
+		new TestChecker2("SysMLChecker1", tags1);
+
+		Set<String> tags2 = new HashSet<String>();
+		tags2.add("slow");
+		tags2.add("warnings");
+		tags2.add("state machine");
+		tags2.add("sysml");
+		new TestChecker1("StateMachineChecker2", tags2, 4);
+
+		new TestChecker1("StateMachineChecker2", tags2, 1);
+
+		new TestChecker1("StateMachineChecker2", tags2, 10);
+
+		new TestChecker1("StateMachineChecker2", tags2, 2);*/
+
+		new NameDistance(1, 1);
+		new StateStatus();
+		new IdentifiersChecker();
+
+		started = true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.
+	 * BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		started = false;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Returns an image descriptor for the image file at the given plug-in
+	 * relative path
+	 *
+	 * @param path
+	 *            the path
+	 * @return the image descriptor
+	 */
+	public static ImageDescriptor getImageDescriptor(String path) {
+		return imageDescriptorFromPlugin(PLUGIN_ID, path);
+	}
+
+	public static CheckerManager getCheckerManager() {
+		if (checkerManager == null) {
+			checkerManager = new CheckerManager();
+		}
+		return checkerManager;
+	}
+
+	public Set<String> getTags() {
+		Set<String> selectedTags = new HashSet<String>();
+
+		for (String tag : checkerManager.getTags()) {
+			if (getPreferenceStore().getBoolean(tag)) {
+				selectedTags.add(tag);
+			}
+		}
+		return selectedTags;
+	}
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/Checker.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/Checker.java
new file mode 100644
index 0000000..6b0973d
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/Checker.java
@@ -0,0 +1,136 @@
+package org.polarsys.chess.checkers.core.checkerManager;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;
+
+public abstract class Checker {
+
+	private static final Logger logger = Logger.getLogger(Checker.class);
+
+//	private static String pluginID = "org.polarsys.chess.checkers";
+
+	public final String unifiedName;
+	protected final Set<String> checkerTags;
+	protected final int registerPriority;
+	private ArrayList<Exception> errors = new ArrayList<Exception>();
+
+	protected Checker(String unifiedName, Set<String> checkerTags) {
+		this(unifiedName, checkerTags, 0);
+	}
+
+	public Checker(String unifiedName, Set<String> checkerTags, int registerPriority) {
+
+		this.unifiedName = unifiedName;
+		this.checkerTags = checkerTags;
+		this.registerPriority = registerPriority;
+
+		CheckerManager checkerManager = org.polarsys.chess.checkers.Activator.getCheckerManager();
+		logger.debug("register " + unifiedName);
+		checkerManager.getCheckersContainter().register(this);
+	}
+
+	public abstract List<CheckerMessage> check(IProgressMonitor monitor) throws Exception;
+
+	public abstract void init() throws Exception;
+
+	public void asyncCheck(boolean isFirstChecker) throws Exception {
+		
+		CheckerManager checkerManager = org.polarsys.chess.checkers.Activator.getCheckerManager();
+		
+		org.eclipse.uml2.uml.Package pack = EntityUtil.getInstance().getCurrentSystemView();
+		if(pack==null){
+			IFile file = EntityUtil.getInstance().getCurrentIFile();
+			System.out.println("file: "+file);
+			EntityUtil.getInstance().openCurrentModelIntoEditor(file);			
+		}
+		
+		IFile iFile = WorkspaceSynchronizer.getFile(EntityUtil.getInstance().getCurrentSystemView().eResource());
+		init();
+
+		logger.debug("running checker: "+unifiedName);
+		Job job = new Job("Checker Manager: " + unifiedName) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				try {
+					errors = new ArrayList<Exception>();
+					List<CheckerMessage> messages = check(monitor);
+					if (messages != null) {
+//						checkerManager.deleteMarkers(iFile, unifiedName);							
+						checkerManager.deleteProjectMarkers(iFile.getProject(), unifiedName);
+						checkerManager.addMessages(unifiedName, messages);
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+					logger.error("Checker '"+unifiedName+"' exception: "+e.getMessage());
+					return Status.CANCEL_STATUS;
+				}
+				if (monitor.isCanceled()) {
+					logger.warn("checker '" + unifiedName + "' isCanceled");
+					return Status.CANCEL_STATUS;
+				}
+				// use this to open a Shell in the UI thread
+				return Status.OK_STATUS;
+			}
+		};
+		
+		job.setUser(isFirstChecker);
+		job.schedule();
+	}
+	
+//	/**
+//	 * Recursively returns all the files in the given container
+//	 * @param container the IContainer
+//	 * @return
+//	 */
+//	private List<IFile> getProjectFiles(IContainer container) {
+//		final List<IFile> files = new ArrayList<IFile>();
+//		try {
+//			for (IResource member : container.members()) {
+//				if (member instanceof IContainer) {
+//					files.addAll(getProjectFiles((IContainer) member));
+//				} else if (member instanceof IFile) {
+//					files.add((IFile) member);
+//				}
+//			}
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//		}
+//		return files;
+//	}
+
+	/*
+	 * private void syncWithUI(Shell shell) { Display.getDefault().asyncExec(new
+	 * Runnable() { public void run() { MessageDialog.openInformation(shell,
+	 * "message", "completed!"); } }); }
+	 */
+
+	public boolean belongsTo(Set<String> checkersTags) {
+		for (String tag : checkersTags) {
+			if (checkerTags.contains(tag))
+				return true;
+		}
+		return false;
+	}
+
+	public String getUnifiedName() {
+		return unifiedName;
+	}
+
+	public Set<String> getCheckerTags() {
+		return checkerTags;
+	}
+
+	public void addError(Exception e){
+		errors.add(e);
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerManager.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerManager.java
new file mode 100644
index 0000000..c7184e3
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerManager.java
@@ -0,0 +1,222 @@
+package org.polarsys.chess.checkers.core.checkerManager;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPage;
+import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPageBookView;
+import org.eclipse.papyrus.views.modelexplorer.ModelExplorerView;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.IPage;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.xtext.nodemodel.INode;
+import org.polarsys.chess.service.gui.utils.ReportProblemsUtil;
+
+public class CheckerManager {
+
+	private static final Logger logger = Logger.getLogger(CheckerManager.class);
+
+	private static final String CHECKER_NAME = "checkerName";
+	List<CheckersContainer> checkersContainers;
+	List<CheckerMessage> messages;
+	HashMap<String, Boolean> checkerStatus;
+
+	// ModelExplorerPageBookView modelExplorerPageBookView;
+	// ModelExplorerView modelExplorerView ;
+	// test test;
+	public CheckerManager() {
+		logger.debug("Instantiate CheckerManager");
+		this.checkersContainers = new ArrayList<CheckersContainer>();
+		new CheckersContainer(this);
+		// checkersContainers.add(checkersContainer);
+	}
+
+	public void run(Set<String> selectedCheckersTags) throws Exception {
+		logger.debug("run");
+		checkerStatus = new HashMap<String, Boolean>();
+		messages = new ArrayList<CheckerMessage>();
+		// modelExplorerPageBookView = getModelExplorerPageBookView();
+		// modelExplorerView = getModelExplorerView();
+		// test = new test(modelExplorerView);
+		for (CheckersContainer checkersContainer : checkersContainers) {
+			logger.debug("run checkersContainer");
+			checkersContainer.run(selectedCheckersTags);
+		}
+	}
+
+	public void register(CheckersContainer checkersContainer) {
+		logger.debug("register CheckersContainer");
+		this.checkersContainers.add(checkersContainer);
+	}
+
+	public Set<String> getTags() {
+		Set<String> tags = new HashSet<String>();
+
+		for (CheckersContainer containter : checkersContainers) {
+			tags.addAll(containter.getTags());
+		}
+
+		return tags;
+	}
+
+	public CheckersContainer getCheckersContainter() {
+		return checkersContainers.get(0);
+	}
+
+	public void addMessages(String unifiedName, List<CheckerMessage> newMessages) throws Exception {
+		// this.messages.addAll(newMessages);
+		checkerStatus.put(unifiedName, true);
+
+		// logger.debug("addMessages '" + unifiedName + "' : " +
+		// newMessages.size());
+
+		/*
+		 * for (Boolean value : checkerStatus.values()) { if
+		 * (value.booleanValue() == false) return; }
+		 */
+
+		// IViewPart modelexplorer =
+		// PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
+		// .showView(ModelExplorerPageBookView.VIEW_ID);
+		// modelExplorerView = getModelExplorerPageBookView();
+		// System.out.println("modelexplorer: "+modelExplorerView);
+
+		// Set<IFile> iFiles = extractIFiles(newMessages);
+
+		// for (IFile iFile : iFiles) {
+		// deleteMarkers(iFile, unifiedName);
+		// }
+
+		for (CheckerMessage msn : newMessages) {
+			if (msn.object != null && msn.object instanceof EObject) {
+				IMarker marker = msn.file.createMarker(EValidator.MARKER);
+				marker.setAttribute(CHECKER_NAME, msn.checkerName);
+				marker.setAttribute(IMarker.MESSAGE, msn.message);
+				String location = EcoreUtil.getURI((EObject) msn.object).toString();
+				if (msn.object instanceof NamedElement) {
+					location = ((NamedElement) msn.object).getQualifiedName();
+				}
+				marker.setAttribute(IMarker.LOCATION, location);
+				marker.setAttribute(IMarker.SEVERITY, msn.severity);
+				marker.setAttribute(EValidator.URI_ATTRIBUTE, EcoreUtil.getURI((EObject) msn.object).toString());
+			} else if (msn.object != null && msn.object instanceof INode) {
+				try {
+					final INode node = (INode) msn.object;
+					if (msn.severity == IMarker.SEVERITY_INFO) {
+						ReportProblemsUtil.reportInfo(msn.file, CHECKER_NAME, msn.checkerName, msn.message, node.getStartLine(), 
+								node.getOffset(), node.getEndOffset());
+					} else if (msn.severity == IMarker.SEVERITY_WARNING) {
+						ReportProblemsUtil.reportWarning(msn.file, CHECKER_NAME, msn.checkerName, msn.message, node.getStartLine(), 
+								node.getOffset(), node.getEndOffset());
+					} else if (msn.severity == IMarker.SEVERITY_ERROR) {
+						ReportProblemsUtil.reportError(msn.file, CHECKER_NAME, msn.checkerName, msn.message, node.getStartLine(), 
+								node.getOffset(), node.getEndOffset());
+					}
+				} catch (NullPointerException | CoreException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
+	private Set<IFile> extractIFiles(List<CheckerMessage> checkerMessages) {
+
+		Set<IFile> iFiles = new HashSet<IFile>();
+		if (checkerMessages != null) {
+			for (CheckerMessage checkerMessage : checkerMessages) {
+				if (checkerMessage.file != null) {
+					iFiles.add(checkerMessage.file);
+				}
+			}
+		}
+		return iFiles;
+	}
+
+	void deleteMarkers(IFile file, String checkerName) throws CoreException {
+		IMarker[] markers = file.findMarkers(EValidator.MARKER, false, IResource.DEPTH_ONE);
+		for (IMarker marker : markers) {
+			if (marker != null && marker.exists() && marker.getAttribute(CHECKER_NAME, "").equals(checkerName)) {
+				marker.delete();
+			}
+		}
+	}
+
+	/**
+	 * Deletes all the matching markers inside the given project.
+	 * @param project the active project
+	 * @param checkerName the name of the creating checker
+	 * @throws CoreException
+	 */
+	void deleteProjectMarkers(IProject project, String checkerName) throws CoreException {
+		IMarker[] markers = project.findMarkers(null, false, IResource.DEPTH_INFINITE);
+		for (IMarker marker : markers) {
+			if (marker != null && marker.exists() && marker.getAttribute(CHECKER_NAME, "").equals(checkerName)) {
+				marker.delete();
+			}
+		}
+	}
+
+	private ModelExplorerPageBookView getModelExplorerPageBookView() {
+
+		IWorkbench workbench = PlatformUI.getWorkbench();
+
+		System.out.println("workbench: " + workbench);
+		IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
+
+		System.out.println("window: " + window);
+
+		IWorkbenchPage workbenchPage = window.getActivePage();
+
+		System.out.println("workbenchPage: " + workbenchPage);
+
+		IViewPart modelExplorerViewPart = null;
+
+		for (IViewPart view : workbenchPage.getViews()) {
+			System.out.println("view: " + view.getTitle());
+		}
+
+		try {
+			modelExplorerViewPart = window.getActivePage().showView(ModelExplorerPageBookView.VIEW_ID);
+		} catch (PartInitException ex) {
+			ex.printStackTrace(System.out);
+		}
+
+		ModelExplorerPageBookView view = (ModelExplorerPageBookView) modelExplorerViewPart;
+		return view;
+
+	}
+
+	private ModelExplorerView getModelExplorerView() {
+
+		ModelExplorerPageBookView view = getModelExplorerPageBookView();
+		IPage currentPage = view.getCurrentPage();
+		ModelExplorerPage page = (ModelExplorerPage) currentPage;
+		IViewPart viewer = page.getViewer();
+		ModelExplorerView modelExplorerView = (ModelExplorerView) viewer;
+
+		return modelExplorerView;
+
+	}
+
+	public void updateCheckerStatus(String unifiedName, boolean b) {
+		checkerStatus.put(unifiedName, b);
+	}
+
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerMessage.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerMessage.java
new file mode 100644
index 0000000..c0f5c5e
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerMessage.java
@@ -0,0 +1,33 @@
+package org.polarsys.chess.checkers.core.checkerManager;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+
+public class CheckerMessage {
+
+	protected IFile file;
+	protected int severity;
+	protected String message;
+	protected Object object;
+	protected String checkerName;
+	
+	public CheckerMessage(String message, int severity ,Object object, String checkerName ) {
+			this((object instanceof EObject) ? WorkspaceSynchronizer.getFile(((EObject) object).eResource()) : null, 
+					severity, message, object, checkerName);
+	}
+
+	public CheckerMessage(IFile file, int severity, String message, Object object, String checkerName) {
+		super();
+		this.file = file;
+		this.severity = severity;
+		this.message = message;
+		this.object = object;
+		this.checkerName = checkerName;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+	
+}
\ No newline at end of file
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerTriggerManager.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerTriggerManager.java
new file mode 100644
index 0000000..1e8d188
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerTriggerManager.java
@@ -0,0 +1,38 @@
+package org.polarsys.chess.checkers.core.checkerManager;
+
+import java.util.List;
+
+import com.google.common.collect.HashBasedTable;
+import com.google.common.collect.Table;
+
+public class CheckerTriggerManager {
+	Table<String, String, Integer> targetIdHashMap = HashBasedTable.create();
+
+	public void loadCheckersRegistry() {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void saveCheckersRegistry() {
+		// TODO Auto-generated method stub
+
+	}
+
+	public boolean isTriggered(String checkerUnifiedName, String targetId, int targetCurrentHashCode) {
+		Integer lastTargetHashCode = targetIdHashMap.get(checkerUnifiedName, targetId);
+		if ((lastTargetHashCode != null) && (!lastTargetHashCode.equals(targetCurrentHashCode))) {
+			return true;
+		}
+		return false;
+	}
+
+	public void updateCheckersRegistryEntry(String checkerUnifiedName, String targetId, int targetCurrentHashCode) {
+		targetIdHashMap.put(checkerUnifiedName, targetId, targetCurrentHashCode);
+
+	}
+
+	public void updateCheckersRegistry(List<?> targets) {
+		// TODO Auto-generated method stub
+
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckersContainer.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckersContainer.java
new file mode 100644
index 0000000..89ea553
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckersContainer.java
@@ -0,0 +1,72 @@
+package org.polarsys.chess.checkers.core.checkerManager;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+
+public class CheckersContainer {
+
+	private static final Logger logger = Logger.getLogger(CheckersContainer.class);
+	
+	List<Checker> checkers;
+	CheckerManager checkerManager;
+	
+	public CheckersContainer(CheckerManager checkerManager) {
+		this.checkers = new ArrayList<Checker>();
+		this.checkerManager = checkerManager;
+		checkerManager.register(this);
+	}
+
+	public void run(Set<String> checkersTags) throws Exception {
+
+		boolean isFirstChecker = true;
+		
+		for (Checker checker : checkers) {
+
+			checkerManager.updateCheckerStatus(checker.unifiedName, false);
+
+			if (checker.belongsTo(checkersTags)) {
+				logger.debug("run " + checker.getUnifiedName());
+					checker.asyncCheck(isFirstChecker);
+					isFirstChecker=false;
+			}
+		}
+
+	}
+
+	public void register(Checker checker) {
+		Optional<Checker> alreadyRegisteredChecker = find(this.checkers,checker.unifiedName);
+		if(!alreadyRegisteredChecker.isPresent()){
+			logger.debug("register checker not present: "+checker.registerPriority);
+			this.checkers.add(checker);
+		}else if((alreadyRegisteredChecker.get().registerPriority < checker.registerPriority)){	
+			logger.debug("register checker already registered with priority: "+alreadyRegisteredChecker.get().registerPriority);
+			logger.debug("checker to register with priority: "+checker.registerPriority);
+			
+			this.checkers.remove(alreadyRegisteredChecker.get());
+			this.checkers.add(checker);
+			//return;
+		}
+		//this.checkers.add(checker);
+	}
+
+	public Optional<Checker> find(final List<Checker> list, final String name){
+	    return list.stream().filter(o -> o.unifiedName.equals(name)).findFirst();
+	}
+	
+	public Collection<? extends String> getTags() {
+		Set<String> tags = new HashSet<String>();
+		for (Checker checker : checkers) {
+			tags.addAll(checker.getCheckerTags());
+		}
+		return tags;
+	}
+
+	
+
+}
\ No newline at end of file
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/test.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/test.java
new file mode 100644
index 0000000..997c9d6
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/test.java
@@ -0,0 +1,53 @@
+package org.polarsys.chess.checkers.core.checkerManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.papyrus.views.modelexplorer.ModelExplorerView;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.navigator.CommonViewer;
+
+import com.google.common.collect.Lists;
+
+public class test implements IGotoMarker {
+
+	ModelExplorerView  modelExplorerView;
+	
+	
+	public test(ModelExplorerView modelExplorerView) {
+		super();
+		this.modelExplorerView = modelExplorerView;
+	}
+
+
+	@Override
+	public void gotoMarker(IMarker marker) {
+		
+		String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
+		if (uriAttribute != null) {
+			URI uri = URI.createURI(uriAttribute);
+			
+				EditingDomain domain = modelExplorerView.getEditingDomain();
+				EObject eObject = domain.getResourceSet().getEObject(uri, false);
+				if (eObject != null) {
+					
+					modelExplorerView.revealSemanticElement(Lists.newArrayList(eObject));
+					//CommonViewer treeViewer = modelExplorerView.getCommonViewer();
+					// The common viewer is in fact a tree viewer
+					// bug enhancement: use function in ModelExplorerView instead of findElementForEObject
+					//ModelExplorerView.reveal(Lists.newArrayList(eObject), treeViewer);
+				}
+			}
+		
+	}
+
+	
+	
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/IdentifiersChecker.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/IdentifiersChecker.java
new file mode 100644
index 0000000..62be6d4
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/IdentifiersChecker.java
@@ -0,0 +1,154 @@
+package org.polarsys.chess.checkers.core.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.polarsys.chess.checkers.core.checkerManager.Checker;
+import org.polarsys.chess.checkers.core.checkerManager.CheckerMessage;
+import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;
+
+public class IdentifiersChecker extends Checker {
+	protected Package systemViewPackage;
+	private static final Logger logger = Logger.getLogger(IdentifiersChecker.class);
+	private static final String checkerName = "IdentifierChecker";
+
+	/**
+	 * Default constructor
+	 */
+	public IdentifiersChecker() {
+		super(checkerName, getTags());
+	}
+
+	/**
+	 * Creates the checker with the given priority.
+	 * @param priority the priority
+	 */
+	public IdentifiersChecker(int priority) {
+		super(checkerName, getTags(), priority);
+	}
+
+	/**
+	 * Constructor with explicit tags.
+	 * @param tags the tags identifying this checker
+	 */
+	public IdentifiersChecker(Set<String> tags) {
+		super(checkerName, tags);
+	}
+
+	/**
+	 * Constructor with explicit tags and priority.
+	 * @param tags the tags identifying this checker
+	 * @param priority the priority
+	 */
+	public IdentifiersChecker(Set<String> tags, int priority) {
+		super(checkerName, tags, priority);
+	}
+
+	@Override
+	public List<CheckerMessage> check(IProgressMonitor monitor) throws Exception {
+		List<CheckerMessage> messages = new ArrayList<CheckerMessage>();
+		Collection<Class> blocks = null;
+		try {
+			blocks = (Collection<Class>) EntityUtil.getInstance().getAllClasses(systemViewPackage);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		monitor.beginTask(checkerName, blocks.size());
+		for (Class block : blocks) {
+			messages.addAll(processBlock(block));
+			if (monitor.isCanceled())
+				throw new Exception("Checker interrupted");
+			monitor.worked(1);
+		}
+		return messages;
+	}
+
+	/**
+	 * Processes the given block.
+	 * 
+	 * @param block
+	 *            the block to process
+	 * @return a list of messages
+	 */
+	protected List<CheckerMessage> processBlock(Class block) {
+		final EList<NamedElement> elements = filterElements(block);
+		return processElements(elements);
+	}
+
+	/**
+	 * Processes the given list of elements.
+	 * 
+	 * @param block
+	 *            the list to process
+	 * @return a list of warnings
+	 */
+	protected List<CheckerMessage> processElements(EList<NamedElement> elements) {
+		List<CheckerMessage> messages = new ArrayList<CheckerMessage>();
+
+		for (NamedElement element : elements) {
+			final String name = element.getName();
+			logger.debug("Processing " + name);
+			if (!isValidId(name)) {
+				logger.debug("The element name is not a valid identifier: " + name);
+				final String msg = "The element name is not a valid identifier: " + name;
+				messages.add(new CheckerMessage(msg, IMarker.SEVERITY_WARNING, element, checkerName));
+			}
+		}
+		return messages;
+	}
+
+	protected boolean isValidId(String id) {
+		return javax.lang.model.SourceVersion.isIdentifier(id) && (!javax.lang.model.SourceVersion.isKeyword(id));
+	}
+	
+	/**
+	 * Creates the list of elements to be analized (incuding the block itself). Can be overridden if necessary.
+	 * @param elements
+	 * @return the filtered elements
+	 */
+	protected EList<NamedElement> filterElements(Class block) {
+		final EList<Property> attributes = block.getOwnedAttributes();
+		final EList<Operation> operations = block.getOwnedOperations();
+		final EList<Behavior> behaviors = block.getOwnedBehaviors();
+		final EList<Port> ports = block.getOwnedPorts();
+
+		final EList<NamedElement> elements = new BasicEList<NamedElement>(attributes.size() + 
+				operations.size() + behaviors.size() + ports.size() + 1);
+		elements.addAll(attributes);
+		elements.addAll(operations);
+		elements.addAll(behaviors);
+		elements.addAll(ports);
+		elements.add(block);
+		return elements;
+	}
+
+	private static Set<String> getTags() {
+		Set<String> tags = new HashSet<String>();
+		tags.add("fast");
+		tags.add("warnings");
+		tags.add("sysml");
+		return tags;
+	}
+	
+	@Override
+	public void init() throws Exception {
+		systemViewPackage = EntityUtil.getInstance().getCurrentSystemView();
+	}
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/NameDistance.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/NameDistance.java
new file mode 100644
index 0000000..00a6a42
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/NameDistance.java
@@ -0,0 +1,291 @@
+package org.polarsys.chess.checkers.core.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import org.apache.log4j.Logger;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.polarsys.chess.checkers.core.checkerManager.Checker;
+import org.polarsys.chess.checkers.core.checkerManager.CheckerMessage;
+import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * Computes the minimum distance among properties inside SysML Blocks.
+ * 
+ * @author cristofo
+ *
+ */
+public class NameDistance extends Checker {
+
+	/** Minimum distance between two elements; below it, marks as suspect. */
+	private int threshold = 2;
+	private Package systemViewPackage;
+	private static final Logger logger = Logger.getLogger(NameDistance.class);
+	private static final String checkerName = "NameDistance";
+
+	/**
+	 * Creates a name distance checker with default threshold.
+	 */
+	public NameDistance() {
+		super(checkerName, getTags());
+	}
+
+	/**
+	 * Creates a name distance checker with the given priority.
+	 * @param priority the priority
+	 */
+	public NameDistance(int priority) {
+		super(checkerName, getTags(), priority);
+	}
+
+	/**
+	 * Creates a name distance checker with the given priority and threshold.
+	 * @param priority the priority
+	 * @param threshold the threshold to use
+	 */
+	public NameDistance(int priority, int threshold) {
+		super(checkerName, getTags(), priority);
+		setThreshold(threshold);
+	}
+
+	/**
+	 * Constructor with explicit tags.
+	 * @param tags the tags identifying this checker
+	 */
+	public NameDistance(Set<String> tags) {
+		super(checkerName, tags);
+	}
+
+	/**
+	 * Constructor with explicit tags and priority.
+	 * @param tags the tags identifying this checker
+	 * @param priority the priority
+	 */
+	public NameDistance(Set<String> tags, int priority) {
+		super(checkerName, tags, priority);
+	}
+
+	/**
+	 * Constructor with explicit tags, priority and threshold.
+	 * @param tags the tags identifying this checker
+	 * @param priority the priority
+	 * @param threshold the threshold to use
+	 */
+	public NameDistance(Set<String> tags, int priority, int threshold) {
+		super(checkerName, tags, priority);
+		setThreshold(threshold);
+	}
+	
+	private static Set<String> getTags() {
+		Set<String> tags = new HashSet<String>();
+		tags.add("fast");
+		tags.add("warnings");
+		tags.add("errors");
+		tags.add("sysml");
+		return tags;
+	}
+
+	public int getThreshold() {
+		return threshold;
+	}
+
+	public void setThreshold(int threshold) {
+		this.threshold = threshold;
+	}
+
+	@Override
+	public List<CheckerMessage> check(IProgressMonitor monitor) throws Exception {
+		List<CheckerMessage> messages = new ArrayList<CheckerMessage>();
+		Collection<Class> blocks = null;
+		try {
+			blocks = (Collection<Class>) EntityUtil.getInstance().getAllClasses(systemViewPackage);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		monitor.beginTask(unifiedName, blocks.size());
+		for (Class block : blocks) {
+			messages.addAll(processBlock(block));
+			if (monitor.isCanceled())
+				throw new Exception("Checker interrupted");
+			monitor.worked(1);
+		}
+		return messages;
+	}
+
+	/**
+	 * Processes the given block.
+	 * 
+	 * @param block
+	 *            the block to process
+	 * @return a list of warnings
+	 */
+	private List<CheckerMessage> processBlock(Class block) {
+		final EList<NamedElement> elements = filterElements(block);
+		return processElements(elements);
+	}
+
+	/**
+	 * Creates the list of elements to be analized. Can be overridden if necessary.
+	 * @param elements
+	 * @return the filtered elements
+	 */
+	protected EList<NamedElement> filterElements(Class block) {
+		final EList<Property> attributes = block.getOwnedAttributes();
+		final EList<Operation> operations = block.getOwnedOperations();
+		final EList<Behavior> behaviors = block.getOwnedBehaviors();
+		final EList<Port> ports = block.getOwnedPorts();
+
+		final EList<NamedElement> elements = new BasicEList<NamedElement>(attributes.size() + 
+				operations.size() + behaviors.size() + ports.size());
+		elements.addAll(attributes);
+		elements.addAll(operations);
+		elements.addAll(behaviors);
+		elements.addAll(ports);
+		return elements;
+	}
+	
+	/**
+	 * Processes the given list of elements.
+	 * 
+	 * @param block
+	 *            the list to process
+	 * @return a list of warnings
+	 */
+	private List<CheckerMessage> processElements(EList<NamedElement> elements) {
+		List<CheckerMessage> messages = new ArrayList<CheckerMessage>();
+
+		for (int i = 0; i < elements.size(); i++) {
+			final NamedElement first = elements.get(i);
+			final String firstName = normalizeName(first.getName());
+			ArrayList<String> similarNames = new ArrayList<String>(2);
+			for (int j = 0; j < elements.size(); j++) {
+				if (j == i)
+					continue;
+				final NamedElement second = elements.get(j);
+
+				final String secondName = normalizeName(second.getName());
+				final int distance = levenshteinDistance(firstName, secondName);
+				logger.debug(firstName + " and " + secondName + " distance = " + distance);
+
+				if (distance == 0) {
+					final String msg = equalsMsg(first, second);
+					messages.add(createMessage(msg, IMarker.SEVERITY_ERROR, first, unifiedName));
+				}
+				if (distance <= threshold) {
+					similarNames.add(second.getName());
+				}
+			}
+
+			// If some similarities are found, store the entry in the warnings
+			if (similarNames.size() > 0) {
+				final String msg = similarMsg(first, similarNames);
+				messages.add(createMessage(msg, IMarker.SEVERITY_WARNING, first, unifiedName));
+			}
+		}
+		return messages;
+	}
+	
+	protected String equalsMsg(NamedElement first, NamedElement second) {
+		return "The term '" + first.getName() + "' is equal to '" + second.getName()  + 
+				"' in block '" + ((Class) first.getOwner()).getName() + "'";
+	}
+
+	protected String similarMsg(NamedElement first, ArrayList<String> similarNames) {
+		return "The term '" + first.getName() + "' is very similar to '"
+				+ String.join("' and '", similarNames) + "' in block '" + ((Class) first.getOwner()).getName() + "'";
+	}
+	
+	/**
+	 * Removes macro and event prefixes from the name, and put it in lowercase.
+	 * 
+	 * @param name
+	 * @return
+	 */
+	private String normalizeName(String name) {
+		// if (name.startsWith(RfiAccEntityUtil.MACRO_PREFIX) &&
+		// Character.isUpperCase(name.charAt(RfiAccEntityUtil.MACRO_PREFIX.length())))
+		// {
+		// name = name.substring(RfiAccEntityUtil.MACRO_PREFIX.length());
+		// } else if (name.startsWith(RfiAccEntityUtil.EVENT_PREFIX) &&
+		// Character.isUpperCase(name.charAt(RfiAccEntityUtil.EVENT_PREFIX.length())))
+		// {
+		// name = name.substring(RfiAccEntityUtil.EVENT_PREFIX.length());
+		// }
+
+		return name.toLowerCase();
+	}
+
+	/**
+	 * Computes the Levenshtein distance. Code taken from
+	 * https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Java
+	 * 
+	 * @param lhs
+	 * @param rhs
+	 * @return the distance
+	 */
+	private static int levenshteinDistance(CharSequence lhs, CharSequence rhs) {
+		int len0 = lhs.length() + 1;
+		int len1 = rhs.length() + 1;
+
+		// the array of distances
+		int[] cost = new int[len0];
+		int[] newcost = new int[len0];
+
+		// initial cost of skipping prefix in String s0
+		for (int i = 0; i < len0; i++)
+			cost[i] = i;
+
+		// dynamically computing the array of distances
+
+		// transformation cost for each letter in s1
+		for (int j = 1; j < len1; j++) {
+			// initial cost of skipping prefix in String s1
+			newcost[0] = j;
+
+			// transformation cost for each letter in s0
+			for (int i = 1; i < len0; i++) {
+				// matching current letters in both strings
+				int match = (lhs.charAt(i - 1) == rhs.charAt(j - 1)) ? 0 : 1;
+
+				// computing cost for each transformation
+				int cost_replace = cost[i - 1] + match;
+				int cost_insert = cost[i] + 1;
+				int cost_delete = newcost[i - 1] + 1;
+
+				// keep minimum cost
+				newcost[i] = Math.min(Math.min(cost_insert, cost_delete), cost_replace);
+			}
+
+			// swap cost/newcost arrays
+			int[] swap = cost;
+			cost = newcost;
+			newcost = swap;
+		}
+
+		// the distance is the cost for transforming all letters in both strings
+		return cost[len0 - 1];
+	}
+
+	protected CheckerMessage createMessage(String msg, int severity, EObject element, String unifiedName) {
+		return new CheckerMessage(msg, severity, element, unifiedName);
+	}
+	
+	@Override
+	public void init() throws Exception {
+		systemViewPackage = EntityUtil.getInstance().getCurrentSystemView();
+	}
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/StateStatus.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/StateStatus.java
new file mode 100644
index 0000000..e7c0204
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/StateStatus.java
@@ -0,0 +1,322 @@
+package org.polarsys.chess.checkers.core.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Region;
+import org.eclipse.uml2.uml.StateMachine;
+import org.eclipse.uml2.uml.Transition;
+import org.eclipse.uml2.uml.Vertex;
+import org.polarsys.chess.checkers.core.checkerManager.Checker;
+import org.polarsys.chess.checkers.core.checkerManager.CheckerMessage;
+import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;
+
+/**
+ * Two checkers that detect unreachable states and states without transitions to other 
+ * states, inside a StateMachine.
+ * 
+ * @author cristofo
+ *
+ */
+public class StateStatus extends Checker {
+	private Package systemViewPackage;
+	protected static final Logger logger = Logger.getLogger(StateStatus.class);
+	private final EntityUtil entityUtil = EntityUtil.getInstance();
+	private static final String checkerName = "StateStatus";
+
+	/**
+	 * Creates a state checker
+	 */
+	public StateStatus() {
+		super(checkerName, getTags());
+	}
+
+	/**
+	 * Creates a state checker with the given priority
+	 * @param priority the priority
+	 */
+	public StateStatus(int priority) {
+		super(checkerName, getTags(), priority);
+	}
+
+	/**
+	 * Constructor with explicit tags.
+	 * @param tags the tags identifying this checker
+	 */
+	public StateStatus(Set<String> tags) {
+		super(checkerName, tags);
+	}
+
+	/**
+	 * Constructor with explicit tags and priority.
+	 * @param tags the tags identifying this checker
+	 * @param priority the priority
+	 */
+	public StateStatus(Set<String> tags, int priority) {
+		super(checkerName, tags, priority);
+	}
+
+	private static Set<String> getTags() {
+		Set<String> tags = new HashSet<String>();
+		tags.add("fast");
+		tags.add("errors");
+		tags.add("state machine");
+		return tags;
+	}
+
+	@Override
+	public List<CheckerMessage> check(IProgressMonitor monitor) throws Exception {
+		List<CheckerMessage> messages = new ArrayList<CheckerMessage>();
+		Collection<Class> blocks = null;
+		blocks = getBlocks(systemViewPackage);
+
+		monitor.beginTask(unifiedName, blocks.size());
+		for (Class block : blocks) {
+//			warnings.addAll(checkForDeadAndUnreachableStates(block));
+			messages.addAll(checkForDeadStates(block));
+			messages.addAll(checkForUnreachableStates(block));
+			if (monitor.isCanceled())
+				throw new Exception("Checker interrupted");
+			monitor.worked(1);
+		}
+		return messages;
+	}
+
+	/**
+	 * Returns the blocks that should be checked inside the model. Can be overwritter if necessary.
+	 * @param systemViewPackage
+	 * @return
+	 */
+	protected Collection<Class> getBlocks(Package systemViewPackage) {
+		try {
+			return (Collection<Class>) EntityUtil.getInstance().getAllClasses(systemViewPackage);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+	
+	/**
+	 * A dead state is a state with no transitions to other states.
+	 * @param block
+	 * @return list of errors
+	 */
+	protected List<CheckerMessage> checkForDeadStates(Class block) {
+		List<CheckerMessage> errors = new ArrayList<CheckerMessage>();
+		
+		final Set<StateMachine> stateMachines = entityUtil.getNominalStateMachines(block);
+		if (stateMachines.isEmpty()) {
+			logger.error("No state machines are present in block " + block.getName());			
+		}
+		
+		for (StateMachine stateMachine : stateMachines) {
+			if (stateMachine == null) continue;
+			final String stateMachineName = stateMachine.getName();
+			final Region region = stateMachine.getRegion(null); // Assume that only one region is present
+			if (region == null) {
+				logger.error("State machine " + stateMachineName + " of block " + block.getName() + 
+						" is not valid");
+				continue;
+			}
+			
+			// If there is only one intermediate state, don't do any check
+			if (entityUtil.getIntermediateStates(stateMachine).size() <= 1) continue;
+			
+			final EList<Vertex> states = entityUtil.getStates(stateMachine);
+			final List<String> deadStates = new ArrayList<String>(1);
+			for (Vertex state : states) {
+				if (entityUtil.isFinalState(state)) continue;
+				boolean dead = true;
+				final EList<Transition> outgoingTransitions = entityUtil.getOutgoingTransitions(state);
+				for (Transition transition : outgoingTransitions) {
+					if (entityUtil.getTransitionNextState(transition) != state) {
+						dead = false;
+						break;
+					}
+				}
+				if (dead) {
+					final String msg = deadMsg(state, block);
+					errors.add(createMessage(msg, IMarker.SEVERITY_ERROR, state, unifiedName));
+
+					deadStates.add(state.getName());
+				}
+			}
+			if (deadStates.size() == 0) {
+				logger.debug("State machine " + stateMachineName + ": all states are valid");
+			} else {
+				logger.error("State machine " + stateMachineName + ": the following states are dead: " + 
+						String.join(", ", deadStates));
+			}
+		}
+		
+		return errors;
+	}
+	
+	/**
+	 * An unreachable state is a state that is no reachable from other states.
+	 * @param block
+	 * @return list of errors
+	 */
+	private List<CheckerMessage> checkForUnreachableStates(Class block) {
+		List<CheckerMessage> errors = new ArrayList<CheckerMessage>();
+		
+		final Set<StateMachine> stateMachines = entityUtil.getNominalStateMachines(block);
+		if (stateMachines.isEmpty()) {
+			logger.error("No state machines are present in block " + block.getName());			
+		}
+		
+		for (StateMachine stateMachine : stateMachines) {
+			if (stateMachine == null) continue;
+			final String stateMachineName = stateMachine.getName();
+			final Region region = stateMachine.getRegion(null); // Assume that only one region is present
+			if (region == null) {
+				logger.error("State machine " + stateMachineName + " of block " + block.getName() + 
+						" is not valid");
+				continue;
+			}
+			final EList<Vertex> states = entityUtil.getIntermediateStates(stateMachine);
+			final List<String> unreachableStates = new ArrayList<String>(1);
+			for (Vertex state : states) {
+				boolean unreachable = true;
+				final EList<Transition> incomingTransitions = entityUtil.getIncomingTransitions(state);
+				for (Transition transition : incomingTransitions) {
+					if (entityUtil.getTransitionSourceState(transition) != state) {
+						unreachable = false;
+						break;
+					}
+				}
+				if (unreachable) {
+					final String msg = unreachableMsg(state, block);
+					errors.add(createMessage(msg, IMarker.SEVERITY_ERROR, state, unifiedName));
+					unreachableStates.add(state.getName());					
+				}
+			}
+			if (unreachableStates.size() == 0) {
+				logger.debug("State machine " + stateMachineName + ": all states are valid");
+			} else {
+				logger.error("State machine " + stateMachineName + ": the following states are not reachable: " + 
+						String.join(", ", unreachableStates));
+			}
+		}
+		
+		return errors;
+	}
+
+	/**
+	 * An unreachable state is a state that is no reachable from other states.
+	 * @param block
+	 * @return list of errors
+	 */
+	private List<CheckerMessage> checkForDeadAndUnreachableStates(Class block) {		
+		List<CheckerMessage> errors = new ArrayList<CheckerMessage>();
+		
+		final Set<StateMachine> stateMachines = entityUtil.getNominalStateMachines(block);
+		if (stateMachines.isEmpty()) {
+			logger.error("No state machines are present in block " + block.getName());			
+		}
+		
+		for (StateMachine stateMachine : stateMachines) {
+			if (stateMachine == null) continue;
+			final String stateMachineName = stateMachine.getName();
+			final Region region = stateMachine.getRegion(null); // Assume that only one region is present
+			if (region == null) {
+				logger.error("State machine " + stateMachineName + " of block " + block.getName() + 
+						" is not valid");
+				continue;
+			}
+			final EList<Vertex> states = entityUtil.getStates(stateMachine);
+			final List<String> deadStates = new ArrayList<String>(1);
+			final List<String> unreachableStates = new ArrayList<String>(1);
+
+			int stateCounter = 0;
+			for (Vertex state : states) {
+				if (!entityUtil.isFinalState(state)) {
+					stateCounter++;
+				}
+			}
+			
+			for (Vertex state : states) {
+				boolean dead = false;
+				boolean unreachable = false;
+				if (!entityUtil.isFinalState(state)) {
+					dead = true;
+					final EList<Transition> outgoingTransitions = entityUtil.getOutgoingTransitions(state);
+					for (Transition transition : outgoingTransitions) {
+						if (entityUtil.getTransitionNextState(transition) != state) {
+							dead = false;
+							break;
+						}
+					}					
+				}
+
+				if (!entityUtil.isInitialState(state)) {
+					unreachable = true;
+					final EList<Transition> incomingTransitions = entityUtil.getIncomingTransitions(state);
+					for (Transition transition : incomingTransitions) {
+						if (entityUtil.getTransitionSourceState(transition) != state) {
+							unreachable = false;
+							break;
+						}
+					}
+				}
+
+				if ((dead && stateCounter > 2)) {
+					final String msg = deadMsg(state, block);
+					errors.add(createMessage(msg, IMarker.SEVERITY_ERROR, state, unifiedName));
+					deadStates.add(state.getName());
+				}
+
+				if ((unreachable)) {
+					final String msg = unreachableMsg(state, block);
+					errors.add(createMessage(msg, IMarker.SEVERITY_ERROR, state, unifiedName));
+					unreachableStates.add(state.getName());
+				}
+			}
+			if (deadStates.size() == 0) {
+				logger.debug("State machine " + stateMachineName + ": all states are valid");
+			} else {
+				logger.error("State machine " + stateMachineName + ": the following states are dead: " + 
+						String.join(", ", deadStates));
+			}
+			if (unreachableStates.size() == 0) {
+				logger.debug("State machine " + stateMachineName + ": all states are valid");
+			} else {
+				logger.error("State machine " + stateMachineName + ": the following states are not reachable: " + 
+						String.join(", ", unreachableStates));
+			}
+		}
+		return errors;
+	}
+	
+	protected CheckerMessage createMessage(String msg, int severity, EObject state, String unifiedName) {
+		return new CheckerMessage(msg, severity, state, unifiedName);
+	}
+	
+	protected String deadMsg(Vertex state, Class block) {
+		return "The state '" + state.getName() + "' of block '" + 
+				block.getName() + "' does not have any transitions to other states";
+	}
+	
+	protected String unreachableMsg(Vertex state, Class block) {
+		return "The state '" + state.getName() + "' of block '" + 
+				block.getName() + "' is never reachable";
+	}
+
+	@Override
+	public void init() throws Exception {
+		systemViewPackage = EntityUtil.getInstance().getCurrentSystemView();
+		
+		//TODO: aprire esattamente il progetto corretto, dove sono quando lancio il check? Devo essere su un progetto,
+		// e quello viene analizzato
+	}
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/TestChecker1.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/TestChecker1.java
new file mode 100644
index 0000000..391caaa
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/TestChecker1.java
@@ -0,0 +1,77 @@
+package org.polarsys.chess.checkers.core.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.polarsys.chess.checkers.core.checkerManager.Checker;
+import org.polarsys.chess.checkers.core.checkerManager.CheckerMessage;
+import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;
+
+
+public class TestChecker1 extends Checker {
+
+	org.eclipse.uml2.uml.Package systemViewPackage;
+	IResource resource;
+	IFile file;
+	public TestChecker1(String unifiedName, Set<String> checkerTags, int priority) {
+		super(unifiedName, checkerTags,priority);
+	}
+
+	@Override
+	public List<CheckerMessage> check(IProgressMonitor monitor) throws Exception {
+
+		monitor.beginTask(unifiedName, 3);
+		System.out.println("systemViewPackage: "+systemViewPackage);
+		//Resource resource = systemViewPackage.eResource();
+		
+		//IResource resource = getResourceForModel(systemViewPackage);
+		List<CheckerMessage> res = new ArrayList<CheckerMessage>();
+		long time = 0;
+		while(time<10){
+		res.add(new CheckerMessage("StateMachineChecker2 "+time+" priority "+registerPriority, IMarker.SEVERITY_ERROR, systemViewPackage,unifiedName));
+		TimeUnit.SECONDS.sleep(1);
+		time++;
+		monitor.worked(1);
+		}
+		return res;
+	}
+
+	
+	
+	public IResource getResourceForModel(EObject obj) {
+		//org.eclipse.emf.common.util.URI uri = obj.eResource().getURI();
+		org.eclipse.emf.common.util.URI uri = EcoreUtil.getURI(obj);
+		System.out.println("uri: "+uri);
+	        // assuming platform://resource/project/path/to/file
+		String projectStr = uri.segment(1);
+		IPath path = new Path(uri.path()).removeFirstSegments(2);
+		System.out.println("path: "+path);
+		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectStr);
+		System.out.println("project: "+project);
+		return project.findMember(path);
+	}
+	
+	@Override
+	public void init() throws Exception {
+		systemViewPackage = EntityUtil.getInstance().getCurrentSystemView();
+		//resource = ResourcesPlugin.getWorkspace().getRoot();
+		resource = getResourceForModel(systemViewPackage);
+		file = WorkspaceSynchronizer.getFile(systemViewPackage.eResource());
+		System.out.println("resource: "+resource);
+		
+	}
+
+
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/TestChecker2.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/TestChecker2.java
new file mode 100644
index 0000000..dec8dc3
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/impl/TestChecker2.java
@@ -0,0 +1,56 @@
+package org.polarsys.chess.checkers.core.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.polarsys.chess.checkers.core.checkerManager.Checker;
+import org.polarsys.chess.checkers.core.checkerManager.CheckerMessage;
+import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;
+
+
+public class TestChecker2 extends Checker {
+
+	org.eclipse.uml2.uml.Package systemViewPackage;
+	private IFile file;
+	
+	public TestChecker2(String unifiedName, Set<String> checkerTags) {
+		super(unifiedName,  checkerTags);
+	}
+
+
+	@Override
+	public List<CheckerMessage> check(IProgressMonitor monitor) throws Exception {
+	
+		monitor.beginTask(unifiedName, 6);
+	
+		List<CheckerMessage> res = new ArrayList<CheckerMessage>();
+		long time = 0;
+		while(time<6){
+		res.add(new CheckerMessage("SysMLChecker1 "+time, IMarker.SEVERITY_ERROR,systemViewPackage,unifiedName));
+		if (monitor.isCanceled()) {
+			System.out.println("monitor.isCanceled()");
+	       throw new Exception();
+	    }
+		TimeUnit.SECONDS.sleep(1);
+		time++;
+		monitor.worked(1);
+		}
+		return res;
+	}
+
+
+	@Override
+	public void init() throws Exception {
+		systemViewPackage = EntityUtil.getInstance().getCurrentSystemView();
+		file = WorkspaceSynchronizer.getFile(systemViewPackage.eResource());
+		
+	}
+
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/utils/HashCodeUtils.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/utils/HashCodeUtils.java
new file mode 100644
index 0000000..ba09ca4
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/utils/HashCodeUtils.java
@@ -0,0 +1,78 @@
+package org.polarsys.chess.checkers.core.utils;
+
+import java.util.Objects;
+
+import org.apache.log4j.Logger;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.EnumerationLiteral;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Property;
+import org.polarsys.chess.contracts.profile.chesscontract.util.EntityUtil;
+
+public class HashCodeUtils {
+	private static final Logger logger = Logger.getLogger(HashCodeUtils.class);
+
+	public int hashCodeStructuralPart(Package mainPackage) throws Exception {
+		int hash = 0;
+		for (Class clazz : EntityUtil.getInstance().getAllClasses(mainPackage)) {
+			int hashClass = hashCodeClassStructuralPart(clazz);
+			hash = Objects.hash(hash, hashClass);
+		}
+
+		logger.warn("hash for classes: " + hash);
+
+		int hashEnums = Objects.hash(EntityUtil.getInstance().getAllEnumeratives(mainPackage));
+		for (Enumeration enumeration : EntityUtil.getInstance().getAllEnumeratives(mainPackage)) {
+			int hashEnum = hashCodeEnumeration(enumeration);
+			hash = Objects.hash(hash, hashEnum);
+		}
+
+		logger.warn("hash for enums: " + hashEnums);
+
+		hash = Objects.hash(hash, hashEnums);
+
+		return hash;
+	}
+
+	public int hashCodeClassStructuralPart(Class clazz) {
+		int hash = clazz.getName().hashCode();
+		for (Property property : clazz.allAttributes()) {
+			int hashProperty = hashCodeAttribute(property);
+			hash = Objects.hash(hash, hashProperty);
+		}
+
+		logger.warn("hash for class " + clazz.getName() + ": " + hash);
+
+		return hash;
+	}
+
+	public int hashCodeAttribute(Property property) {
+
+		int hash = Objects.hash(property.getName(), property.getType().getName());
+		logger.warn("hash for property " + property.getName() + ": " + hash);
+
+		return hash;
+	}
+
+	public int hashCodeEnumeration(Enumeration enumeration) {
+
+		int hash = enumeration.hashCode();
+		for (EnumerationLiteral literal : enumeration.getOwnedLiterals()) {
+			int hashLiteral = hashCodeLiteral(literal);
+			hash = Objects.hash(hash, hashLiteral);
+		}
+
+		logger.warn("hash for enum " + enumeration.getName() + ": " + hash);
+
+		return hash;
+	}
+
+	public int hashCodeLiteral(EnumerationLiteral literal) {
+
+		int hash = literal.getName().hashCode();
+		logger.warn("hash for literal " + literal.getName() + ": " + hash);
+
+		return hash;
+	}
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/commands/RunCheckers.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/commands/RunCheckers.java
new file mode 100644
index 0000000..237e113
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/commands/RunCheckers.java
@@ -0,0 +1,31 @@
+package org.polarsys.chess.checkers.ui.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.polarsys.chess.checkers.Activator;
+import eu.fbk.eclipse.standardtools.utils.ui.utils.DialogUtil;
+
+import org.apache.log4j.Logger;
+
+public class RunCheckers extends AbstractHandler {
+
+	private static final Logger logger = Logger.getLogger(RunCheckers.class);
+
+	public RunCheckers() {
+	}
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		try {
+			Activator.getCheckerManager().run(Activator.getDefault().getTags());
+		} catch (Exception e) {
+			e.printStackTrace();
+			logger.error(e);
+			DialogUtil.getInstance().showMessage_ExceptionError(e);
+		}
+
+		return null;
+	}
+
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/preferences/CommonPreferencePage.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/preferences/CommonPreferencePage.java
new file mode 100644
index 0000000..617eadd
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/preferences/CommonPreferencePage.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (C) 2019 Fondazione Bruno Kessler.
+ * All rights reserved. 
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.polarsys.chess.checkers.ui.preferences;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.polarsys.chess.checkers.Activator;
+
+
+/**
+ * The Class CommonPreferencePage.
+ */
+public abstract class CommonPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage
+{
+	protected boolean isEnabled = true;
+
+	private boolean restartRequired = false;
+
+	final protected List<Widget> widgets = new ArrayList<Widget>();
+
+	public CommonPreferencePage()
+	{
+		super();
+
+		setPreferenceStore(Activator.getDefault().getPreferenceStore());
+	}
+
+	public CommonPreferencePage(int style)
+	{
+		super(style);
+
+		setPreferenceStore(Activator.getDefault().getPreferenceStore());
+	}
+
+	public void setRestartRequired(boolean restartRequired)
+	{
+		this.restartRequired = restartRequired;
+	}
+	
+	@Override
+	public void dispose()
+	{
+		for( final Widget widget : widgets )
+		{
+			widget.dispose();
+		}
+
+		super.dispose();
+	}
+
+	@Override
+	public boolean performOk()
+	{
+		if( restartRequired )
+		{
+			MessageDialog.openWarning(getShell(), "Warning", "The application needs to be restarted");
+
+			restartRequired = false;
+		}
+
+		return super.performOk();
+	}
+	
+	@Override
+	protected void performApply()
+	{
+		adjustGridLayout();
+		
+		super.performApply();
+	}
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/preferences/ModelCheckingPreferenceInitializer.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/preferences/ModelCheckingPreferenceInitializer.java
new file mode 100644
index 0000000..f5af825
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/preferences/ModelCheckingPreferenceInitializer.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (C) 2019 Fondazione Bruno Kessler.
+ * All rights reserved. 
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.polarsys.chess.checkers.ui.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.polarsys.chess.checkers.Activator;
+
+
+public class ModelCheckingPreferenceInitializer extends AbstractPreferenceInitializer
+{
+	@Override
+	public void initializeDefaultPreferences()
+	{
+		final IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+
+		for(String tag : Activator.getCheckerManager().getTags()){
+			store.setDefault(tag,true);
+		}
+	}
+}
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/preferences/ModelCheckingPreferencePage.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/preferences/ModelCheckingPreferencePage.java
new file mode 100644
index 0000000..62ba5fa
--- /dev/null
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/ui/preferences/ModelCheckingPreferencePage.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (C) 2019 Fondazione Bruno Kessler.
+ * All rights reserved. 
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.polarsys.chess.checkers.ui.preferences;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbench;
+import org.polarsys.chess.checkers.Activator;
+
+public class ModelCheckingPreferencePage extends CommonPreferencePage {
+	
+	@Override
+	public void createFieldEditors() {
+		final Composite parent = getFieldEditorParent();
+		parent.setLayout(new GridLayout(1, false));
+		parent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+	
+		{
+			final Composite composite = new Composite(parent, SWT.NONE);
+			composite.setLayoutData(new GridData(400, SWT.DEFAULT));
+
+			for (String tag : Activator.getCheckerManager().getTags()) {
+				BooleanFieldEditor booleanFieldEditor = new BooleanFieldEditor(tag, tag, composite);
+				addField(booleanFieldEditor);
+			}
+
+			widgets.add(composite);
+		}
+	}
+
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+}
diff --git a/plugins/org.polarsys.chess.feature/epl-v10.html b/plugins/org.polarsys.chess.feature/epl-v10.html
deleted file mode 100644
index cb1073a..0000000
--- a/plugins/org.polarsys.chess.feature/epl-v10.html
+++ /dev/null
@@ -1,304 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	
-	}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang="EN-US" style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/plugins/org.polarsys.chess.feature/feature.xml b/plugins/org.polarsys.chess.feature/feature.xml
index 74d3c77..138a465 100644
--- a/plugins/org.polarsys.chess.feature/feature.xml
+++ b/plugins/org.polarsys.chess.feature/feature.xml
@@ -1,196 +1,210 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<feature

-      id="org.polarsys.chess.feature"

-      label="CHESS Polarsys"

-      version="0.10.0.qualifier"

-      provider-name="CHESS Eclipse Project">

-

-   <description url="http://www.example.com/description">

+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.polarsys.chess.feature"
+      label="CHESS Polarsys"
+      version="0.10.0.qualifier"
+      provider-name="CHESS Eclipse Project">
+
+   <description url="http://www.example.com/description">
       The CHESS feature provides the CHESS profile, editor, model transformations and Papyrus editor customization
-supporting the CHESS methodology.

-   </description>

-

-   <copyright url="http://www.eclipse.org/legal/epl-v10.html">

+supporting the CHESS methodology.
+		
+   </description>
+
+   <copyright url="http://www.eclipse.org/legal/epl-v10.html">
       Copyright (c) 2011-2015 UPD-Intecs
 All rights reserved.   This program and the accompanying materials
 are made available under the terms of the Eclipse Public License
 v1.0 which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/epl-v10.html

-   </copyright>

-

-   <license url="http://www.eclipse.org/legal/epl-v10.html">

+http://www.eclipse.org/legal/epl-v10.html
+   </copyright>
+
+   <license url="http://www.eclipse.org/legal/epl-v10.html">
       This program and the accompanying materials
 are made available under the terms of the Eclipse Public License
 v1.0 which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/epl-v10.html

-   </license>

-

-   <plugin

-         id="org.polarsys.chess.chessmlprofile"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.commands"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.core"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.m2m"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.validator"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.wizards"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.service"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.codegen.ada"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.monitoring"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.multicore"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.tabbedproperties"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.diagram.ui"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.properties.propertyEditor"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.constraints.constraintEditor"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.OSSImporter"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.diagramsCreator"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.smvExporter"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.functionBehaviors.functionBehaviorEditor"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.paramArchConfigurator"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.patterns"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.patterns.library"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.patterns.profile"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.tradeoffAnalysis"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-   <plugin

-         id="org.polarsys.chess.mainmenu"

-         download-size="0"

-         install-size="0"

-         version="0.0.0"

-         unpack="false"/>

-

-</feature>

+http://www.eclipse.org/legal/epl-v10.html
+   </license>
+
+   <plugin
+         id="org.polarsys.chess.chessmlprofile"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.commands"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.discovery"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.m2m"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.validator"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.wizards"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.service"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.codegen.ada"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.monitoring"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.multicore"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.tabbedproperties"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.diagram.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.properties.propertyEditor"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.constraints.constraintEditor"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.OSSImporter"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.diagramsCreator"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.smvExporter"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.functionBehaviors.functionBehaviorEditor"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.paramArchConfigurator"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.patterns"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.patterns.library"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.patterns.profile"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.tradeoffAnalysis"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.polarsys.chess.checkers"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+	
+	<plugin
+         id="org.polarsys.chess.checkers"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+</feature>
diff --git a/plugins/org.polarsys.chess.feature/license.html b/plugins/org.polarsys.chess.feature/license.html
deleted file mode 100644
index 225824a..0000000
--- a/plugins/org.polarsys.chess.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.polarsys.chess.instance.view/.gitignore b/plugins/org.polarsys.chess.instance.view/.gitignore
index 0e37a66..ba077a4 100644
--- a/plugins/org.polarsys.chess.instance.view/.gitignore
+++ b/plugins/org.polarsys.chess.instance.view/.gitignore
@@ -1,2 +1 @@
 bin
-/src-gen/
diff --git a/plugins/org.polarsys.chess.service/src/org/polarsys/chess/service/gui/utils/DialogUtils.java b/plugins/org.polarsys.chess.service/src/org/polarsys/chess/service/gui/utils/DialogUtils.java
index 7ca6fb1..d407a64 100644
--- a/plugins/org.polarsys.chess.service/src/org/polarsys/chess/service/gui/utils/DialogUtils.java
+++ b/plugins/org.polarsys.chess.service/src/org/polarsys/chess/service/gui/utils/DialogUtils.java
@@ -40,11 +40,15 @@
 	}

 

 	public String getDirectoryNameFromDialog(String title) throws Exception {

+		return getDirectoryNameFromDialog(title, directoryUtils.getCurrentProjectDir());

+	}

+	

+	public String getDirectoryNameFromDialog(String title, String path) throws Exception {

 		final Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();

 

 		final DirectoryDialog directoryDialog = new DirectoryDialog(shell);

 		directoryDialog.setText(title);

-		directoryDialog.setFilterPath(directoryUtils.getCurrentProjectDir());

+		directoryDialog.setFilterPath(path);

 		String directoryName = directoryDialog.open();

 

 		return directoryName;

diff --git a/plugins/org.polarsys.chess.service/src/org/polarsys/chess/service/gui/utils/ReportProblemsUtil.java b/plugins/org.polarsys.chess.service/src/org/polarsys/chess/service/gui/utils/ReportProblemsUtil.java
index 1fa00a0..99b105c 100644
--- a/plugins/org.polarsys.chess.service/src/org/polarsys/chess/service/gui/utils/ReportProblemsUtil.java
+++ b/plugins/org.polarsys.chess.service/src/org/polarsys/chess/service/gui/utils/ReportProblemsUtil.java
@@ -36,6 +36,8 @@
 	/**
 	 * Reports a warning in the Problems tab.
 	 * @param resource the resource
+	 * @param ownerField the name of the field to store the owner
+	 * @param ownerName the name of the creator of this report
 	 * @param msg the message to display
 	 * @param lineNumber the line to select (or 0)
 	 * @param charStart the start of selection (or 0)
@@ -44,15 +46,17 @@
 	 * @throws CoreException
 	 * @throws NullPointerException
 	 */
-	public static IMarker reportWarning(IResource resource, String msg, int lineNumber, 
+	public static IMarker reportWarning(IResource resource, String ownerField, String ownerName, String msg, int lineNumber, 
 			int charStart, int charEnd) throws CoreException, NullPointerException {
-		return reportMessage(resource, msg, lineNumber, charStart, charEnd, 
+		return reportMessage(resource, ownerField, ownerName, msg, lineNumber, charStart, charEnd, 
 				IMarker.PROBLEM, IMarker.SEVERITY_WARNING);
 	}
 
 	/**
 	 * Reports an error in the Problems tab.
 	 * @param resource the resource
+	 * @param ownerField the name of the field to store the owner
+	 * @param ownerName the name of the creator of this report
 	 * @param msg the message to display
 	 * @param lineNumber the line to select (or 0)
 	 * @param charStart the start of selection (or 0)
@@ -61,15 +65,17 @@
 	 * @throws CoreException
 	 * @throws NullPointerException
 	 */
-	public static IMarker reportError(IResource resource, String msg, int lineNumber, 
+	public static IMarker reportError(IResource resource, String ownerField, String ownerName, String msg, int lineNumber, 
 			int charStart, int charEnd) throws CoreException, NullPointerException {
-		return reportMessage(resource, msg, lineNumber, charStart, charEnd, 
+		return reportMessage(resource, ownerField, ownerName, msg, lineNumber, charStart, charEnd, 
 				IMarker.PROBLEM, IMarker.SEVERITY_ERROR);
 	}
 
 	/**
 	 * Reports an info in the Problems tab.
 	 * @param resource the resource
+	 * @param ownerField the name of the field to store the owner
+	 * @param ownerName the name of the creator of this report
 	 * @param msg the message to display
 	 * @param lineNumber the line to select (or 0)
 	 * @param charStart the start of selection (or 0)
@@ -78,14 +84,14 @@
 	 * @throws CoreException
 	 * @throws NullPointerException
 	 */
-	public static IMarker reportInfo(IResource resource, String msg, int lineNumber, 
+	public static IMarker reportInfo(IResource resource, String ownerField, String ownerName, String msg, int lineNumber, 
 			int charStart, int charEnd) throws CoreException, NullPointerException {
-		return reportMessage(resource, msg, lineNumber, charStart, charEnd, 
+		return reportMessage(resource, ownerField, ownerName, msg, lineNumber, charStart, charEnd, 
 				IMarker.PROBLEM, IMarker.SEVERITY_INFO);
 	}
 
-	private static IMarker reportMessage(IResource resource, String msg, int lineNumber, int charStart, 
-			int charEnd, String type, int severity) throws CoreException, NullPointerException {
+	private static IMarker reportMessage(IResource resource, String ownerField, String ownerName, String msg, int lineNumber,
+			int charStart, int charEnd, String type, int severity) throws CoreException, NullPointerException {
 		if (resource == null) {
 			throw new NullPointerException("Resource is null");
 		}
@@ -100,7 +106,7 @@
 		if (charStart > 0) attributes.put(IMarker.CHAR_START, new Integer(charStart)); // Note: this value is from the beginning of the document
 		if (charEnd > 0) attributes.put(IMarker.CHAR_END, new Integer(charEnd)); // Note: this value is from the beginning of the document
 //		m.setAttribute(IMarker.LOCATION, "whole file");	// This is a generic info about location
-
+		attributes.put(ownerField, ownerName);
 		m.setAttributes(attributes);
 		return m;
 	}
diff --git a/plugins/org.polarsys.chess.tabbedproperties/META-INF/MANIFEST.MF b/plugins/org.polarsys.chess.tabbedproperties/META-INF/MANIFEST.MF
index af62535..b79bd87 100644
--- a/plugins/org.polarsys.chess.tabbedproperties/META-INF/MANIFEST.MF
+++ b/plugins/org.polarsys.chess.tabbedproperties/META-INF/MANIFEST.MF
@@ -31,7 +31,6 @@
  org.eclipse.core.databinding;bundle-version="1.4.1",
  org.eclipse.papyrus.infra.widgets,
  org.eclipse.papyrus.views.properties,
- org.polarsys.chess.xtext.fladsl.ui,
  org.eclipse.xtext.ui;bundle-version="2.7.3",
  org.eclipse.gmf.runtime.diagram.ui.properties,
  com.google.inject,
@@ -44,4 +43,6 @@
  org.eclipse.papyrus.marte.static.profile,
  org.eclipse.papyrus.infra.properties.ui,
  org.polarsys.chess.xtext.global;bundle-version="1.0.0",
- org.eclipse.emf.ecore
+ org.eclipse.emf.ecore,
+ org.polarsys.chess.xtext.fladsl.ui
+Import-Package: org.polarsys.chess.xtext.fladsl.ui.internal
diff --git a/plugins/org.polarsys.chess.tabbedproperties/build.properties b/plugins/org.polarsys.chess.tabbedproperties/build.properties
index fffc2ea..bfcbbe5 100644
--- a/plugins/org.polarsys.chess.tabbedproperties/build.properties
+++ b/plugins/org.polarsys.chess.tabbedproperties/build.properties
@@ -3,7 +3,6 @@
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
-               bin/,\
                build.properties,\
                readme.txt,\
                CHESS.ctx,\
diff --git a/plugins/org.polarsys.chess.tabbedproperties/src/org/polarsys/chess/tabbedproperties/xtext/XtextInputDialog.java b/plugins/org.polarsys.chess.tabbedproperties/src/org/polarsys/chess/tabbedproperties/xtext/XtextInputDialog.java
index f5711a6..b086847 100644
--- a/plugins/org.polarsys.chess.tabbedproperties/src/org/polarsys/chess/tabbedproperties/xtext/XtextInputDialog.java
+++ b/plugins/org.polarsys.chess.tabbedproperties/src/org/polarsys/chess/tabbedproperties/xtext/XtextInputDialog.java
@@ -31,7 +31,7 @@
 import org.eclipse.xtext.ui.editor.embedded.EmbeddedEditor;
 import org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorFactory;
 import org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorModelAccess;
-import org.polarsys.chess.xtext.ui.internal.FlaDslActivator;
+import org.polarsys.chess.xtext.fladsl.ui.internal.FladslActivator;
 
 import com.google.inject.Injector;
 
@@ -227,7 +227,7 @@
       if( this.xtextEnabled ) {
         
 
-    	Injector injector = FlaDslActivator.getInstance().getInjector(FlaDslActivator.ORG_POLARSYS_CHESS_XTEXT_FLADSL);
+    	Injector injector = FladslActivator.getInstance().getInjector(FladslActivator.ORG_POLARSYS_CHESS_XTEXT_FLADSL);
     	  
     	FLAExpressionsProvider provider =  injector.getInstance(FLAExpressionsProvider.class);
   		
diff --git a/plugins/org.polarsys.chess.test.runtime/.classpath b/plugins/org.polarsys.chess.test.runtime/.classpath
index 098194c..eca7bdb 100644
--- a/plugins/org.polarsys.chess.test.runtime/.classpath
+++ b/plugins/org.polarsys.chess.test.runtime/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/plugins/org.polarsys.chess.test.runtime/.gitignore b/plugins/org.polarsys.chess.test.runtime/.gitignore
index ae3c172..09e3bc9 100644
--- a/plugins/org.polarsys.chess.test.runtime/.gitignore
+++ b/plugins/org.polarsys.chess.test.runtime/.gitignore
@@ -1 +1,2 @@
 /bin/
+/target/
diff --git a/plugins/org.polarsys.chess.test.runtime/.project b/plugins/org.polarsys.chess.test.runtime/.project
index 065b86f..1fda9d1 100644
--- a/plugins/org.polarsys.chess.test.runtime/.project
+++ b/plugins/org.polarsys.chess.test.runtime/.project
@@ -6,6 +6,11 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
 			</arguments>
@@ -20,8 +25,15 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 	</natures>
diff --git a/plugins/org.polarsys.chess.test.runtime/META-INF/MANIFEST.MF b/plugins/org.polarsys.chess.test.runtime/META-INF/MANIFEST.MF
index 8cad701..a050120 100644
--- a/plugins/org.polarsys.chess.test.runtime/META-INF/MANIFEST.MF
+++ b/plugins/org.polarsys.chess.test.runtime/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.polarsys.chess.test.runtime;singleton:=true
-Bundle-Version: 0.9.0.qualifier
-Bundle-Activator: org.polarsys.chess.test.runtime.Activator
+Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
- org.eclipse.uml2.uml;bundle-version="5.0.2",
- org.eclipse.core.resources;bundle-version="3.9.1",
+ org.eclipse.uml2.uml,
+ org.eclipse.core.resources,
  org.polarsys.chess.core,
  org.eclipse.ui.workbench,
- org.eclipse.ui.ide;bundle-version="3.10.2",
+ org.eclipse.ui.ide,
  org.junit,
  org.eclipse.jdt.junit.core,
  org.eclipse.swt,
  org.polarsys.chess.chessmlprofile
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: %providerName
+Bundle-Activator: org.polarsys.chess.test.runtime.Activator
diff --git a/plugins/org.polarsys.chess.test.runtime/pom.xml b/plugins/org.polarsys.chess.test.runtime/pom.xml
index 5a7b821..7484591 100644
--- a/plugins/org.polarsys.chess.test.runtime/pom.xml
+++ b/plugins/org.polarsys.chess.test.runtime/pom.xml
@@ -2,14 +2,12 @@
 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <modelVersion>4.0.0</modelVersion>
-  <parent>
+   <parent>
     <groupId>org.polarsys.chess</groupId>
-    <artifactId>CHESS</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <relativePath>../../</relativePath>
+    <artifactId>org.polarsys.chess.parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../org.polarsys.chess.parent</relativePath>
   </parent>
-  <groupId>org.polarsys.chess</groupId>
   <artifactId>org.polarsys.chess.test.runtime</artifactId>
-  <version>0.9.0-SNAPSHOT</version>
-  <packaging>eclipse-plugin</packaging>
+  <packaging>eclipse-test-plugin</packaging>
 </project>
diff --git a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyCHESSStereotype.java b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyCHESSStereotype.java
index eb3b370..33fc1a6 100644
--- a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyCHESSStereotype.java
+++ b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyCHESSStereotype.java
@@ -13,6 +13,7 @@
 import org.eclipse.uml2.uml.Element;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.polarsys.chess.core.profiles.CHESSProfileManager;
 import org.polarsys.chess.test.runtime.util.TestUtil;
@@ -27,7 +28,7 @@
 	}
 	
 	
-	@Test
+	@Test @Ignore
 	public void testApplyCHESSStereotype() {
 		
 		CHESSProfileManager.applyCHESSStereotype(model);
diff --git a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyRecursively.java b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyRecursively.java
index 004a6b6..f98236d 100644
--- a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyRecursively.java
+++ b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestApplyRecursively.java
@@ -13,6 +13,7 @@
 import org.eclipse.uml2.uml.Model;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.polarsys.chess.core.profiles.CHESSProfileManager;
 import org.polarsys.chess.test.runtime.util.TestUtil;
@@ -26,7 +27,7 @@
 		model = TestUtil.loadTestModel("CHESSTestModels", "TestApplyRecursivelyModel.uml");
 	}
 
-	@Test
+	@Test @Ignore	
 	public void testApplyRecursively() {
 
 		CHESSProfileManager.applyRecursively(model);
diff --git a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestCreateViews.java b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestCreateViews.java
index 27c7857..a080c30 100644
--- a/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestCreateViews.java
+++ b/plugins/org.polarsys.chess.test.runtime/src/org/polarsys/chess/test/runtime/tests/TestCreateViews.java
@@ -15,6 +15,7 @@
 import org.eclipse.uml2.uml.Stereotype;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.polarsys.chess.chessmlprofile.Core.CHESS;
 import org.polarsys.chess.chessmlprofile.Core.CHESSViews.AnalysisView;
@@ -37,7 +38,7 @@
 		model = TestUtil.loadTestModel("CHESSTestModels", "TestCreateViewsModel.uml");
 	}
 
-	@Test
+	@Test @Ignore
 	public void testcreateViews() {
 		
 		CHESSProfileManager.createViews(model);
diff --git a/plugins/pom.xml b/plugins/pom.xml
index cb7980c..438228b 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -48,7 +48,6 @@
     <module>org.polarsys.chess.diagramsCreator</module>
     <module>org.polarsys.chess.discovery</module>
     <module>org.polarsys.chess.extra.site</module>
-    <module>org.polarsys.chess.feature</module>
     <module>org.polarsys.chess.functionBehaviors.functionBehaviorEditor</module>
     <module>org.polarsys.chess.instance.view</module>
     <module>org.polarsys.chess.m2m</module>